2018-01-01T00:00:48Z Shinmera: Plus doing the same as mapcar in loop is about the most bog standard thing ever, so your complaint really doesn't hold water. 2018-01-01T00:01:56Z fikka joined #lisp 2018-01-01T00:01:58Z phoe: TMA: actually IN/ON/ACROSS is pretty sane in LOOP 2018-01-01T00:02:26Z phoe: in (1 2 3) gives you 1, 2, 3; on (1 2 3) gives you (1 2 3), (2 3), (3); across #(1 2 3) gives you 1, 2, 3 2018-01-01T00:03:11Z TMA: I find forgetting most of the LOOP syntax all the time. It is too much like English, yet it is different becasuse formalized. It just makes me afraid that I make some mistake. 2018-01-01T00:03:29Z |3b|: anything but IN wouldn't have worked with MAPCAR anyway :p 2018-01-01T00:03:35Z Shinmera: Then you just aren't using loop enough. Using it less won't help that. 2018-01-01T00:03:43Z |3b|: do i want mapcon, mapl, mapc, etc? 2018-01-01T00:03:48Z krwq: TMA: you can always use being the elements of 2018-01-01T00:06:22Z spoken-tales joined #lisp 2018-01-01T00:07:13Z phoe: krwq: wait, seriously? 2018-01-01T00:07:29Z phoe: ... 2018-01-01T00:07:33Z phoe: holy flipping spheres 2018-01-01T00:08:04Z krwq: phoe: not sure if that was sarcasm or for real :P 2018-01-01T00:08:10Z phoe: I just learned a new things 2018-01-01T00:08:13Z phoe: a new thing* 2018-01-01T00:09:13Z |3b| doesn't see it in the spec 2018-01-01T00:09:14Z krwq: TMA: loop has really flexible syntax - instead of thinking "I want to loop over elements" you should think what you want to do 2018-01-01T00:10:07Z krwq: |3b|: for-as-hash 2018-01-01T00:10:19Z krwq: it might be a bug though :P 2018-01-01T00:10:49Z krwq: no actually that's wrong 2018-01-01T00:10:52Z krwq: might not be documented 2018-01-01T00:10:56Z |3b|: yeah, no elements-of in the grammar for that :) 2018-01-01T00:11:01Z |3b|: probably implementation extension 2018-01-01T00:11:42Z krwq: I think I might have read it in PCL or somewhere but I've used "being the elements of" for a while after I found that it is actually less error prone when you got separate sytntax for list/vector 2018-01-01T00:11:57Z Shinmera: It's not in PCL 2018-01-01T00:12:19Z Ven`` joined #lisp 2018-01-01T00:12:48Z krwq: not clue where I read it then but this works on sbcl: (loop for x being the elements of #(1 2 3 4) do (format t "~a~%" x)) 2018-01-01T00:14:40Z krwq: TMA in general this is a good case for loops: 2018-01-01T00:15:24Z krwq: (loop for i from 0 for x in '(a b c d) do ...) 2018-01-01T00:15:34Z |3b|: if it works on sbcl, it might work on most others since it uses a popular LOOP implementation... good chance clisp wouldn't like it though 2018-01-01T00:15:43Z krwq: once you learn how to use multiple iterators at once that is super convenient 2018-01-01T00:16:00Z aeth: |3b|: The easy solution is to support every implementation except clisp 2018-01-01T00:16:08Z smurfrobot quit (Remote host closed the connection) 2018-01-01T00:16:29Z aeth: I make a lot of clisp unfriendly assumptions like a fixnum of at least 60 bits and the existence of specialized single-float and double-float arrays. 2018-01-01T00:17:04Z aeth: clisp really needs an update to catch up 2018-01-01T00:17:10Z |3b|: also risks breaking on future implementations 2018-01-01T00:19:22Z Oladon joined #lisp 2018-01-01T00:19:35Z Shinmera: Or current platforms 2018-01-01T00:20:06Z krwq: either way I didn't realize this was undocumented feature 2018-01-01T00:20:29Z aeth: Futuer implementors have a difficult job because there are a lot of de facto standards. 2018-01-01T00:21:22Z aeth: I think most people just test major implementations (perhaps with something like roswell) for breakage, rather than testing against the standard. 2018-01-01T00:21:30Z |3b| wonders how hard it would be to add a loop-style interface to ITERATE, would be nice to have the improvements like more clauses and portable extensibility without having to put up with the annoying non-lispy syntax :) 2018-01-01T00:22:19Z |3b|: (ideally sharing existing extensions with minimal extra work) 2018-01-01T00:22:40Z oleo: loop is more like plain english 2018-01-01T00:22:42Z oleo: lol 2018-01-01T00:22:53Z aeth: loop is more like COBOL? 2018-01-01T00:22:54Z aeth: :-p 2018-01-01T00:23:44Z aeth: Well, COBOL, SQL, Shakespeare, and other programming languages that try to be like English. 2018-01-01T00:24:12Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-01T00:25:31Z attila_lendvai joined #lisp 2018-01-01T00:25:31Z attila_lendvai quit (Changing host) 2018-01-01T00:25:31Z attila_lendvai joined #lisp 2018-01-01T00:26:32Z pagnol: being new to lisp I just began looking into asdf and in particular the format of asd files, and I noticed that apparently asdf doesn't complain if functions from modules that don't officially depend on each other call each other 2018-01-01T00:26:52Z Bike: that's not a level asdf knows about. 2018-01-01T00:27:04Z pagnol: what about the compiler? 2018-01-01T00:27:04Z Bike: but, it's fine to compile calls to functions that aren't yet defined. 2018-01-01T00:27:11Z pagnol: ah 2018-01-01T00:29:31Z aeth: It's worse than that. Sometimes, it will work now (as you're adding those function calls) until you try to load the ASDF system again with a fresh image 2018-01-01T00:29:41Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T00:30:33Z Bike: functions don't strictly need to be defined until they're called, most of the time, which supports the ability to redefine, and such. 2018-01-01T00:30:49Z wxie quit (Remote host closed the connection) 2018-01-01T00:32:08Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-01T00:32:34Z Ven`` joined #lisp 2018-01-01T00:33:01Z pagnol: is there some way to enforce the modularity? 2018-01-01T00:33:19Z attila_lendvai joined #lisp 2018-01-01T00:33:25Z orivej joined #lisp 2018-01-01T00:33:26Z pagnol: somehow the lisp way still evades me 2018-01-01T00:33:34Z Bike: like have a compilation fail if it hits a call to an unknown function? 2018-01-01T00:33:45Z pagnol: hmm 2018-01-01T00:33:47Z pagnol: yes? 2018-01-01T00:35:23Z Bike: asdf might have some hook, but it's not something i'm familiar with 2018-01-01T00:35:27Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-01T00:36:17Z red-dot joined #lisp 2018-01-01T00:38:10Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-01T00:39:43Z pagnol: I can't give modules their own namespace can I? (unless I prefix everything inside) 2018-01-01T00:40:34Z attila_lendvai joined #lisp 2018-01-01T00:42:47Z Bike: we call namespaces packages. you can have however many you want for a module 2018-01-01T00:43:17Z serviteur joined #lisp 2018-01-01T00:46:34Z earl-ducaine: pagnol: A major aspect of CL is that the language itself doesn't have a concept about systems or modules. Much like Javascript, conventions and tools have grown up address that. 2018-01-01T00:47:59Z earl-ducaine: Don't get confused by CL packages. Some languange environments use the term package and module interchangably. In Lisp packages are very different from what many other languange would call a 'package' 2018-01-01T00:48:40Z pagnol: you're right, I was briefly confused by the terminology 2018-01-01T00:50:48Z Kevslinger joined #lisp 2018-01-01T00:53:04Z aeth: pagnol: There are three concepts. Packages, systems, and projects. Packages are the thing built into the language and they're about namespaces for symbols. Systems are associated with ASDF. They're probably what you think of when you think "package". Quicklisp has the concept of projects, which afaik is just a collection of systems in a directory. 2018-01-01T00:53:34Z pagnol: aeth, thanks 2018-01-01T00:53:35Z |3b|: cl does have a concept of "module", it just isn't very useful so we ignore it :/ 2018-01-01T00:53:39Z aeth: e.g. foo and foo/examples and foo/tests are one project, three systems, and any number of packages depending on the architecture. 2018-01-01T00:53:41Z |3b|: clhs require 2018-01-01T00:53:41Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_provid.htm 2018-01-01T00:53:49Z smurfrobot joined #lisp 2018-01-01T00:55:46Z pagnol: aeth, why three systems? wouldn't you put everything into one system? 2018-01-01T00:55:59Z aeth: There are two ways to do packages. One is to do one package per file, at the top of the file, and it looks a lot like Python or Java in the end. This is the minority style. The majority style is to have one package.lisp for the entire system, or possibly one package.lisp per directory if it's a very large project. 2018-01-01T00:57:01Z aeth: There are three ways to do systems. One is to have one large system for everything except possibly tests and examples if they exist. This is the majority style, especially since most projects are small. Another breaks systems into directories. Another associates systems with files and packages, using this: http://davazp.net/2014/11/26/modern-library-with-asdf-and-package-inferred-system.html 2018-01-01T00:57:09Z pagnol: I'm about to begin working on a client-server app and I was going to set it up roughly like this if this makes sense: https://gist.github.com/anonymous/986b798f2292b1537e69ef4742e87aad 2018-01-01T00:57:40Z pagnol: then foo would correspond to the server part, say, and bar to the client part, and they share some utils which would be in 'mylibrary' 2018-01-01T00:57:48Z pagnol: but maybe that doesn't make much sense? 2018-01-01T00:57:53Z |3b|: pagnol: examples and tests frequently have dependencies the main library doesn't, and in addition to wasting space they might also conflict with something that is just trying to use the library 2018-01-01T00:58:02Z pagnol: ah good point 2018-01-01T00:58:35Z earl-ducaine: |3b|: it would have been more correct for me to say that CL *has* the concept of a module, but the standard does not define what it is. 2018-01-01T00:58:35Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-01T00:58:37Z asarch quit (Quit: Leaving) 2018-01-01T00:59:02Z aeth: pagnol: If you're doing client and server and utils, you probably want (at least) three systems. Someone who's deploying a server probably isn't interested in what foo/client (or foo.client or com.example.client or however you want to name it) provides. 2018-01-01T00:59:04Z pagnol: so then you would have three separate calls to asdf:defsystem for tests, examples and the actual library/app? 2018-01-01T00:59:09Z |3b|: you might also have things that link your library to another but that are optional, so that would also be reasonable to put in a separate system for use by people who want to use both, while people who only use your library don't need to load the other 2018-01-01T00:59:34Z pagnol: would you put the three calls to defsystem into one .asd? 2018-01-01T00:59:57Z aeth: Yes. 2018-01-01T01:00:00Z Bike: yeah, it's not uncommon to define separate thing, thing/tests, thing/example systems 2018-01-01T01:00:13Z Bike: asdf whines at you if you name them something but foo/whatever 2018-01-01T01:00:34Z |3b|: earl-ducaine: yeah, lack of specification is what makes it less useful 2018-01-01T01:00:37Z pagnol: and inside my project directory have a subdirectory for each system defined with defsystem? 2018-01-01T01:01:47Z aeth: pagnol: If you are breaking things up into subdirectories, unless those subdirectories are just foo/examples/ and foo/tests/ then it makes sense to use separate directories, like foo/client/, foo/server/, and foo/utils/ 2018-01-01T01:02:05Z aeth: s/separate directories/separate directories for everything/ 2018-01-01T01:02:27Z aeth: For anything really small, it doesn't matter, but if it's large, directories are useful to organize things. 2018-01-01T01:02:32Z pagnol: alright 2018-01-01T01:02:34Z pagnol: thanks 2018-01-01T01:02:45Z pagnol: that was very helpful 2018-01-01T01:03:06Z aeth: If you want to go with a fairly standard style, you should probably have one system definition per directory and one package.lisp in each directory for the package definition. 2018-01-01T01:03:22Z varjag quit (Ping timeout: 252 seconds) 2018-01-01T01:03:25Z aeth: (the system definitions do not go in the subdirectories, and can go in one file) 2018-01-01T01:06:11Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T01:07:07Z earl-ducaine: pagnol: if you're using quicklisp, you can inspect the ~/quicklisp/dists/quicklisp/software directory which will have all the sources quicklisp has downloaded. That will provide you with a wealth of examples of how people have structured their asdf projects. 2018-01-01T01:07:47Z aristippus quit (Ping timeout: 265 seconds) 2018-01-01T01:08:58Z varjag joined #lisp 2018-01-01T01:09:51Z aeth: You can use something like Quickproject. https://www.xach.com/lisp/quickproject/ 2018-01-01T01:09:58Z Ven`` joined #lisp 2018-01-01T01:10:33Z DrPete joined #lisp 2018-01-01T01:10:36Z aeth: Or you can set things up once and basically just copy your old project foo.asd file to use for new bar.asd file when you want to make bar instead of foo 2018-01-01T01:12:24Z aeth: If you set things up on your own, you probably want to create a link in ~/quicklisp/local-projects/ (or wherever your local-projects directory is) to wherever your project is so Quicklisp can find it as if it was in Quicklisp, e.g. like this: cd ~/quicklisp/local-projects/; ln -s ~/git/foo 2018-01-01T01:12:40Z aeth: If you use Quickproject, it automatically registers the system so ASDF and Quicklisp can find it iirc. 2018-01-01T01:13:37Z varjag quit (Ping timeout: 248 seconds) 2018-01-01T01:14:53Z aristippus joined #lisp 2018-01-01T01:16:46Z markong quit (Ping timeout: 272 seconds) 2018-01-01T01:18:47Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-01T01:20:01Z randomstrangerb joined #lisp 2018-01-01T01:20:54Z random-nick quit (Remote host closed the connection) 2018-01-01T01:35:09Z fikka quit (Ping timeout: 263 seconds) 2018-01-01T01:36:22Z mlau quit (Ping timeout: 252 seconds) 2018-01-01T01:39:09Z smurfrobot joined #lisp 2018-01-01T01:50:38Z fikka joined #lisp 2018-01-01T01:50:42Z TCZ joined #lisp 2018-01-01T01:52:46Z TCZ quit (Client Quit) 2018-01-01T01:53:37Z loli joined #lisp 2018-01-01T01:55:13Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T01:55:20Z smurfrobot quit (Remote host closed the connection) 2018-01-01T02:02:13Z bgardner quit (Ping timeout: 252 seconds) 2018-01-01T02:04:56Z dddddd quit (Remote host closed the connection) 2018-01-01T02:11:00Z fikka joined #lisp 2018-01-01T02:11:18Z razzy` joined #lisp 2018-01-01T02:12:08Z kajo joined #lisp 2018-01-01T02:13:12Z d4ryus1 joined #lisp 2018-01-01T02:13:51Z serviteur quit (Ping timeout: 248 seconds) 2018-01-01T02:15:35Z fikka quit (Ping timeout: 252 seconds) 2018-01-01T02:15:42Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-01T02:16:01Z d4ryus quit (Ping timeout: 248 seconds) 2018-01-01T02:17:41Z attila_lendvai joined #lisp 2018-01-01T02:19:04Z smurfrobot joined #lisp 2018-01-01T02:21:42Z fikka joined #lisp 2018-01-01T02:22:44Z orivej quit (Ping timeout: 252 seconds) 2018-01-01T02:22:54Z JonSmith joined #lisp 2018-01-01T02:22:54Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-01T02:25:30Z attila_lendvai joined #lisp 2018-01-01T02:26:09Z fikka quit (Ping timeout: 263 seconds) 2018-01-01T02:26:09Z pagnol quit (Ping timeout: 248 seconds) 2018-01-01T02:27:45Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-01T02:27:48Z wxie joined #lisp 2018-01-01T02:28:15Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-01T02:31:15Z fikka joined #lisp 2018-01-01T02:35:45Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T02:36:28Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-01T02:43:55Z spoken-tales quit (Remote host closed the connection) 2018-01-01T02:44:27Z spoken-tales joined #lisp 2018-01-01T02:47:21Z jack_rabbit quit (Read error: Connection reset by peer) 2018-01-01T02:48:18Z norfumpit quit (Read error: Connection reset by peer) 2018-01-01T02:48:57Z norfumpit joined #lisp 2018-01-01T02:51:31Z fikka joined #lisp 2018-01-01T02:53:23Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T02:54:15Z norfumpit quit (Read error: Connection reset by peer) 2018-01-01T02:54:59Z spoken-tales quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-01T02:55:24Z spoken-tales joined #lisp 2018-01-01T02:56:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T03:00:37Z damke_ joined #lisp 2018-01-01T03:00:40Z nirved quit (Quit: Leaving) 2018-01-01T03:01:34Z Murii quit (Quit: WeeChat 1.4) 2018-01-01T03:03:28Z damke quit (Read error: Connection reset by peer) 2018-01-01T03:06:13Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T03:06:41Z DeadTrickster joined #lisp 2018-01-01T03:11:49Z fikka joined #lisp 2018-01-01T03:13:26Z jack_rabbit joined #lisp 2018-01-01T03:16:36Z fikka quit (Ping timeout: 260 seconds) 2018-01-01T03:17:20Z pierpa quit (Quit: Page closed) 2018-01-01T03:19:18Z smurfrobot joined #lisp 2018-01-01T03:19:18Z Oladon quit (Read error: Connection reset by peer) 2018-01-01T03:20:15Z Oladon joined #lisp 2018-01-01T03:22:16Z fikka joined #lisp 2018-01-01T03:23:45Z pagnol joined #lisp 2018-01-01T03:24:38Z Kyo91 quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-01T03:24:53Z Kyo91` is now known as Kyo91 2018-01-01T03:26:45Z smurfrobot quit (Remote host closed the connection) 2018-01-01T03:27:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T03:27:57Z randomstrangerb quit (Ping timeout: 264 seconds) 2018-01-01T03:29:10Z randomstrangerb joined #lisp 2018-01-01T03:31:44Z z3t0 joined #lisp 2018-01-01T03:33:47Z smurfrobot joined #lisp 2018-01-01T03:34:52Z z3t0 quit (Remote host closed the connection) 2018-01-01T03:38:07Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-01T03:39:42Z smurfrobot joined #lisp 2018-01-01T03:42:21Z fikka joined #lisp 2018-01-01T03:46:00Z Ven`` joined #lisp 2018-01-01T03:46:07Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-01T03:47:01Z spoken-tales left #lisp 2018-01-01T03:47:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T03:48:21Z razzy` quit (Ping timeout: 264 seconds) 2018-01-01T03:51:01Z Ven`` quit (Ping timeout: 260 seconds) 2018-01-01T03:53:50Z Karl_Dscc joined #lisp 2018-01-01T03:58:04Z JonSmith joined #lisp 2018-01-01T04:00:17Z JonSmith quit (Remote host closed the connection) 2018-01-01T04:00:54Z JonSmith joined #lisp 2018-01-01T04:02:54Z fikka joined #lisp 2018-01-01T04:07:51Z fikka quit (Ping timeout: 256 seconds) 2018-01-01T04:09:43Z peterpp_ joined #lisp 2018-01-01T04:10:43Z LiamH quit (Quit: Leaving.) 2018-01-01T04:12:55Z fikka joined #lisp 2018-01-01T04:13:33Z pagnol quit (Ping timeout: 264 seconds) 2018-01-01T04:15:36Z JonSmith quit (Remote host closed the connection) 2018-01-01T04:15:57Z JonSmith joined #lisp 2018-01-01T04:17:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-01T04:21:40Z Oladon quit (Quit: Leaving.) 2018-01-01T04:21:47Z peterpp_ is now known as pagnol 2018-01-01T04:23:02Z fikka joined #lisp 2018-01-01T04:26:29Z Nikotiin1 quit (Ping timeout: 252 seconds) 2018-01-01T04:26:57Z JonSmith quit (Remote host closed the connection) 2018-01-01T04:27:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T04:29:35Z uuplusu quit (Remote host closed the connection) 2018-01-01T04:30:18Z aindilis quit (Read error: Connection reset by peer) 2018-01-01T04:33:09Z Karl_Dscc quit (Remote host closed the connection) 2018-01-01T04:33:14Z aindilis joined #lisp 2018-01-01T04:35:11Z pagnol quit (Ping timeout: 248 seconds) 2018-01-01T04:39:03Z _whitelogger quit (Remote host closed the connection) 2018-01-01T04:39:19Z Nikotiin1 joined #lisp 2018-01-01T04:41:16Z _whitelogger joined #lisp 2018-01-01T04:43:09Z fikka joined #lisp 2018-01-01T04:48:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T04:50:51Z kajo quit (Ping timeout: 240 seconds) 2018-01-01T04:54:36Z schoppenhauer quit (Ping timeout: 260 seconds) 2018-01-01T04:55:59Z schoppenhauer joined #lisp 2018-01-01T05:00:24Z beach: Good morning everyone! 2018-01-01T05:01:04Z beach: And a happy new year 2018. 2018-01-01T05:03:25Z fikka joined #lisp 2018-01-01T05:08:17Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T05:12:34Z wxie: hi 2018-01-01T05:12:39Z wxie: question: 2018-01-01T05:12:49Z wxie: (macroexpand-1 (with-gensyms (result) 2018-01-01T05:12:49Z wxie: `(let ((,result t)) 2018-01-01T05:12:49Z wxie: (format t "~a ~%" ,result)))) 2018-01-01T05:13:29Z wxie: why do I get an error: LET: variable RESULT has no value? 2018-01-01T05:14:06Z beach: Maybe because you didn't quote the form that you submitted to macroexpand-1? 2018-01-01T05:15:18Z wxie: Thanks. 2018-01-01T05:15:44Z beach: Sure. 2018-01-01T05:16:33Z wxie: It becomes: (LET NIL ...)? 2018-01-01T05:17:23Z Bike: (let () ...)? that's ok 2018-01-01T05:17:31Z wxie: This causes that result is not bound. 2018-01-01T05:17:39Z Bike: no, something in the ... does 2018-01-01T05:17:56Z beach: Well, I don't know where you got your with-gensyms from. 2018-01-01T05:18:00Z wxie: (LET NIL `(LET ((,RESULT T)) (FORMAT T "~a ~%" ,RESULT))) 2018-01-01T05:18:36Z Bike: that's from what, (macroexpand-1 (with-gensyms ...))? or (macroexpand-1 '(with-gensyms ...))? 2018-01-01T05:19:00Z wxie: The second (with quote). 2018-01-01T05:19:12Z OS-26949 quit (Quit: Leaving) 2018-01-01T05:20:04Z Bike: your with-gensyms is messed up, i guess 2018-01-01T05:20:21Z Bike: with alexandria's, i get (let ((result (gensym "RESULT"))) ...) 2018-01-01T05:20:52Z krwq: wxie: use quote before expression in macroexpand 2018-01-01T05:21:14Z krwq: oh wait 2018-01-01T05:21:14Z krwq: nvm 2018-01-01T05:23:48Z fikka joined #lisp 2018-01-01T05:26:33Z t0adst00l joined #lisp 2018-01-01T05:28:53Z fikka quit (Ping timeout: 256 seconds) 2018-01-01T05:30:21Z wxie: gensym is: 2018-01-01T05:30:26Z wxie: (defmacro with-gensyms ((&rest names) &body body) 2018-01-01T05:30:26Z wxie: `(let ,(loop for n in names collect `(,n (gensym))) 2018-01-01T05:30:26Z wxie: ,@body)) 2018-01-01T05:30:47Z wxie: (gensym 0) 2018-01-01T05:30:47Z wxie: #:G0 2018-01-01T05:34:05Z lemoinem quit (Ping timeout: 240 seconds) 2018-01-01T05:34:15Z fikka joined #lisp 2018-01-01T05:34:27Z Bike: if i use that with-gensyms i don't get any let nil. 2018-01-01T05:34:38Z Bike: are you sure that that is the definition in force? 2018-01-01T05:35:51Z damke joined #lisp 2018-01-01T05:36:17Z krwq: i find using literals inside the loop problematic - try using `(list ,n (gensym)) 2018-01-01T05:36:49Z Bike: you mean (list n '(gensym)) 2018-01-01T05:38:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-01T05:39:05Z fikka quit (Ping timeout: 256 seconds) 2018-01-01T05:39:38Z raphaelss quit (Quit: Leaving) 2018-01-01T05:40:04Z wxie: I do not need rewrite the with-gensyms anyway. The problem remains. 2018-01-01T05:40:24Z Bike: i can't reproduce. your definition works fine here. 2018-01-01T05:40:33Z damke quit (Ping timeout: 264 seconds) 2018-01-01T05:41:44Z wxie: Thanks. 2018-01-01T05:41:44Z krwq: what does (symbol-package 'loop) and *package* return? 2018-01-01T05:42:25Z wxie: # 2018-01-01T05:43:16Z krwq: what about (with-gensyms (foo) foo)? 2018-01-01T05:44:12Z fikka joined #lisp 2018-01-01T05:45:21Z damke joined #lisp 2018-01-01T05:47:30Z wxie: - LET: variable FOO has no value 2018-01-01T05:47:39Z wxie: tHAT'S THE problem. 2018-01-01T05:48:01Z krwq: ok, did you use alexandria? 2018-01-01T05:48:13Z krwq: (ql:quickload :alexandria) (use-package :alexandria) 2018-01-01T05:48:16Z Bike: they pasted the definition right there 2018-01-01T05:48:28Z krwq: take-new when it asks to override with-genyms 2018-01-01T05:48:29Z Nikotiin1 quit (Quit: WeeChat 1.4) 2018-01-01T05:48:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T05:49:08Z Bike: or just run your defmacro again. the point is whatever macro you have bound to with-gensyms ain't that one 2018-01-01T05:49:24Z krwq: i think he removed it 2018-01-01T05:49:48Z krwq: but i guess only in source code 2018-01-01T05:49:56Z krwq: not uninterned 2018-01-01T05:52:55Z wxie: Ok, it works with alwxandria. Thanks. Is that standard Common Lisp? 2018-01-01T05:53:05Z pjb: Nope. 2018-01-01T05:53:11Z pjb: (ql:quickload :alexandria) 2018-01-01T05:53:17Z krwq: wxie: it is one of the most popular libs though 2018-01-01T05:53:41Z Bike: i mean, the library is written in standard cl 2018-01-01T05:53:41Z wxie: It overrides several CL functions. 2018-01-01T05:53:52Z Bike: alexandria? no it does not. 2018-01-01T05:54:33Z wxie: I was asked to take a few. 2018-01-01T05:55:10Z Bike: your image is in a strange state. 2018-01-01T05:55:10Z damke_ joined #lisp 2018-01-01T05:56:45Z damke quit (Ping timeout: 264 seconds) 2018-01-01T05:58:33Z wxie: It's clisp-2.49, and very stable so far. 2018-01-01T06:00:15Z Bike: no, i mean you did some definingn or undefining or package imports or something. 2018-01-01T06:00:24Z Bike: if you start a fresh clisp and load alexandria there should be no conflicts. 2018-01-01T06:01:10Z wxie: ok 2018-01-01T06:02:01Z turkja joined #lisp 2018-01-01T06:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-01T06:03:57Z khisanth_ quit (Ping timeout: 240 seconds) 2018-01-01T06:04:19Z fikka joined #lisp 2018-01-01T06:05:09Z randomstrangerb quit (Ping timeout: 264 seconds) 2018-01-01T06:06:24Z randomstrangerb joined #lisp 2018-01-01T06:07:52Z krwq: wxie - when you use symbol in your image which doesn't exist it will be interned - after you use alexandria and add the symbol which didn't exist before it will see conflict because you already have it 2018-01-01T06:08:26Z krwq: so the symbol is interned but it is not bound to any function to variable 2018-01-01T06:08:36Z krwq: or variable* 2018-01-01T06:08:45Z wxie: Thanks for helping. Glad that it is solved. 2018-01-01T06:08:56Z wxie quit (Remote host closed the connection) 2018-01-01T06:09:05Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T06:14:25Z wxie joined #lisp 2018-01-01T06:15:22Z bruv523 joined #lisp 2018-01-01T06:15:28Z bruv523 quit (K-Lined) 2018-01-01T06:15:42Z lemoinem joined #lisp 2018-01-01T06:16:58Z damke_ joined #lisp 2018-01-01T06:19:08Z terpri quit (Quit: Leaving) 2018-01-01T06:24:55Z fikka joined #lisp 2018-01-01T06:25:39Z khisanth_ joined #lisp 2018-01-01T06:29:31Z fikka quit (Ping timeout: 256 seconds) 2018-01-01T06:32:43Z safe joined #lisp 2018-01-01T06:35:00Z fikka joined #lisp 2018-01-01T06:37:22Z krwq quit (Remote host closed the connection) 2018-01-01T06:39:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T06:40:18Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-01T06:43:57Z Bike quit (Quit: Lost terminal) 2018-01-01T06:46:47Z fikka joined #lisp 2018-01-01T06:51:41Z fikka quit (Ping timeout: 252 seconds) 2018-01-01T06:53:58Z shrdlu68 joined #lisp 2018-01-01T06:54:25Z shrdlu68: Good morning, fellow earthlings! 2018-01-01T06:54:48Z notzmv: morning 2018-01-01T06:54:55Z notzmv: happy new year 2018-01-01T06:55:21Z shrdlu68: Happy new orbit 2018-01-01T06:57:39Z fikka joined #lisp 2018-01-01T06:59:33Z aindilis quit (Ping timeout: 256 seconds) 2018-01-01T07:01:51Z lemoinem quit (Ping timeout: 248 seconds) 2018-01-01T07:02:08Z lemoinem joined #lisp 2018-01-01T07:02:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T07:04:41Z yeticry quit (Ping timeout: 260 seconds) 2018-01-01T07:06:25Z yeticry joined #lisp 2018-01-01T07:07:09Z shrdlu68: What's the way to wait till a thread exits in bordeaux-threads? The docs advise against #'join-thread 2018-01-01T07:07:49Z fikka joined #lisp 2018-01-01T07:08:12Z smurfrobot joined #lisp 2018-01-01T07:09:07Z shrdlu68: Hmm, I could use condition variables... 2018-01-01T07:10:44Z t0adst00l joined #lisp 2018-01-01T07:11:00Z megalography quit (Quit: Leaving.) 2018-01-01T07:12:32Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T07:13:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-01T07:13:37Z wxie quit (Read error: Connection reset by peer) 2018-01-01T07:13:57Z wxie joined #lisp 2018-01-01T07:19:05Z shka joined #lisp 2018-01-01T07:23:56Z lemoinem quit (Ping timeout: 260 seconds) 2018-01-01T07:24:10Z Vicfred joined #lisp 2018-01-01T07:24:15Z lemoinem joined #lisp 2018-01-01T07:25:39Z smurfrobot joined #lisp 2018-01-01T07:26:17Z shrdlu68 quit (Remote host closed the connection) 2018-01-01T07:31:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-01T07:31:39Z fikka joined #lisp 2018-01-01T07:33:30Z terpri joined #lisp 2018-01-01T07:36:48Z fikka quit (Ping timeout: 268 seconds) 2018-01-01T07:42:11Z rippa joined #lisp 2018-01-01T07:45:01Z notzmv is now known as `420 2018-01-01T07:51:59Z fikka joined #lisp 2018-01-01T07:56:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-01T08:02:24Z fikka joined #lisp 2018-01-01T08:06:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-01T08:12:29Z fikka joined #lisp 2018-01-01T08:13:47Z shrdlu68 joined #lisp 2018-01-01T08:17:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T08:32:33Z fikka joined #lisp 2018-01-01T08:32:41Z Amplituhedron joined #lisp 2018-01-01T08:37:34Z fikka quit (Ping timeout: 272 seconds) 2018-01-01T08:43:15Z fikka joined #lisp 2018-01-01T08:44:43Z moei quit (Quit: Leaving...) 2018-01-01T08:45:35Z _paul0 joined #lisp 2018-01-01T08:47:29Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T08:47:31Z wxie quit (Remote host closed the connection) 2018-01-01T08:48:17Z paul0 quit (Ping timeout: 252 seconds) 2018-01-01T08:54:44Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T08:55:35Z DeadTrickster joined #lisp 2018-01-01T08:56:13Z shrdlu68: This function counts from 0 past 7 and errors. However, changing "*standard-output*" to "t" in line 8 changes that. How is this happening? https://paste.pound-python.org/show/kNpHapRGwKjykU7YFXSX/ 2018-01-01T08:58:04Z shrdlu68: i.e if I change *standard-output* to t it runs perfectly and counts only from 0 to 7 as it should. 2018-01-01T09:01:49Z damke joined #lisp 2018-01-01T09:02:21Z whoman: hm, try to flush stdio ? 2018-01-01T09:02:47Z fikka joined #lisp 2018-01-01T09:03:01Z whoman: or .. https://stackoverflow.com/questions/27178642/sbcl-multiple-threads-write-to-standard-output ? 2018-01-01T09:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-01T09:04:42Z shrdlu68: Further investigation shows that it happens either way, just not predictably. 2018-01-01T09:05:48Z shrdlu68: Even without printing, why would it count past 7? 2018-01-01T09:06:29Z lemoinem quit (Ping timeout: 256 seconds) 2018-01-01T09:07:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T09:09:15Z beach: It is not specified whether the final value of a loop counter is the last value you specified or one greater. 2018-01-01T09:09:27Z beach: I believe in SBCL it is one greater. 2018-01-01T09:09:51Z beach: Or, maybe it's specified to be wrong. I forget 2018-01-01T09:09:59Z beach: SICL LOOP doesn't have this problem, of course. :) 2018-01-01T09:13:30Z shrdlu68: But (loop for i from 0 to 7 collecting i) always results in '(0 1 2 3 4 5 6 7) in SBCL under normal circumstances. 2018-01-01T09:13:59Z Shinmera: shrdlu68: The problem is that the thread might start after the loop has finished. 2018-01-01T09:14:01Z lemoinem joined #lisp 2018-01-01T09:14:45Z Amplituhedron quit (Ping timeout: 264 seconds) 2018-01-01T09:15:13Z Shinmera: If you want to avoid this you need to create a new binding for the index around each thread creation. 2018-01-01T09:15:57Z Tristam quit (Ping timeout: 264 seconds) 2018-01-01T09:16:19Z shrdlu68: I see. I'm currently creating a new binding _inside_ each thread. 2018-01-01T09:22:31Z fikka joined #lisp 2018-01-01T09:22:48Z `420 left #lisp 2018-01-01T09:27:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-01T09:27:48Z JonSmith joined #lisp 2018-01-01T09:29:02Z JonSmith quit (Remote host closed the connection) 2018-01-01T09:32:44Z fikka joined #lisp 2018-01-01T09:33:27Z lemoinem quit (Ping timeout: 240 seconds) 2018-01-01T09:34:17Z lemoinem joined #lisp 2018-01-01T09:35:47Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T09:36:11Z DeadTrickster joined #lisp 2018-01-01T09:37:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T09:39:59Z randomstrangerb quit (Ping timeout: 252 seconds) 2018-01-01T09:41:33Z randomstrangerb joined #lisp 2018-01-01T09:41:45Z nsrahmad joined #lisp 2018-01-01T09:42:51Z moei joined #lisp 2018-01-01T09:43:20Z sebastien_ quit (Quit: leaving) 2018-01-01T09:44:39Z smurfrobot joined #lisp 2018-01-01T09:44:56Z lemoinem quit (Ping timeout: 252 seconds) 2018-01-01T09:46:10Z lemoinem joined #lisp 2018-01-01T09:46:59Z sebastien_ joined #lisp 2018-01-01T09:52:04Z JuanDaugherty joined #lisp 2018-01-01T09:52:14Z fikka joined #lisp 2018-01-01T09:56:49Z jamtho_ quit (Ping timeout: 248 seconds) 2018-01-01T09:57:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T09:58:34Z FreeBirdLjj joined #lisp 2018-01-01T10:01:17Z smurfrobot quit (Remote host closed the connection) 2018-01-01T10:07:46Z Murii joined #lisp 2018-01-01T10:12:23Z fikka joined #lisp 2018-01-01T10:16:08Z shrdlu68 quit (Remote host closed the connection) 2018-01-01T10:16:45Z fikka quit (Ping timeout: 256 seconds) 2018-01-01T10:19:42Z python476 joined #lisp 2018-01-01T10:21:16Z safe quit (Read error: Connection reset by peer) 2018-01-01T10:30:35Z nsrahmad quit (Quit: Leaving) 2018-01-01T10:31:45Z fikka joined #lisp 2018-01-01T10:32:44Z smurfrobot joined #lisp 2018-01-01T10:36:15Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T10:41:24Z josemanuel joined #lisp 2018-01-01T10:41:53Z Tristam joined #lisp 2018-01-01T10:45:33Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-01T10:46:21Z Tristam quit (Ping timeout: 260 seconds) 2018-01-01T10:48:18Z attila_lendvai joined #lisp 2018-01-01T10:50:00Z DeadTrickster_ joined #lisp 2018-01-01T10:50:08Z smurfrobot quit (Remote host closed the connection) 2018-01-01T10:51:24Z __paul0 joined #lisp 2018-01-01T10:51:32Z fikka joined #lisp 2018-01-01T10:53:21Z _paul0 quit (Ping timeout: 248 seconds) 2018-01-01T10:55:15Z Tristam joined #lisp 2018-01-01T10:56:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T10:59:43Z Tristam quit (Ping timeout: 248 seconds) 2018-01-01T11:00:52Z damke_ joined #lisp 2018-01-01T11:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-01T11:04:10Z Tristam joined #lisp 2018-01-01T11:04:24Z markong joined #lisp 2018-01-01T11:05:55Z narendraj9 joined #lisp 2018-01-01T11:06:05Z dddddd joined #lisp 2018-01-01T11:08:45Z Tristam quit (Ping timeout: 264 seconds) 2018-01-01T11:11:24Z fikka joined #lisp 2018-01-01T11:12:26Z Tristam joined #lisp 2018-01-01T11:13:22Z smurfrobot joined #lisp 2018-01-01T11:13:59Z random-nick joined #lisp 2018-01-01T11:16:14Z fikka quit (Ping timeout: 252 seconds) 2018-01-01T11:17:09Z Tristam quit (Ping timeout: 264 seconds) 2018-01-01T11:20:17Z __paul0 quit (Remote host closed the connection) 2018-01-01T11:21:35Z fikka joined #lisp 2018-01-01T11:21:47Z paul0 joined #lisp 2018-01-01T11:24:52Z smurfrobot quit (Remote host closed the connection) 2018-01-01T11:25:53Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T11:29:29Z Tristam joined #lisp 2018-01-01T11:33:53Z Tristam quit (Ping timeout: 248 seconds) 2018-01-01T11:34:25Z fourier joined #lisp 2018-01-01T11:34:57Z DeadTrickster_ quit (Ping timeout: 256 seconds) 2018-01-01T11:37:13Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-01T11:38:25Z randomstrangerb joined #lisp 2018-01-01T11:41:01Z fikka joined #lisp 2018-01-01T11:41:36Z smurfrobot joined #lisp 2018-01-01T11:42:33Z Tristam joined #lisp 2018-01-01T11:43:33Z lemoinem quit (Ping timeout: 264 seconds) 2018-01-01T11:44:45Z lemoinem joined #lisp 2018-01-01T11:45:50Z wxie joined #lisp 2018-01-01T11:45:56Z fikka quit (Ping timeout: 268 seconds) 2018-01-01T11:46:33Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-01T11:46:57Z Tristam quit (Ping timeout: 240 seconds) 2018-01-01T11:51:07Z Tristam joined #lisp 2018-01-01T11:55:55Z Tristam quit (Ping timeout: 256 seconds) 2018-01-01T11:57:47Z mlau joined #lisp 2018-01-01T11:59:45Z Tristam joined #lisp 2018-01-01T12:00:47Z fikka joined #lisp 2018-01-01T12:02:09Z mlau quit (Ping timeout: 256 seconds) 2018-01-01T12:03:35Z jarwin joined #lisp 2018-01-01T12:03:38Z jarwin is now known as Jarwin 2018-01-01T12:04:33Z Tristam quit (Ping timeout: 264 seconds) 2018-01-01T12:05:21Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T12:05:51Z fourier quit (Ping timeout: 248 seconds) 2018-01-01T12:07:06Z mlau joined #lisp 2018-01-01T12:07:15Z Tristam joined #lisp 2018-01-01T12:08:08Z makomo_ joined #lisp 2018-01-01T12:09:19Z phoe: How can I tell DRAKMA to error if it encounters a response code like 4xx or 5xx? 2018-01-01T12:12:06Z Tristam quit (Ping timeout: 260 seconds) 2018-01-01T12:13:02Z pagnol joined #lisp 2018-01-01T12:15:21Z fikka joined #lisp 2018-01-01T12:15:59Z Tristam joined #lisp 2018-01-01T12:16:02Z JuanDaugherty: it will have already done, you just need to hook, it's your job 2018-01-01T12:16:29Z JuanDaugherty: because programmer 2018-01-01T12:18:27Z Jarwin quit (Remote host closed the connection) 2018-01-01T12:20:27Z Tristam quit (Ping timeout: 240 seconds) 2018-01-01T12:20:37Z Xach: phoe: I generally wrap raw drakma to do things like that when working with apis. 2018-01-01T12:21:20Z Xach: I'll glom all the separate bits into a single response object, then specialize that object, then have a gf that finds an error condition for that object based on all its parts (response code, headers, body) 2018-01-01T12:21:47Z Xach: For some APIs 4xx isn't an error, for example. 2018-01-01T12:24:23Z Tristam joined #lisp 2018-01-01T12:25:20Z orivej joined #lisp 2018-01-01T12:28:35Z terpri quit (Ping timeout: 240 seconds) 2018-01-01T12:28:44Z phoe: Xach: got it, thanks. 2018-01-01T12:29:22Z Tristam quit (Ping timeout: 272 seconds) 2018-01-01T12:29:28Z makomo joined #lisp 2018-01-01T12:31:35Z wxie quit (Remote host closed the connection) 2018-01-01T12:32:31Z makomo_ quit (Ping timeout: 260 seconds) 2018-01-01T12:34:50Z smurfrobot joined #lisp 2018-01-01T12:42:20Z narendraj9 quit (Remote host closed the connection) 2018-01-01T12:44:23Z bgardner joined #lisp 2018-01-01T12:50:41Z flip214 quit (Read error: Connection reset by peer) 2018-01-01T12:50:41Z flip214_ joined #lisp 2018-01-01T12:51:01Z Shinmera: if I remember correctly dexador errors on non-200 codes. 2018-01-01T12:51:21Z fikka quit (Ping timeout: 265 seconds) 2018-01-01T12:51:35Z smurfrobot quit (Remote host closed the connection) 2018-01-01T12:53:29Z phoe: Shinmera: dexador "is still BETA quality. The APIs will be likely to change." 2018-01-01T12:53:33Z phoe: but I'm nitpicking now. (: 2018-01-01T12:53:55Z Shinmera: Sure, I can't recommend it myself either as I've had it fail on some sites. 2018-01-01T12:54:03Z Shinmera: It is much faster than drakma when it works 2018-01-01T12:54:17Z Shinmera: Which can be important 2018-01-01T12:58:04Z fittestbits left #lisp 2018-01-01T12:59:33Z fikka joined #lisp 2018-01-01T13:06:16Z Xach: What's the difference between Shinmera and Shirakumo? 2018-01-01T13:07:42Z Shinmera: There's other people in shirakumo. http://shirakumo.org/ 2018-01-01T13:07:58Z Shinmera: But it's still 99.9% me, so 2018-01-01T13:08:03Z Shinmera: Not that much 2018-01-01T13:09:16Z Xach: Shinmera: If I made a feed for build failures, should I lump them together? 2018-01-01T13:09:25Z Xach: I am doing some pattern-matching heuristics 2018-01-01T13:09:47Z Shinmera: I don't know if grouping things into a single feed per author is a good idea. Some people might individually care about failures of a particular project. 2018-01-01T13:09:53Z Shinmera: Unless you're going to offer both. 2018-01-01T13:10:25Z Shinmera: And no, I'm fine with subscribing to multiple feeds, so just doing per-github-account or something is fine by me. 2018-01-01T13:10:41Z Shinmera: No need to put them together. 2018-01-01T13:11:20Z Shinmera: And who knows, maybe some day I'll get lucky and someone else will finally contribute significantly to Shirakumo projects. 2018-01-01T13:19:33Z eSVG quit (Ping timeout: 265 seconds) 2018-01-01T13:20:32Z pjb quit (Ping timeout: 252 seconds) 2018-01-01T13:22:44Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-01T13:27:21Z _paul0 joined #lisp 2018-01-01T13:28:19Z kupad quit (K-Lined) 2018-01-01T13:28:50Z kupad joined #lisp 2018-01-01T13:29:03Z eSVG joined #lisp 2018-01-01T13:29:59Z paul0 quit (Ping timeout: 256 seconds) 2018-01-01T13:31:03Z nirved joined #lisp 2018-01-01T13:36:56Z Karl_Dscc joined #lisp 2018-01-01T13:36:57Z orivej quit (Ping timeout: 264 seconds) 2018-01-01T13:37:35Z JuanDaugherty joined #lisp 2018-01-01T13:42:48Z igemnace joined #lisp 2018-01-01T13:44:18Z pjb joined #lisp 2018-01-01T13:50:06Z vaporatorius__ quit (Ping timeout: 260 seconds) 2018-01-01T13:51:35Z mathrick joined #lisp 2018-01-01T13:52:04Z smurfrobot joined #lisp 2018-01-01T13:54:31Z bgardner quit (Quit: Simple IRC: The quit option.) 2018-01-01T13:55:04Z bgardner joined #lisp 2018-01-01T13:56:53Z phoe: I have a list (A B C D E F ... P Q R ... X Y Z). Is there a function that will get me a subsequence of this list, starting from the beginning, and ending at Q? 2018-01-01T13:57:09Z phoe: Where Q can be any object. 2018-01-01T13:57:19Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-01T13:57:59Z phoe: Or should I just use SUBSEQ with POSITION? 2018-01-01T13:58:03Z beach: (subseq list 0 1+ (position 'Q list))) 2018-01-01T13:58:12Z beach: er, you see what I mean. 2018-01-01T13:59:37Z Shinmera: (loop for c in list until (eq c thing) collect c) 2018-01-01T14:00:16Z beach: You'll miss the Q then. 2018-01-01T14:00:31Z Shinmera: move the until after the collect if you want the q 2018-01-01T14:01:08Z phoe: Got it. Thanks! 2018-01-01T14:04:50Z uuplusu joined #lisp 2018-01-01T14:08:05Z Xach: phoe: i have a weird variation 2018-01-01T14:08:52Z Xach: (ldiff list (cdr (member 'q list))) 2018-01-01T14:09:02Z sabrac joined #lisp 2018-01-01T14:09:20Z Xach: i don't see ldiff used a lot. 2018-01-01T14:09:21Z _death: I was just about to say.. but why CDR? 2018-01-01T14:09:37Z beach: So that Q is in the result? 2018-01-01T14:10:07Z Xach: if you want Q as the final object. 2018-01-01T14:10:08Z _death: right, guess I expected a closed interval 2018-01-01T14:10:34Z sabrac: hello everyone 2018-01-01T14:10:46Z Xach: hi sabrac. thanks for making your library comparison pages. they are great. 2018-01-01T14:10:49Z beach: Hello sabrac. 2018-01-01T14:12:06Z sabrac: Thank you. I wish I had more time to work on them because I learn so much doing them. 2018-01-01T14:12:45Z sabrac: Is there anything in particular I should prioritize? 2018-01-01T14:13:14Z pagnol: I sometimes see keywords prefixed with a #, like #:abc, what are those? 2018-01-01T14:13:20Z Shinmera: sabrac: I remember you mailing me about one some months back, but I don't recall it ever getting released 2018-01-01T14:13:26Z Shinmera: I forgot what it was about though :( 2018-01-01T14:13:55Z _death: pagnol: these aren't keywords, but uninterned symbols 2018-01-01T14:14:44Z kajo joined #lisp 2018-01-01T14:14:53Z _death: pagnol: you should tokenize them in your mind as #: abc rather than # :abc.. 2018-01-01T14:16:36Z pagnol: ah, thanks 2018-01-01T14:16:38Z _death: clhs #: 2018-01-01T14:16:38Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/02_dhe.htm 2018-01-01T14:17:36Z phoe: Xach: ldiff! that was the function I was thinking of. 2018-01-01T14:17:49Z sabrac: Shinmera: I have one half completed on test frameworks. Work got in the way. 2018-01-01T14:17:55Z pjb quit (Ping timeout: 255 seconds) 2018-01-01T14:18:27Z Shinmera: Ah, that was it 2018-01-01T14:19:18Z pagnol: apparently people use dots in package names to achieve something like nested namespaces, I'm wondering if I should adopt that 2018-01-01T14:19:19Z phoe: clhs ldiff 2018-01-01T14:19:20Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_ldiffc.htm 2018-01-01T14:19:45Z jibanes quit (Ping timeout: 248 seconds) 2018-01-01T14:21:12Z nika joined #lisp 2018-01-01T14:21:28Z Xach: pagnol: It's syntactic only 2018-01-01T14:21:33Z Xach: pagnol: I don't prarticularly like it. 2018-01-01T14:21:40Z Xach: Slashes are even uglier to me. 2018-01-01T14:21:49Z jibanes joined #lisp 2018-01-01T14:22:29Z zulu_inuoe joined #lisp 2018-01-01T14:22:41Z _death: with package-inferred-systems slashes have semantics 2018-01-01T14:24:13Z _death: also slime will display only the part after the last dot in the repl 2018-01-01T14:25:02Z terpri joined #lisp 2018-01-01T14:29:52Z JonSmith joined #lisp 2018-01-01T14:30:30Z pagnol: Xach, is there anything else you use to imitate nested namespaces? 2018-01-01T14:30:57Z beach: pagnol: Hierarchies are not necessarily good. 2018-01-01T14:31:11Z beach: Perhaps it is time to use package-local nicknames. 2018-01-01T14:31:24Z JonSmith quit (Remote host closed the connection) 2018-01-01T14:31:49Z fikka quit (Ping timeout: 268 seconds) 2018-01-01T14:32:07Z beach: pagnol: That way, you can use long names for your packages and short ones to refer to them. 2018-01-01T14:32:20Z pfdietz joined #lisp 2018-01-01T14:33:27Z orivej joined #lisp 2018-01-01T14:33:33Z Xach: pagnol: for related packages, i use a short or abbreviated prefix and a hyphen. 2018-01-01T14:35:20Z Xach: Some systems use one big package and lump everything into it. I don't like that style a lot - I want the comfort of knowing I won't affect unrelated things in a particular section of a larger project. 2018-01-01T14:35:58Z Shinmera: I use both the FQDN style and the basic hyphen style. 2018-01-01T14:36:52Z pagnol: fqdn? 2018-01-01T14:36:58Z Shinmera: Fully Qualified Domain Name 2018-01-01T14:37:29Z sabrac: _death: Thank you for the reminder on package-inferred systems. I had forgotten about that. Heads off to re-read the asdf documentation. 2018-01-01T14:37:45Z Tobbi joined #lisp 2018-01-01T14:39:13Z Shinmera: sabrac: By the way, thanks again for the feedback and bug reports that spawned from the previous articles you wrote :) 2018-01-01T14:40:32Z marcux joined #lisp 2018-01-01T14:40:35Z fikka joined #lisp 2018-01-01T14:40:57Z igemnace quit (Ping timeout: 240 seconds) 2018-01-01T14:42:37Z igemnace joined #lisp 2018-01-01T14:45:30Z KZiemian joined #lisp 2018-01-01T14:45:54Z KZiemian: AreoNoxi: hello 2018-01-01T14:46:06Z sabrac: Shinmera: Thank you for actually documenting things. 2018-01-01T14:46:14Z KZiemian: AreoNoxi: have you still some question about CLUS 2018-01-01T14:46:38Z KZiemian: AreoNoxi: maybe today I can give you some clues 2018-01-01T14:46:57Z Shinmera: KZiemian: You're typing the name wrong 2018-01-01T14:47:42Z KZiemian: Shinmera: oh, yes you are right 2018-01-01T14:48:09Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T14:48:18Z KZiemian: AeroNotix: hello 2018-01-01T14:50:26Z KZiemian: AeroNotix: maybe today I can give more things about CLUS 2018-01-01T14:53:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-01T14:54:51Z brendyn quit (Ping timeout: 246 seconds) 2018-01-01T14:54:53Z KZiemian: will we celabreat in some way 60 years of Lisp? 2018-01-01T14:55:17Z KZiemian: my celebration: write 10 real program in CL 2018-01-01T14:55:27Z damke_ joined #lisp 2018-01-01T14:55:31Z KZiemian: maybe give a look o Scheme 2018-01-01T14:55:37Z aindilis joined #lisp 2018-01-01T14:55:38Z KZiemian: *on Scheme 2018-01-01T14:56:50Z jarwin joined #lisp 2018-01-01T14:57:03Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T15:00:35Z orivej quit (Ping timeout: 240 seconds) 2018-01-01T15:01:16Z jarwin is now known as Jarwin 2018-01-01T15:01:57Z _paul0 quit (Quit: Leaving) 2018-01-01T15:02:27Z KZiemian: phoe: are you here? 2018-01-01T15:02:27Z markong quit (Read error: Connection reset by peer) 2018-01-01T15:02:49Z markong joined #lisp 2018-01-01T15:04:49Z uuplusu quit (Quit: Leaving...) 2018-01-01T15:06:50Z markong quit (Read error: No route to host) 2018-01-01T15:06:53Z margeas joined #lisp 2018-01-01T15:07:07Z EvW1 joined #lisp 2018-01-01T15:11:25Z nika quit (Ping timeout: 256 seconds) 2018-01-01T15:12:21Z igemnace quit (Ping timeout: 260 seconds) 2018-01-01T15:13:17Z fikka joined #lisp 2018-01-01T15:13:17Z jack_rabbit quit (Ping timeout: 252 seconds) 2018-01-01T15:17:25Z igemnace joined #lisp 2018-01-01T15:17:28Z Bike joined #lisp 2018-01-01T15:18:04Z fikka quit (Ping timeout: 252 seconds) 2018-01-01T15:24:12Z Oladon joined #lisp 2018-01-01T15:29:36Z pagnol: I got the impression there's quite a high reliance on global variables in lisp libraries 2018-01-01T15:30:57Z shka: pagnol: special variables with global scope 2018-01-01T15:32:46Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-01T15:33:21Z FreeBirdLjj joined #lisp 2018-01-01T15:33:35Z fikka joined #lisp 2018-01-01T15:35:55Z beach: pagnol: It is a convenient way of having several parameters without passing them explicitly to each function. 2018-01-01T15:36:26Z z3t0 joined #lisp 2018-01-01T15:38:09Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-01T15:38:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-01T15:40:57Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-01T15:44:11Z EvW1 quit (Ping timeout: 240 seconds) 2018-01-01T15:44:16Z fikka joined #lisp 2018-01-01T15:46:34Z beaky quit (K-Lined) 2018-01-01T15:46:34Z antoszka quit (K-Lined) 2018-01-01T15:47:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-01T15:47:28Z margeas is now known as markong 2018-01-01T15:47:44Z antoszka joined #lisp 2018-01-01T15:48:13Z beach: pagnol: And in most Common Lisp implementations, a binding of a special variable is thread local (the global value is shared). That makes special variables even more convenient. 2018-01-01T15:49:07Z beaky joined #lisp 2018-01-01T15:50:54Z damke joined #lisp 2018-01-01T15:51:43Z Tobbi joined #lisp 2018-01-01T15:51:59Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-01T15:52:06Z shka: and you can shadow dynamic binding with let 2018-01-01T15:52:51Z shka: it is perhaps one of more useful features of lispy languages 2018-01-01T15:53:34Z shka: metabang-bind is cool, btw 2018-01-01T15:54:05Z Colleen quit (Ping timeout: 240 seconds) 2018-01-01T15:54:39Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-01T15:55:01Z beach: Yes, one of the more useful features, together with CLOS, macros, uniform syntax, reader macros, arbitrary precision integers, exact rationals, programmable reader, compiler available at runtime, packages, symbols, the LOOP macro, FORMAT, compiler macros, etc. etc. :) 2018-01-01T15:55:27Z marcux quit (Ping timeout: 240 seconds) 2018-01-01T15:55:53Z randomstrangerb joined #lisp 2018-01-01T15:56:40Z random-nick: beach: also reader/writer available at runtime 2018-01-01T16:01:14Z beach: That's in the "etc." part. :) 2018-01-01T16:04:15Z Colleen joined #lisp 2018-01-01T16:05:30Z orivej joined #lisp 2018-01-01T16:08:09Z damke quit (Ping timeout: 264 seconds) 2018-01-01T16:08:27Z sz0 joined #lisp 2018-01-01T16:10:55Z damke joined #lisp 2018-01-01T16:13:18Z Jarwin joined #lisp 2018-01-01T16:16:16Z orivej quit (Ping timeout: 255 seconds) 2018-01-01T16:17:38Z kajo quit (Ping timeout: 252 seconds) 2018-01-01T16:21:33Z shka: beach: very nice list :D 2018-01-01T16:22:49Z Jarwin quit (Ping timeout: 268 seconds) 2018-01-01T16:23:38Z Ven`` joined #lisp 2018-01-01T16:28:06Z Jarwin joined #lisp 2018-01-01T16:30:11Z Oladon quit (Quit: Leaving.) 2018-01-01T16:35:08Z Amplituhedron joined #lisp 2018-01-01T16:36:10Z weltung joined #lisp 2018-01-01T16:37:41Z rumbler31 quit (Remote host closed the connection) 2018-01-01T16:39:21Z damke quit (Ping timeout: 264 seconds) 2018-01-01T16:41:17Z damke joined #lisp 2018-01-01T16:41:18Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-01T16:47:27Z turkja quit (Ping timeout: 248 seconds) 2018-01-01T16:48:36Z rumbler31 joined #lisp 2018-01-01T16:49:33Z damke quit (Ping timeout: 264 seconds) 2018-01-01T16:49:36Z Oladon joined #lisp 2018-01-01T16:51:35Z Amplituhedron joined #lisp 2018-01-01T16:51:40Z damke joined #lisp 2018-01-01T16:56:58Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T16:59:26Z Murii quit (Quit: WeeChat 1.4) 2018-01-01T16:59:41Z Ven`` joined #lisp 2018-01-01T17:01:10Z Murii joined #lisp 2018-01-01T17:03:30Z nika joined #lisp 2018-01-01T17:05:52Z _8hzp quit (Ping timeout: 252 seconds) 2018-01-01T17:08:13Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T17:08:45Z Amplituhedron quit (Ping timeout: 264 seconds) 2018-01-01T17:12:18Z emaczen joined #lisp 2018-01-01T17:13:36Z tfb: shka: I repeatedly find myself having to *implement* dynamic binding in other languages. 2018-01-01T17:14:18Z shka: tfb: ikr 2018-01-01T17:14:36Z shka: dynamic bindings are just very, very useful 2018-01-01T17:15:16Z shka: in some cases, are perhaps just the right thing 2018-01-01T17:15:18Z pagnol: is there something like (defun always (x) (lambda (_) x)) anywhere? 2018-01-01T17:15:21Z pagnol: in lisp 2018-01-01T17:15:34Z shka: pagnol: curry identity 2018-01-01T17:16:25Z fourier joined #lisp 2018-01-01T17:16:49Z shka: for instance, i can't imagine anything better for *output* stream 2018-01-01T17:17:23Z shka: pagnol: if you are not using alexandria, quickload it, then (alexandria:curry #'identity x) will do the trick 2018-01-01T17:17:28Z pagnol: ah alexandria has a CURRY function 2018-01-01T17:17:35Z pagnol: thanks 2018-01-01T17:17:39Z pagnol: nice 2018-01-01T17:17:58Z sonologico: pagnol: doesn't constantly do this? 2018-01-01T17:18:14Z pagnol: I didn't know constantly 2018-01-01T17:18:30Z shka: oh, forgot about constantly 2018-01-01T17:18:41Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T17:18:49Z pagnol: sonologico, that seems to be what I want, thank you 2018-01-01T17:19:05Z DeadTrickster joined #lisp 2018-01-01T17:20:21Z sonologico: pagnol: the resulting function accepts more combinations of arguments than what you wrote, but it does the trick 2018-01-01T17:21:36Z pagnol: does anyone have a recommendation for a simple logging library? 2018-01-01T17:23:10Z Shinmera: Verbose 2018-01-01T17:23:28Z Shinmera: A very biased recommendation I must say. 2018-01-01T17:23:47Z JonSmith joined #lisp 2018-01-01T17:23:49Z Shinmera: And it's simple to use, but not necessarily simple in what it does. 2018-01-01T17:23:57Z Shinmera: The simplest logging library in terms of what it does is FORMAT 2018-01-01T17:30:21Z damke quit (Ping timeout: 264 seconds) 2018-01-01T17:32:25Z jack_rabbit joined #lisp 2018-01-01T17:32:38Z Xach: uh 2018-01-01T17:32:43Z Xach: phew 2018-01-01T17:33:54Z KZiemian quit (Ping timeout: 260 seconds) 2018-01-01T17:34:16Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T17:34:27Z Shinmera: Xach: Something wrong? 2018-01-01T17:35:42Z damke joined #lisp 2018-01-01T17:37:01Z bgardner quit (Ping timeout: 260 seconds) 2018-01-01T17:39:14Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T17:39:35Z dmiles: Does anyone know how to get clisp to remember history between sessions with rlwrap? 2018-01-01T17:39:58Z dmiles: (note, rlwrap disables tself since clisp already uses readline) 2018-01-01T17:40:04Z DeadTrickster joined #lisp 2018-01-01T17:40:58Z dmiles: (so checking to see if anyone made clisp disable its readline and forced rlwrap to takeover or suppliment) 2018-01-01T17:43:01Z shka: dmiles: why not just use good old slime? 2018-01-01T17:43:03Z dmiles: sorry.. i think i found a few docs on doing this 2018-01-01T17:43:52Z Xach: Shinmera: reading backscroll, urgently waiting to read CONSTANTLY 2018-01-01T17:44:05Z Shinmera: Xach: heh 2018-01-01T17:44:17Z dmiles: Shinmera: it is because i need to run sbcl,ecl,clisp,abcl in aunified history 2018-01-01T17:44:45Z Shinmera: Slime keeps a repl history too 2018-01-01T17:45:12Z dmiles: right on 2018-01-01T17:50:46Z randomstrangerb quit (Ping timeout: 255 seconds) 2018-01-01T17:51:16Z asarch joined #lisp 2018-01-01T17:52:01Z randomstrangerb joined #lisp 2018-01-01T17:52:58Z asarch: Best wishes to all of you. Happy new year! o/ 2018-01-01T17:55:02Z loli: I have a question how best to represent an ADT for CLOS 2018-01-01T17:55:36Z loli: the issue I run into is that I make a few structs to model the type, and I terminate the structure on a symbol 2018-01-01T17:56:14Z loli: but the issue is that symbols don't really play nice when trying to defmethod as other data structures end on a symbol and there would thus be a conflict 2018-01-01T17:56:23Z loli: here is an example of what I'm talking about 2018-01-01T17:56:25Z loli: http://lpaste.net/7233336894879170560 2018-01-01T17:56:39Z loli: Is there a better way to form such a type? 2018-01-01T17:57:12Z JonSmith quit (Remote host closed the connection) 2018-01-01T17:57:20Z Xach: loli: what do you mean when you write that "symbols don't really play nice"? 2018-01-01T17:57:42Z loli: well if I tried to do (defmethod foldr (f x (empty symbol)) 2018-01-01T17:57:48Z JonSmith joined #lisp 2018-01-01T17:57:59Z loli: this method will now pop up on every symbol instance 2018-01-01T17:58:05Z Xach: loli: instead you would do (defmethod foldr (f x ((empty (eql :empty)))) ...) 2018-01-01T17:58:11Z shka: loli: (eql :empty) 2018-01-01T17:58:13Z Xach: sorry, i have added too many layers 2018-01-01T17:58:15Z loli: you can do that} 2018-01-01T17:58:18Z Xach: (empty (eql :empty)) 2018-01-01T17:58:19Z Xach: yes 2018-01-01T17:58:22Z loli: awesome 2018-01-01T17:58:30Z loli: that helps me out a lot 2018-01-01T17:58:36Z Xach: i live to serve 2018-01-01T17:58:36Z loli: as a lot of my data structures end up this way 2018-01-01T17:58:45Z shka: it is surprisingly useful as well 2018-01-01T17:58:52Z shka: for expandable macros and stuff 2018-01-01T17:59:07Z Xach: so useful 2018-01-01T18:00:14Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T18:00:39Z DeadTrickster joined #lisp 2018-01-01T18:00:42Z loli: expandable macros? 2018-01-01T18:01:25Z shka: macros that allow to add new functionalities to it 2018-01-01T18:01:33Z loli: ahh 2018-01-01T18:01:35Z shka: metabang-bind for instance 2018-01-01T18:01:43Z loli: g! was rather nice 2018-01-01T18:01:55Z loli: I took inspiration from that and made s! for automatic semaphore injection 2018-01-01T18:01:59Z loli: was rather nice to design 2018-01-01T18:02:09Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-01T18:04:32Z fluke` joined #lisp 2018-01-01T18:07:29Z Tobbi joined #lisp 2018-01-01T18:08:33Z vaporatorius joined #lisp 2018-01-01T18:08:33Z vaporatorius quit (Changing host) 2018-01-01T18:08:33Z vaporatorius joined #lisp 2018-01-01T18:09:39Z vap1 joined #lisp 2018-01-01T18:10:18Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-01T18:10:37Z vaporatorius quit (Client Quit) 2018-01-01T18:12:13Z bgardner joined #lisp 2018-01-01T18:16:35Z smurfrobot joined #lisp 2018-01-01T18:16:57Z formerly joined #lisp 2018-01-01T18:17:13Z ebrasca left #lisp 2018-01-01T18:18:56Z Oladon quit (Quit: Leaving.) 2018-01-01T18:20:59Z smurfrobot quit (Ping timeout: 250 seconds) 2018-01-01T18:22:02Z danii20 joined #lisp 2018-01-01T18:22:56Z nowhere_man joined #lisp 2018-01-01T18:24:33Z danii20 quit 2018-01-01T18:27:30Z Tko joined #lisp 2018-01-01T18:28:49Z nowhere_man quit (Ping timeout: 248 seconds) 2018-01-01T18:30:53Z formerly quit (Ping timeout: 256 seconds) 2018-01-01T18:30:58Z slyrus joined #lisp 2018-01-01T18:37:46Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T18:42:27Z attila_lendvai1 joined #lisp 2018-01-01T18:42:27Z attila_lendvai quit (Disconnected by services) 2018-01-01T18:42:27Z attila_lendvai1 quit (Changing host) 2018-01-01T18:42:27Z attila_lendvai1 joined #lisp 2018-01-01T18:43:40Z slyrus quit (Remote host closed the connection) 2018-01-01T18:43:46Z nika quit (Quit: Leaving...) 2018-01-01T18:44:56Z emaczen: SBCL from the debugger with SLIME won't find my sources with M-. or v -- what should I try? 2018-01-01T18:46:23Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-01T18:47:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-01T18:48:17Z fikka joined #lisp 2018-01-01T18:48:57Z nowhere_man joined #lisp 2018-01-01T18:53:45Z emaczen quit (Remote host closed the connection) 2018-01-01T18:54:13Z epony quit (Quit: QUIT) 2018-01-01T18:56:03Z beach: Do you have a high DEBUG setting? 2018-01-01T18:56:15Z zulu_inuoe_ joined #lisp 2018-01-01T18:57:51Z aindilis quit (Read error: Connection reset by peer) 2018-01-01T18:58:14Z fourier quit (Ping timeout: 272 seconds) 2018-01-01T18:58:39Z zulu_inuoe quit (Ping timeout: 248 seconds) 2018-01-01T18:58:49Z pjb joined #lisp 2018-01-01T18:58:57Z emaczen joined #lisp 2018-01-01T18:59:16Z beach: emaczen: Do you have a high DEBUG setting? 2018-01-01T18:59:45Z emaczen: I think it is set to 0 2018-01-01T19:00:00Z beach: That might explain it then. 2018-01-01T19:00:36Z emaczen: beach: I will try it out and see 2018-01-01T19:00:45Z beach: I have this in my .sbclrc: (declaim (optimize (speed 0) (debug 3) (safety 3))) 2018-01-01T19:01:11Z beach: It is unfortunate that SBCL is not delivered with these values as the default. 2018-01-01T19:01:47Z beach: Lots of people just use the default values, and waste a lot of time trying to debug their code with insufficient information generated by the compiler. 2018-01-01T19:02:38Z emaczen: beach: I have been using CCL to debug since it seems to by default always give me a lot of information in the debugger haha 2018-01-01T19:03:12Z beach: Yes, I see. 2018-01-01T19:03:24Z beach: So you are one more victim of SBCL's default values. 2018-01-01T19:03:40Z rumbler31: beach: how would you go about triggering a recompilation once you want to change those values? 2018-01-01T19:04:11Z beach: rumbler31: I guess use :FORCE T with ASDF. 2018-01-01T19:05:08Z slyrus joined #lisp 2018-01-01T19:07:13Z emaczen: beach 2018-01-01T19:07:20Z emaczen: beach: It still won't show me local variables 2018-01-01T19:07:33Z emaczen: It is showing me local variables for SBCL code but not my own 2018-01-01T19:07:53Z cross_ joined #lisp 2018-01-01T19:07:58Z cross_ is now known as cross 2018-01-01T19:09:29Z fourier joined #lisp 2018-01-01T19:10:10Z dieggsy joined #lisp 2018-01-01T19:12:27Z emaczen quit (Remote host closed the connection) 2018-01-01T19:13:37Z epony joined #lisp 2018-01-01T19:14:53Z epony quit (Max SendQ exceeded) 2018-01-01T19:15:14Z krwq joined #lisp 2018-01-01T19:15:20Z fourier quit (Ping timeout: 272 seconds) 2018-01-01T19:15:39Z epony joined #lisp 2018-01-01T19:16:14Z parjanya: beach: what does optimize do? my google powers fail me 2018-01-01T19:17:33Z smurfrobot joined #lisp 2018-01-01T19:18:11Z Bike: clhs optimize 2018-01-01T19:18:12Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/d_optimi.htm 2018-01-01T19:19:08Z krwq quit (Remote host closed the connection) 2018-01-01T19:19:50Z parjanya: ah, I thought it was sbcl specific. tx! 2018-01-01T19:22:27Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-01T19:23:59Z SqREL joined #lisp 2018-01-01T19:27:04Z krwq joined #lisp 2018-01-01T19:27:57Z krwq quit (Remote host closed the connection) 2018-01-01T19:28:40Z krwq joined #lisp 2018-01-01T19:29:01Z krwq quit (Remote host closed the connection) 2018-01-01T19:29:25Z krwq joined #lisp 2018-01-01T19:29:44Z fourier joined #lisp 2018-01-01T19:30:08Z krwq quit (Remote host closed the connection) 2018-01-01T19:30:28Z pagnol: I've begun littering my code with check-type and assert... presumably this is a very unidiomatic style in cl? 2018-01-01T19:30:34Z krwq joined #lisp 2018-01-01T19:30:42Z Bike: eh, it's ok. 2018-01-01T19:31:23Z krwq quit (Remote host closed the connection) 2018-01-01T19:32:01Z krwq joined #lisp 2018-01-01T19:33:37Z pjb: pagnol: not at all. 2018-01-01T19:33:59Z pjb: pagnol: check-type is what you should use (instead of declare type), in ALL your public functions! 2018-01-01T19:34:17Z pjb: and assert can be used as much as you want. 2018-01-01T19:37:48Z random-nick quit (Remote host closed the connection) 2018-01-01T19:38:08Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-01T19:43:16Z random-nick joined #lisp 2018-01-01T19:45:30Z _death: for some definition of "public" 2018-01-01T19:46:11Z varjag joined #lisp 2018-01-01T19:49:56Z jack_rabbit joined #lisp 2018-01-01T19:50:28Z random-nick quit (Remote host closed the connection) 2018-01-01T19:50:48Z pagnol: pjb, thanks, that's very comforting ;-) 2018-01-01T19:51:09Z pagnol: presumably sbcl takes advantage of check-type occurrences? 2018-01-01T19:52:14Z pjb: Of course. The post condition of check-type is that the place is bound to an object of the given type. 2018-01-01T19:58:23Z _death: I think with the python compiler one of the big things was also the converse, that type declarations can perform as type checks (forget safety 0) 2018-01-01T20:00:34Z Xach: pagnol: adding lots of checks makes it harder to change things in the future. sometimes that's not very important. 2018-01-01T20:00:54Z damke_ joined #lisp 2018-01-01T20:01:47Z pjb: Also, (defmacro disable-assert (&body body) `(macrolet ((assert (&rest args) 'nil)) ,@body)) (#+want-assert progn #-want-assert disable-assert …) 2018-01-01T20:02:51Z damke quit (Ping timeout: 246 seconds) 2018-01-01T20:03:40Z pjb: err, nope. Forbidden by 11.1.2.1.2 (and not allowed by 11.1.2.1.2.1) 2018-01-01T20:04:09Z pjb: You would have to use your own macro, not cl:assert. This allows you to globally enable or disable checks if you want that too. 2018-01-01T20:04:34Z _death: (:use "COMMON-LISP-WITHOUT-SAFETY-NET") 2018-01-01T20:04:51Z pjb: Yes. 2018-01-01T20:04:55Z makomo: pjb: lol, i thought for a second that string of numbers was a version number. phew... 2018-01-01T20:05:12Z pjb: It's a famous section. 2018-01-01T20:05:19Z terpri quit (Remote host closed the connection) 2018-01-01T20:08:08Z EvW joined #lisp 2018-01-01T20:10:52Z epony quit (Quit: QUIT) 2018-01-01T20:11:35Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-01T20:12:16Z drcode quit (Ping timeout: 248 seconds) 2018-01-01T20:12:49Z fikka quit (Ping timeout: 248 seconds) 2018-01-01T20:12:50Z randomstrangerb joined #lisp 2018-01-01T20:16:41Z EvW quit (Ping timeout: 250 seconds) 2018-01-01T20:17:36Z terpri joined #lisp 2018-01-01T20:18:24Z d4ryus1 is now known as d4ryus 2018-01-01T20:21:10Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T20:21:34Z sabrac quit (Remote host closed the connection) 2018-01-01T20:21:54Z DeadTrickster joined #lisp 2018-01-01T20:22:27Z fourier quit (Ping timeout: 240 seconds) 2018-01-01T20:23:03Z fikka joined #lisp 2018-01-01T20:23:29Z markong quit (Quit: Konversation terminated!) 2018-01-01T20:23:45Z markong joined #lisp 2018-01-01T20:27:38Z fikka quit (Ping timeout: 268 seconds) 2018-01-01T20:31:20Z attila_lendvai1 quit (Ping timeout: 272 seconds) 2018-01-01T20:37:27Z Karl_Dscc quit (Ping timeout: 240 seconds) 2018-01-01T20:38:42Z smurfrobot joined #lisp 2018-01-01T20:39:14Z random-nick joined #lisp 2018-01-01T20:39:45Z Karl_Dscc joined #lisp 2018-01-01T20:39:45Z QualityAddict joined #lisp 2018-01-01T20:39:50Z python476 quit (Read error: Connection reset by peer) 2018-01-01T20:42:07Z nowhere_man quit (Remote host closed the connection) 2018-01-01T20:42:30Z nowhere_man joined #lisp 2018-01-01T20:45:26Z orivej joined #lisp 2018-01-01T20:47:35Z t0adst00l quit (Remote host closed the connection) 2018-01-01T20:48:14Z t0adst00l joined #lisp 2018-01-01T20:54:01Z parjanya quit (Remote host closed the connection) 2018-01-01T20:54:24Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-01T20:55:28Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-01T20:56:06Z parjanya joined #lisp 2018-01-01T20:59:35Z fourier joined #lisp 2018-01-01T21:00:29Z pagnol: is there anything wrong with having a macro that creates a new class? 2018-01-01T21:00:39Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-01T21:00:54Z fourier: no 2018-01-01T21:01:36Z _death: no, but sometimes this suggests that a mop-based approach may be appropriate 2018-01-01T21:01:58Z fourier: it is what happens for example in Rainer Joswig's dsl-in-lisp video 2018-01-01T21:03:44Z pagnol: _death, what's a mop-based approach? 2018-01-01T21:04:10Z pagnol: fourier, thanks for the reference 2018-01-01T21:05:55Z Kevslinger joined #lisp 2018-01-01T21:06:12Z _death: pagnol: mop = metaobject protocol, which gives a way of introspecting and extending CLOS 2018-01-01T21:06:18Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-01T21:06:47Z pagnol: _death, ah, thanks, that's an aspect of lisp I haven't investigated at all yet 2018-01-01T21:07:39Z pagnol: so this is what the book 'The Art of the Metaobject Protocol' is about 2018-01-01T21:07:46Z _death: yes 2018-01-01T21:07:55Z pagnol: I've seen it on amazon so many times without knowing what it's about 2018-01-01T21:08:05Z jack_rabbit joined #lisp 2018-01-01T21:08:44Z pagnol: is the book still a good introduction to the topic? 2018-01-01T21:08:52Z _death: to me it showed how simple CLOS is at the core 2018-01-01T21:09:01Z pagnol: almost three decades after its publication 2018-01-01T21:09:05Z shka: the art of metaobject protocol is the best book about MOP present 2018-01-01T21:09:17Z _death: it is _the_ book about the topic :) 2018-01-01T21:09:29Z fourier: pagnol: dont forget nothing changes in the common lisp standard world 2018-01-01T21:09:38Z shka: it is good read for anyone interested in MOPs of any kind 2018-01-01T21:09:40Z fourier: so the old book is not necessarily bad 2018-01-01T21:09:41Z shka: not just CLOS mop 2018-01-01T21:10:12Z weltung quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T21:10:23Z shka: smalltalk, ruby, even python 2018-01-01T21:10:30Z _death: I also really like its cover ;) 2018-01-01T21:10:36Z shka: though python mop is weird 2018-01-01T21:10:41Z shka: yes 2018-01-01T21:10:55Z shka: even if you don't like the book, it looks pretty 2018-01-01T21:11:01Z shka: that's great :P 2018-01-01T21:11:14Z _death: with the three authors reflecting to create the light of the lambda 2018-01-01T21:11:30Z pagnol: ok I just went to the bookstore and am going to begin reading 2018-01-01T21:14:05Z weltung joined #lisp 2018-01-01T21:14:15Z EvW1 joined #lisp 2018-01-01T21:15:05Z shka: pagnol: good 2018-01-01T21:15:47Z shka: pagnol: https://www.youtube.com/watch?v=MnQ_mp9TzZY 2018-01-01T21:20:54Z pagnol: I only have lynx so can't watch the video 2018-01-01T21:21:28Z Tobbi joined #lisp 2018-01-01T21:21:29Z shka: use mplayer, pagnol 2018-01-01T21:22:11Z aeth: pagnol: Macros can easily cause problems and unreadable code, but imo there are three common patterns that are very safe to stick with: define-foo, do-foo, and with-foo. (There are some uncommon ones that are safe, too, like foof, similar to incf or decf, that can be defined trivially via define-modify-macro.) 2018-01-01T21:23:07Z aeth: Pretty much everyone should be able to read these, especially if you stay close to similar APIs. 2018-01-01T21:24:53Z aeth: If you're talking about a define-foo, that appears all of the time. Sometimes it appears as "deffoo" if foo is one word, but please don't do that. Tools like emacs only recognize define-* and built in def* like defun, so your form won't stand out as a define. 2018-01-01T21:25:24Z Oladon joined #lisp 2018-01-01T21:27:05Z aeth: define-foos are global, though, so that might not be what you're talking about. 2018-01-01T21:27:44Z aeth: For local bindings or creation without bindings, it gets a bit more complicated. 2018-01-01T21:28:46Z aeth: (Can classes be defined locally in CL?) 2018-01-01T21:29:09Z Bike: not lexically. 2018-01-01T21:29:54Z Bike: you could do a dynamic binding deal with setf and unwind-protect, though it would be dumb as hell and inconvenient besides. 2018-01-01T21:31:03Z pagnol: I was going to set up a macro that creates a global class 2018-01-01T21:31:09Z pagnol: or just a class 2018-01-01T21:31:15Z pagnol: to be used globally.. 2018-01-01T21:32:23Z earl-ducaine quit (Remote host closed the connection) 2018-01-01T21:32:42Z earl-ducaine joined #lisp 2018-01-01T21:32:59Z TCZ joined #lisp 2018-01-01T21:33:32Z Bike: expanding into defclass is fine and normal 2018-01-01T21:35:43Z fittestbits joined #lisp 2018-01-01T21:37:46Z pagnol: Bike, it's comforting to know I was not on the wrong track altogether 2018-01-01T21:40:21Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T21:41:13Z angavrilov quit (Remote host closed the connection) 2018-01-01T21:41:35Z shka: well 2018-01-01T21:41:55Z shka: try to not write macros 2018-01-01T21:42:44Z shka: or at the very least don't write macros were function will do, or you will use it just a couple of times 2018-01-01T21:42:45Z _death: you can use the mop's ensure-class to create classes, incl. anonymous classes 2018-01-01T21:45:07Z pjb: pagnol: well configured, lynx should be able to show videos in ascii art. 2018-01-01T21:45:24Z aeth: What does lynx offer over elinks? 2018-01-01T21:46:20Z Tristam joined #lisp 2018-01-01T21:47:00Z fourier: is where a nice tutorial on CFFI-Grovel ? 2018-01-01T21:47:13Z aeth: ah, lynx is still getting updates. 2018-01-01T21:48:25Z fourier: or how to create a C file accompanying my lisp code (if I want to implement just one function in C) 2018-01-01T21:48:42Z kajo joined #lisp 2018-01-01T21:51:14Z _death: the cffi manual? 2018-01-01T21:53:15Z fourier: its kinda really brief on it. 2018-01-01T21:53:29Z random-nick quit (Quit: quit) 2018-01-01T21:54:00Z random-nick joined #lisp 2018-01-01T21:55:17Z fe[nl]ix: fourier: take a look at iolib 2018-01-01T21:57:20Z aeth: Yeah, look at a library that uses it. 2018-01-01T21:57:30Z aeth: And be prepared to M-. a lot. 2018-01-01T22:00:13Z fourier: fe[nl]ix: thanks, looking into i 2018-01-01T22:00:14Z fourier: t 2018-01-01T22:02:38Z fikka joined #lisp 2018-01-01T22:05:47Z fourier quit (Ping timeout: 252 seconds) 2018-01-01T22:06:17Z smurfrobot quit (Remote host closed the connection) 2018-01-01T22:06:57Z makomo quit (Ping timeout: 264 seconds) 2018-01-01T22:07:26Z shka quit (Ping timeout: 252 seconds) 2018-01-01T22:07:32Z fikka quit (Ping timeout: 268 seconds) 2018-01-01T22:09:29Z Firedancer_ joined #lisp 2018-01-01T22:09:44Z alexmlw quit (Read error: Connection reset by peer) 2018-01-01T22:10:08Z Firedancer quit (Ping timeout: 264 seconds) 2018-01-01T22:10:08Z misv quit (Ping timeout: 264 seconds) 2018-01-01T22:10:24Z misv joined #lisp 2018-01-01T22:12:40Z groovy2shoes quit (Ping timeout: 265 seconds) 2018-01-01T22:13:14Z groovy2shoes joined #lisp 2018-01-01T22:13:19Z smurfrobot joined #lisp 2018-01-01T22:16:04Z quazimodo joined #lisp 2018-01-01T22:17:35Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-01T22:20:45Z makomo joined #lisp 2018-01-01T22:22:57Z kupad quit (Ping timeout: 268 seconds) 2018-01-01T22:23:47Z jstypo joined #lisp 2018-01-01T22:28:12Z fikka joined #lisp 2018-01-01T22:34:08Z Murii quit (Quit: WeeChat 1.4) 2018-01-01T22:37:00Z kupad joined #lisp 2018-01-01T22:38:45Z markong quit (Read error: Connection reset by peer) 2018-01-01T22:42:31Z weltung quit (Ping timeout: 240 seconds) 2018-01-01T22:43:06Z fiddlerwoaroof: I generally like def* more than define-*, editors are programmable for a reason: you should bend the editor to your workflow, not your workflow to the editor. 2018-01-01T22:45:04Z Shinmera: I generally like define-* more than def* and feel it's easier to read and a better convention, so I'm perfectly fine with the editor pushing people in that direction. 2018-01-01T22:46:10Z _death: CL itself is inconsistent with this naming.. I just picked one (define-) 2018-01-01T22:47:44Z notzmv joined #lisp 2018-01-01T22:48:27Z wxie joined #lisp 2018-01-01T22:49:14Z fe[nl]ix: it's def* if it qualifies a single word, define-* if it's two words 2018-01-01T22:49:31Z fe[nl]ix: the only exception if define-condition, so that's pretty ocnsistent 2018-01-01T22:50:26Z fiddlerwoaroof: fe[nl]ix: yeah, that's more or less how I think. 2018-01-01T22:50:46Z Shinmera: That's still a 1/6 2018-01-01T22:51:36Z SqREL quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-01T22:51:37Z fiddlerwoaroof: I generally don't find def* less easy to read, since prefixes are pretty normal in ordinary languages 2018-01-01T22:51:38Z safe joined #lisp 2018-01-01T22:51:56Z fiddlerwoaroof: And, define- is a bit too verbose for the amount of work it does, to my taste 2018-01-01T22:52:02Z Shinmera: Pshaw 2018-01-01T22:52:23Z Shinmera: People try to skimp on name length too much 2018-01-01T22:53:07Z aeth: Common Lisp the standard has plenty of archaic styles because it does not break backwards compatibility. That doesn't mean that the older APIs should be emulated. e.g. if you're doing a sequence accessor, copy elt or aref, not nth (and the reason is because there might be more than one index, like in aref, which requires the sequence to come first) 2018-01-01T22:54:18Z phoe: defdef 2018-01-01T22:54:23Z phoe: and you're good to go 2018-01-01T22:55:20Z josemanuel quit (Quit: leaving) 2018-01-01T22:57:06Z aeth: (Sorry, I should clarify that aref is only a sequence accessor when it's a 1D array, but that was not really the point with my example.) 2018-01-01T22:57:13Z lnostdal quit (Ping timeout: 256 seconds) 2018-01-01T22:57:35Z lnostdal joined #lisp 2018-01-01T23:01:38Z damke joined #lisp 2018-01-01T23:03:05Z sword quit (Remote host closed the connection) 2018-01-01T23:03:26Z _death: fe[nl]ix: interesting observation.. but not sure I've seen evidence for the existence of such a convention.. if it did exist, I suppose CLOS authors found a loophole.. just shorten the term to one word and we can use defgeneric :) 2018-01-01T23:03:53Z sword joined #lisp 2018-01-01T23:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-01T23:05:56Z dieggsy quit (Remote host closed the connection) 2018-01-01T23:06:01Z pjb: In-extenso names are all nice and well, but it often occurs that you have to write formula and that you need concision there, to ease readability, just because it's very much harder to read a formula with a lot of references to the same names when they're long and furthermore, when they have common prefixes! This is why there is LET, FLET and MACROLET. 2018-01-01T23:06:27Z aeth: http://www.cliki.net/Naming+conventions 2018-01-01T23:07:00Z pjb: Said otherwise, when you define APIs, use long and explicit names. When you use APIs, wrap them around in your own short names. 2018-01-01T23:07:02Z aeth: cliki currently just treats define-foo and deffoo as two conventions. 2018-01-01T23:07:14Z pjb: not deffoo, defoo. 2018-01-01T23:07:17Z pjb: defbar defoo. 2018-01-01T23:07:24Z pjb: defun, not deffun. 2018-01-01T23:07:31Z aeth: that's even worse :-p 2018-01-01T23:07:44Z aeth: Apparently some people want to turn Lisp into English 2018-01-01T23:07:53Z aeth: I want to escape natural languages and their irregularities when I program 2018-01-01T23:08:05Z pjb: aeth: it's not worse, again, it's historic: there are not 2 prefixes, but 3! DE DEF and DEFINE- 2018-01-01T23:08:21Z pjb: In a lot of lisps, you used just DE to define stuff. 2018-01-01T23:08:22Z random-nick quit (Remote host closed the connection) 2018-01-01T23:09:05Z TCZ quit (Quit: Leaving) 2018-01-01T23:09:31Z _death: I think GOO used (df ...) (dm ...) etc. 2018-01-01T23:10:10Z aeth: Well, that's wasteful of them, just use d 2018-01-01T23:10:18Z orivej quit (Ping timeout: 272 seconds) 2018-01-01T23:11:03Z pfdietz: d-notational 2018-01-01T23:11:04Z Shinmera: Just leave the define prefix out entirely, if it's a top-level form it's a definition anyway :^) 2018-01-01T23:11:07Z smurfrobot joined #lisp 2018-01-01T23:11:08Z Xach: heh 2018-01-01T23:11:28Z fiddlerwoaroof: Lispy DSLs seem to like going that route... 2018-01-01T23:13:17Z phoe: Shinmera: actually I don't obey this 2018-01-01T23:13:36Z Shinmera: phoe: Please don't take my jokes seriously, tia 2018-01-01T23:13:40Z phoe: Shinmera: (: 2018-01-01T23:17:42Z pierpa joined #lisp 2018-01-01T23:22:09Z jstypo quit (Ping timeout: 268 seconds) 2018-01-01T23:27:48Z fe[nl]ix: _death: it's an old-time Lisp convention, it doesn't surprise me that they didn't think necessary to document it 2018-01-01T23:28:23Z fe[nl]ix: compare DEFSETF <-> DEFINE-SETF-EXPANDER 2018-01-01T23:28:42Z wxie quit (Quit: Bye.) 2018-01-01T23:30:47Z smurfrobot quit (Remote host closed the connection) 2018-01-01T23:30:59Z _death: fe[nl]ix: could very well be, since it's similar to the P convention 2018-01-01T23:32:38Z _death: fe[nl]ix: but then I also deviate from the latter convention and stick with -P :) 2018-01-01T23:39:43Z Kaisyu joined #lisp 2018-01-01T23:42:06Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-01T23:42:33Z DeadTrickster joined #lisp 2018-01-01T23:46:06Z Amplituhedron joined #lisp 2018-01-01T23:46:42Z aeth: The p convention is documented in many places. 2018-01-01T23:48:11Z _death: yep 2018-01-01T23:48:15Z aeth: It has the same issue, though. You can't teach tools that "foop" is supposed to be handled the same as "foo-p" or "foo?" instead of like a word "foop". 2018-01-01T23:48:31Z jstypo joined #lisp 2018-01-01T23:48:32Z aeth: Although I'm not aware of any tools that care. 2018-01-01T23:49:34Z _death: when dealing with conventions nothing is perfect ;) 2018-01-01T23:50:11Z Oladon quit (Quit: Leaving.) 2018-01-01T23:51:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-01T23:51:11Z EvW1 quit (Ping timeout: 240 seconds) 2018-01-01T23:52:12Z phoe: ah ha ha ha ha 2018-01-01T23:52:13Z phoe: https://pastebin.com/zAeKRwRP 2018-01-01T23:52:22Z phoe: LZMA-DECODE is the C function 2018-01-01T23:52:28Z phoe: LZMA-DECOMPRESS is the Lisp wrapper 2018-01-01T23:53:20Z phoe: I was decompressing 310 tiny LZMA archives as a benchmark 2018-01-01T23:53:43Z phoe: looks like I need to optimize this a little bit 2018-01-01T23:59:41Z phoe: since decompressing 600kB worth of archives probably shouldn't cons half a gigabyte of memory 2018-01-02T00:00:20Z phoe: but to my defense, back when I wrote this wrapper, I didn't know about STATIC-VECTORS. 2018-01-02T00:03:29Z EvW joined #lisp 2018-01-02T00:04:00Z _death: I just wrote some terrible lisp as well ;) 2018-01-02T00:04:30Z aeth: I need to look into moving over to static-vectors 2018-01-02T00:04:43Z phoe: ... 2018-01-02T00:04:54Z phoe: CFFI's FOREIGN-ARRAY-TO-LISP allocates vectors of element type T 2018-01-02T00:05:04Z phoe: it completely ignores element types 2018-01-02T00:05:15Z phoe: where it could specialize for octets for example 2018-01-02T00:05:18Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-02T00:05:47Z phoe: this sucks curly braces 2018-01-02T00:05:48Z _death: this would break backwards compatibility 2018-01-02T00:05:54Z phoe: yes, yes, I know. 2018-01-02T00:06:07Z phoe: but using static-vectors gives me foreign octet vectors. 2018-01-02T00:06:19Z phoe: and I don't need to COERCE, which probably causes all the insane consing. 2018-01-02T00:06:31Z phoe: I'll switch over to them. 2018-01-02T00:08:13Z aeth: What I try to do is convert while doing a useful operation. So, e.g. I can multiply two CL-native matrices *into* a foreign C matrix rather than having a translation step. 2018-01-02T00:08:24Z aeth: Whether or not that can work for you depends on your specific problem. 2018-01-02T00:10:33Z Amplituhedron quit (Ping timeout: 264 seconds) 2018-01-02T00:11:24Z _death: ugh, performing computation on a 512M RAM droplet's live image isn't such a good idea.. unless you like meeting the oomkiller 2018-01-02T00:11:31Z pagnol: type-check doesn't let me say that something may also be nil, does it? 2018-01-02T00:12:10Z _death: pagnol: (or something null) 2018-01-02T00:12:17Z pagnol: terrific, thank you 2018-01-02T00:12:30Z aeth: _death: Sounds like a good use case for preallocating literally everything. It's hard, though. 2018-01-02T00:12:40Z t0adst00l joined #lisp 2018-01-02T00:13:01Z p_l: _death: that's when swap becomes your friend :D 2018-01-02T00:13:56Z _death: in this case it's as simple as running it on my machine and pushing the resulting database 2018-01-02T00:14:33Z phoe: oh well, https://bugs.launchpad.net/cffi/+bug/1740800 2018-01-02T00:15:44Z phoe: aeth: my case is dead simple, I have a wrapper around a LZMA library that does (de)compression. It needs raw chunks of uchars to operate on. I need to provide these chunks to it in the cheapest way possible. 2018-01-02T00:15:55Z phoe: No matrix multiplication here or anything. 2018-01-02T00:18:19Z phoe: Anyway - see you tomorrow. Good night, #parentheses. 2018-01-02T00:18:57Z nirved quit (Quit: Leaving) 2018-01-02T00:26:33Z damke_ joined #lisp 2018-01-02T00:27:13Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-02T00:27:57Z damke quit (Ping timeout: 264 seconds) 2018-01-02T00:31:14Z smurfrobot joined #lisp 2018-01-02T00:34:34Z conceivably joined #lisp 2018-01-02T00:36:57Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-02T00:42:38Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T00:43:22Z DeadTrickster joined #lisp 2018-01-02T00:47:59Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-02T00:49:14Z randomstrangerb joined #lisp 2018-01-02T00:51:40Z brendyn joined #lisp 2018-01-02T01:03:55Z aindilis joined #lisp 2018-01-02T01:08:23Z EvW quit (Ping timeout: 252 seconds) 2018-01-02T01:15:41Z jmercouris joined #lisp 2018-01-02T01:16:35Z jmercouris: Can someone explain why write-to-string for my object results in extra quote symbols? https://gist.github.com/d0a026f36d315d36f0c42787216714a7 2018-01-02T01:19:36Z whoman: ~s 2018-01-02T01:19:52Z whoman: afaik prints as string. try ~a ? 2018-01-02T01:19:59Z pfdietz: Yep, ~a 2018-01-02T01:20:16Z jmercouris: I can try that sure 2018-01-02T01:20:21Z jmercouris: Let me see if that works 2018-01-02T01:22:38Z jmercouris: yeah, that seemed to fix it, thank you 2018-01-02T01:22:49Z jmercouris: at least part of the problem 2018-01-02T01:23:35Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T01:24:14Z DeadTrickster joined #lisp 2018-01-02T01:24:15Z Oladon joined #lisp 2018-01-02T01:24:57Z whoman: ^_^ what else? 2018-01-02T01:26:16Z jmercouris: It is a GTK type of issue, basically I can't add things to a GTK list store (model part of mvc for gtk tree view) that are not strings, therefore I have to maintain two lists, one of my actual objects in my model, and one of their string representation 2018-01-02T01:26:39Z jmercouris: So I know what I need to do, it's just kinda a dumb limitation to the way GTK works, I never thought I'd be glad for cocoa delegate model 2018-01-02T01:27:53Z p_l: is there no way to subclass whatever it accepts? 2018-01-02T01:28:25Z jmercouris: p_l: Not that I am aware of, I'm using cl-cffi-gtk, which seems to be a very thin layer over C 2018-01-02T01:30:14Z megalography joined #lisp 2018-01-02T01:31:43Z jmercouris: It is okay though, it's just for the first release of GTK, I'm sure when some GTK users use it, they'll submit some PRs, at least I hope :D 2018-01-02T01:35:46Z jmercouris: Apparently you can also pass pointers to the model, interesting: https://en.wikibooks.org/wiki/GTK%2B_By_Example/Tree_View/Tree_Models 2018-01-02T01:35:56Z fikka quit (Ping timeout: 260 seconds) 2018-01-02T01:36:20Z jmercouris: I can't imagine how they would render a pointer as a column in a GTK Tree view though 2018-01-02T01:36:28Z jmercouris: probably you have to have at least 1 other column if you use a pointer 2018-01-02T01:37:44Z smurfrobot joined #lisp 2018-01-02T01:39:18Z krwq quit (Remote host closed the connection) 2018-01-02T01:41:11Z p_l: jmercouris: http://www.crategus.com/books/cl-cffi-gtk/pages/gtk_class_gtk-tree-model.html ? 2018-01-02T01:42:07Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-02T01:42:08Z p_l: also, http://www.crategus.com/books/cl-cffi-gtk/pages/gtk_class_gtk-list-store.html 2018-01-02T01:44:44Z p_l: ... I'm honestly impressed by that lib 2018-01-02T01:45:27Z djinni` quit (Read error: Connection reset by peer) 2018-01-02T01:49:25Z djinni` joined #lisp 2018-01-02T01:51:21Z jmercouris: p_l: Correct, but it has to be a GObject, can't be a Lisp object 2018-01-02T01:51:40Z jmercouris: and You can't write your own like "value_for_row" method 2018-01-02T01:51:52Z p_l: jmercouris: yes, and the library provides you with an interface to subclass something that acts as GObject 2018-01-02T01:54:05Z jmercouris: p_l: I didn't see that actually, but the issue is that I need to display any kind of arbitrary object within the tree view 2018-01-02T01:54:50Z jmercouris: p_l: It is for my minibuffer completions, they are just the lisp objects passed to the view to be rendered, in cocoa I do (write-to-string object) and it'll show that object representation for any arbitrary object I add into the model 2018-01-02T01:55:13Z p_l: jmercouris: I'd honestly just try subclassing the list-store class 2018-01-02T01:55:44Z p_l: or subclass tree-model and implement the iteration methods, actually 2018-01-02T01:57:39Z jmercouris: p_l: that makes a lot of sense, but do I know which methdos I need to implement? 2018-01-02T01:58:29Z jmercouris: rather, how do I know which methods I need to implement 2018-01-02T01:59:29Z p_l: hard to say, but I suspect it might just as well be possible to subclass and override the list-store one 2018-01-02T01:59:36Z laurus joined #lisp 2018-01-02T01:59:48Z p_l: also, just found confirmation that you can subclass GObjects in cl-cffi-gtk: http://www.crategus.com/books/cl-gtk/gtk-tutorial_16.html#SEC201 2018-01-02T01:59:55Z fikka joined #lisp 2018-01-02T02:00:29Z jmercouris: Hmm yeah, that way is definitely possible 2018-01-02T02:00:47Z jmercouris: but I don't want to alter the completions by having to make them be a subclass of GObjects, because it has to work for both Cocoa and GTK 2018-01-02T02:01:18Z p_l: no, no 2018-01-02T02:02:19Z jmercouris: Am I misunderstanding? Can you dynamically subclass in CL or something? 2018-01-02T02:02:36Z jmercouris: At any rate, the completion will eventually pass back the original object to the c 2018-01-02T02:02:44Z jmercouris: completion handler, sorry pressed return instead of delete 2018-01-02T02:03:14Z pagnol: I just found it that it's possible to define macros inside macros 2018-01-02T02:03:23Z pagnol: how awesome 2018-01-02T02:03:30Z pagnol: *found out 2018-01-02T02:03:47Z aeth: That's probably the wrong approach. 2018-01-02T02:04:08Z pagnol: aeth, do you mean me? 2018-01-02T02:04:09Z jmercouris: aeth: What do you mean? 2018-01-02T02:04:47Z fikka quit (Ping timeout: 256 seconds) 2018-01-02T02:05:07Z aeth: pagnol: You probably want to use helper functions within an eval-when when macros get really complicated. 2018-01-02T02:05:20Z p_l: jmercouris: you could probably subclass a GtkLabel or something like that, as a wrapper around any random CL object, then put it into list-model 2018-01-02T02:05:32Z laurus left #lisp 2018-01-02T02:06:01Z jmercouris: p_l: That's a creative approach, make like a subclassed gobject container object? 2018-01-02T02:06:32Z jmercouris: Why not just something like gojbect-container-object with a slot for a lisp object 2018-01-02T02:06:51Z jmercouris: and of course gobject-container-object would subclass gobject 2018-01-02T02:07:08Z p_l: jmercouris: yeah, subclass gtk-label, adding an extra slot (reference to CL object) and applying an afer method on initialize-instance that sets up the label to be stringified form of the passed in object 2018-01-02T02:07:44Z jmercouris: But why subclass gtk-label instead of gojbect directly? 2018-01-02T02:08:00Z pagnol: aeth, I have set up a macro that defines a class and would like to have another macro that lets me operate on instances of the class defined by the first macro 2018-01-02T02:08:02Z jmercouris: s/gojbect/gobject 2018-01-02T02:08:56Z pagnol: the second macro would like some knowledge that the first macro had... so I'm wondering if I can store something globally for the second macro to pick up? 2018-01-02T02:09:05Z pagnol: *would need some knowledge 2018-01-02T02:10:07Z aeth: pagnol: You could create functions instead of macros, and ideally put that knowledge within the defun you're generating. The general advice in this channel is "Does that have to be a macro or can an inline function work?" 2018-01-02T02:10:34Z p_l: jmercouris: hmm, it looks like you can't just put a widget reference in TreeModel, but you can put in any random crap and write your own renderer 2018-01-02T02:10:40Z aeth: pagnol: Although I'm not sure about your exact details 2018-01-02T02:11:45Z pagnol: it's probably possible... probably since I just learned how to use macros I'm trying to apply them a bit overzealously 2018-01-02T02:12:26Z d4ryus1 joined #lisp 2018-01-02T02:12:32Z jmercouris: p_l: I think I'll do things the hacky way for now, I don't really care to become a GTK expert, it'll take time anyway for me to learn it 2018-01-02T02:12:35Z aeth: You could even put a closure around the function instead of making that information global, e.g. `(let ((foo ,vital-information)) (defun ,generated-function-name (x) (some-function-call foo 42))) 2018-01-02T02:12:42Z jmercouris: head my is full of cocoa stuff right now anyway :D 2018-01-02T02:12:55Z p_l: jmercouris: well, if you're willing to go a bit crazy, there's always the option of using cocoa on other platforms 2018-01-02T02:12:59Z p_l: (yes, it works) 2018-01-02T02:13:10Z jmercouris: p_l: I'm already using Cocoa :) 2018-01-02T02:13:17Z jmercouris: This is me working on the GTK port of my software 2018-01-02T02:13:31Z p_l: jmercouris: yeah, but I mean on *other* platforms so you don't have to deal with GTK :P 2018-01-02T02:13:39Z pagnol: aeth, oh that's an interesting idea 2018-01-02T02:13:42Z jmercouris: p_l: https://github.com/nEXT-Browser/nEXT 2018-01-02T02:14:04Z jmercouris: Ah yes, that is a whole different challenge :D 2018-01-02T02:14:36Z jmercouris: if I ever get some money I'll hire someone who knows GTK 2018-01-02T02:14:44Z jmercouris: and someone who knows Cocoa, and I'll only write the Lisp part 2018-01-02T02:14:46Z p_l: jmercouris: People have, afaik, succesfully used GNUstep and Cocotron with CCL 2018-01-02T02:15:22Z jmercouris: p_l: Oh yeah, definitely, I've seen +cocotron inside the CCL sources, but I wouldn't get any benefits of cocoa, because I don't believe cocoa webkit is ported to Linux :P 2018-01-02T02:15:33Z d4ryus quit (Ping timeout: 256 seconds) 2018-01-02T02:15:49Z jmercouris: I'll actually eventually even have to change the completion model because I would like to make the interface effectively like a server 2018-01-02T02:16:07Z jmercouris: where the Lisp code is the client/model, and the GUI is the server, and just contains EXTREMELY minimal code 2018-01-02T02:16:30Z jmercouris: my GTK port right now is just 214 lines, the Cocoa one is 285 2018-01-02T02:16:35Z jmercouris: so, writing a port is quite trivial 2018-01-02T02:17:10Z p_l: hmmm 2018-01-02T02:17:18Z jmercouris: beach gave me some good advice in this respect early on, which helped a ton 2018-01-02T02:17:21Z p_l: I think the easiest webkit wrapper was with beach 2018-01-02T02:17:28Z p_l: s/beach/commonqt/ 2018-01-02T02:17:31Z p_l: brainfart 2018-01-02T02:17:34Z jmercouris: lol 2018-01-02T02:17:41Z jmercouris: yes, but commonqt is extremely far behind upstream 2018-01-02T02:18:09Z jmercouris: this means if servo comes out tomorrow, I could adapt nEXT to use servo, with basically one or two weeks worth of work 2018-01-02T02:18:19Z jmercouris: I didn't want to be strongly beholden to one system 2018-01-02T02:19:00Z aeth: pagnol: Just as a rule of thumb: macros deal with bindings and places (I hope I'm using the correct terminology). So: define-foo, let-foo, do-foo, with-foo, etc., or any use of define-modify-macro such as inc-foo-f. 2018-01-02T02:19:38Z aeth: Even a lot of those macros can be written as thin wrappers over functions. 2018-01-02T02:19:41Z p_l: jmercouris: I expect Servo to be a hard thing to integrate 2018-01-02T02:22:34Z smurfrobot joined #lisp 2018-01-02T02:22:36Z pagnol quit (Ping timeout: 260 seconds) 2018-01-02T02:23:47Z conceivably quit (Remote host closed the connection) 2018-01-02T02:27:11Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T02:27:20Z Kaisyu7 joined #lisp 2018-01-02T02:28:15Z Vicfred quit (Ping timeout: 248 seconds) 2018-01-02T02:29:01Z makomo quit (Ping timeout: 260 seconds) 2018-01-02T02:36:32Z orivej joined #lisp 2018-01-02T02:37:33Z jmercouris quit (Ping timeout: 264 seconds) 2018-01-02T02:47:09Z igemnace quit (Read error: Connection reset by peer) 2018-01-02T02:47:58Z igemnace joined #lisp 2018-01-02T02:48:57Z jmercouris joined #lisp 2018-01-02T02:49:25Z jmercouris: p_l: You're not wrong, in general, but the API is extremely small, and IPC can happen over sockets in the worst case scenario 2018-01-02T02:50:16Z damke joined #lisp 2018-01-02T02:53:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T02:53:26Z dddddd quit (Remote host closed the connection) 2018-01-02T03:00:51Z nsrahmad joined #lisp 2018-01-02T03:00:57Z damke_ joined #lisp 2018-01-02T03:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-02T03:07:48Z tonton quit (Ping timeout: 272 seconds) 2018-01-02T03:08:48Z tonton joined #lisp 2018-01-02T03:10:00Z pjb: jmercouris: quote symbols print as: (write-to-string '\") --> "\\\"" 2018-01-02T03:10:25Z pjb: jmercouris: they may also be written as "|\"|" 2018-01-02T03:11:22Z pjb: jmercouris: #\" is (read as) a character. "\"" is a string. |"| is a symbol. 2018-01-02T03:11:44Z pillton joined #lisp 2018-01-02T03:11:45Z bugrum joined #lisp 2018-01-02T03:20:23Z smurfrobot joined #lisp 2018-01-02T03:21:35Z dtornabene joined #lisp 2018-01-02T03:25:25Z smurfrobot quit (Remote host closed the connection) 2018-01-02T03:27:00Z notzmv is now known as `420 2018-01-02T03:31:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T03:31:37Z damke joined #lisp 2018-01-02T03:34:04Z smurfrobot joined #lisp 2018-01-02T03:36:27Z smurfrobot quit (Read error: Connection reset by peer) 2018-01-02T03:37:47Z jmercouris: pjb: I didn't know that, interestin 2018-01-02T03:37:52Z jmercouris: pjb: Good morning! 2018-01-02T03:41:22Z smurfrobot joined #lisp 2018-01-02T03:41:37Z nsrahmad quit (Quit: Leaving) 2018-01-02T03:45:35Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-02T03:45:37Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T03:47:47Z fikka joined #lisp 2018-01-02T03:50:47Z damke_ joined #lisp 2018-01-02T03:50:51Z jack_rabbit joined #lisp 2018-01-02T03:52:33Z fikka quit (Ping timeout: 248 seconds) 2018-01-02T03:54:21Z damke quit (Ping timeout: 264 seconds) 2018-01-02T03:56:16Z damke joined #lisp 2018-01-02T03:59:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T04:01:16Z smurfrobot joined #lisp 2018-01-02T04:02:35Z beach: Good morning everyone! 2018-01-02T04:02:39Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-02T04:02:41Z dtornabene quit (Quit: Leaving) 2018-01-02T04:03:00Z jmercouris: Good morning 2018-01-02T04:04:53Z damke_ joined #lisp 2018-01-02T04:05:45Z damke quit (Ping timeout: 264 seconds) 2018-01-02T04:06:02Z smurfrobot quit (Ping timeout: 252 seconds) 2018-01-02T04:08:07Z panji joined #lisp 2018-01-02T04:08:43Z pjb: jmercouris: (string #\") #| --> "\"" |# (intern (string #\")) #| --> \" ; :internal |# 2018-01-02T04:08:59Z pjb: jmercouris: (symbol-name '\") #| --> "\"" |# (character (symbol-name '\")) #| --> #\" |# 2018-01-02T04:09:23Z JonSmith joined #lisp 2018-01-02T04:11:39Z KarlDscc joined #lisp 2018-01-02T04:11:43Z orivej quit (Ping timeout: 256 seconds) 2018-01-02T04:12:31Z igemnace quit (Read error: Connection reset by peer) 2018-01-02T04:13:04Z dieggsy joined #lisp 2018-01-02T04:13:07Z jmercouris: pjb: I've read that a few times now, not able to follow it anymore 2018-01-02T04:13:33Z igemnace joined #lisp 2018-01-02T04:13:40Z orivej joined #lisp 2018-01-02T04:13:51Z jmercouris: What does #| mean? 2018-01-02T04:13:59Z JonSmith quit (Ping timeout: 256 seconds) 2018-01-02T04:13:59Z pjb: STRING takes a string designator, which is either a character, a string or a symbol, and returns the corresponding string. 2018-01-02T04:14:12Z pjb: #| is a comment #| and a comment inside a comment |# that ends here |# 2018-01-02T04:14:30Z pjb: INTERN takes a string and returns a symbol. 2018-01-02T04:14:33Z jmercouris: ah okay, I just had a momentary lapse of reason :D 2018-01-02T04:14:44Z pjb: SYMBOL-NAME takes a symbol and returns a string (naming the symbol). 2018-01-02T04:15:01Z Vicfred joined #lisp 2018-01-02T04:15:20Z pjb: CHARACTER takes a character designator (which is a character, a string with 1 character or a symbol whose name is a string with 1 character) and returns the corresponding character. 2018-01-02T04:15:35Z jmercouris: yeah, I saw those mentioned in the cl cookbook as well 2018-01-02T04:15:54Z pjb: So those functions let you go between character, string (of 1 character) and symbols (whose names are string of 1 character). 2018-01-02T04:16:12Z Karl_Dscc quit (Ping timeout: 272 seconds) 2018-01-02T04:18:21Z nika joined #lisp 2018-01-02T04:19:25Z jack_rabbit joined #lisp 2018-01-02T04:20:42Z z3t0 joined #lisp 2018-01-02T04:29:24Z KarlDscc quit (Remote host closed the connection) 2018-01-02T04:31:09Z asarch quit (Quit: Leaving) 2018-01-02T04:36:19Z jmercouris: pjb: Do these kinds of functions exist for all built-in data types? 2018-01-02T04:36:21Z Andrew_ joined #lisp 2018-01-02T04:36:28Z Andrew_ is now known as OS-26949 2018-01-02T04:36:36Z jmercouris: is there something like (INTEGER) as well? or do we have to use parse-integer? 2018-01-02T04:37:03Z jmercouris: just tested in a repl, oh well :( 2018-01-02T04:37:52Z jmercouris: I guess characters and strings have a much more intimate relationship 2018-01-02T04:39:06Z turkja joined #lisp 2018-01-02T04:43:59Z smurfrobot joined #lisp 2018-01-02T04:48:31Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T04:49:14Z smurfrobot joined #lisp 2018-01-02T04:54:12Z smurfrobot quit (Ping timeout: 272 seconds) 2018-01-02T04:54:14Z fiddlerwoaroof: The most annoying thing to me about the CL standard, is there isn't anything in it besides READ-FROM-STRING and PARSE-INTEGER for converting strings to numbers 2018-01-02T04:54:21Z schoppenhauer quit (Ping timeout: 264 seconds) 2018-01-02T04:54:30Z fiddlerwoaroof: So, you have to use something like the PARSE-NUMBER package to parse arbitrary numbers 2018-01-02T04:55:37Z aeth: There are many annoying things about the CL standard. 2018-01-02T04:55:45Z schoppenhauer joined #lisp 2018-01-02T04:56:05Z z3t0 quit (Remote host closed the connection) 2018-01-02T04:56:52Z beach: I don't understand this argument. So many people are using languages that don't even have a standard. Why is it a disadvantage to have at least SOME features standardized? 2018-01-02T04:57:42Z fiddlerwoaroof: I'm not making that argument 2018-01-02T04:57:59Z beach: It sounded like you did. 2018-01-02T04:58:24Z fiddlerwoaroof: I'm just saying that it's a bit awkward to have PARSE-INTEGER but not PARSE-FLOAT or similar 2018-01-02T04:58:43Z beach: But you don't have to. Use something that is not in the standard. 2018-01-02T04:58:43Z p_l: I think it's more like my usual argument, that CL standardized too little 2018-01-02T04:58:52Z beach: You are not forced to use the stuff in the standard. 2018-01-02T04:58:59Z aeth: fiddlerwoaroof: We should keep a list of things that should be added to the standard one day. 2018-01-02T04:59:09Z Bike: but it would be nice if it was in the standard, since the implementation has to have it anyway 2018-01-02T04:59:12Z beach: All those people who use non-standardized languages use features that are not standardized all the time. 2018-01-02T04:59:33Z aeth: beach: I think the general argument is that there should be additions to the standard, not that there should be no standard. 2018-01-02T04:59:36Z p_l: well, by now, we have an unofficial living standards as well, could be nice if it was somehow codified 2018-01-02T04:59:40Z beach: Bike: Yes, but that's pointless wishing because it aint gonna happen. 2018-01-02T04:59:49Z fiddlerwoaroof: Yeah, I'm actually happy with the CL standard as-is 2018-01-02T04:59:51Z Bike: how pessimistic 2018-01-02T04:59:59Z p_l: beach: well, maybe not ANSI standard 2018-01-02T05:00:16Z shka joined #lisp 2018-01-02T05:00:33Z p_l: but an, let's say, "Open Common Lisp Standard - 2018" could be written ;) 2018-01-02T05:00:35Z fiddlerwoaroof: It's more a matter of aesthetics: there seem to be a couple lacunae in the standard that are a bit surprising 2018-01-02T05:01:16Z fiddlerwoaroof: I'm perfectly happy, though, with the way, say, threadings and sockets are standardized. 2018-01-02T05:01:23Z aeth: p_l: A good starting point would probably be de facto minimum sizes. The size minimums (e.g. for maximum array lengths or fixnum bit sizes) in the standard are tiny and afaik 16-bit-friendly. It would be enlightening to see what the actual minimum sizes are for actual 32-bit and 64-bit implementations, especially if there is a de facto standard that most follow. 2018-01-02T05:01:24Z fiddlerwoaroof: s/threadings/threading/ 2018-01-02T05:02:02Z aeth: p_l: e.g. A de facto minimum fixnum size for 64-bit implementations should be 60-bit, since that afaik safely covers all of them except clisp. 2018-01-02T05:02:22Z Bike: that doesn't seem that good 2018-01-02T05:02:25Z aeth: If non-conforming implementations can be patched to obey de facto minimums, library authors can make more assumptions. 2018-01-02T05:02:50Z aeth: Bike: Right now, any string longer than 1024 might not run on a conforming CL implementation. 2018-01-02T05:02:58Z beach: I personally think that there are more urgent things to do than to attempt to improve the standard. We need programming tools and libraries. 2018-01-02T05:03:01Z p_l: aeth: fossilizing ASDF a bit and including it in said standard would cover a pretty big hole left by politics and even worse reasons 2018-01-02T05:03:10Z djeis joined #lisp 2018-01-02T05:03:28Z Bike: the whole idea of things being declared fixnum instead of unsigned-byte whatever is kind of unfortunate imo 2018-01-02T05:03:30Z p_l: beach: I sometimes think we also need plain old discoverability 2018-01-02T05:03:49Z beach: p_l: Can you elaborate on that? 2018-01-02T05:04:02Z aeth: Bike: strings are just character arrays, so afaik array-total-size-limit of 1024 would apply. This could even make some longer docstrings not fully portable. http://www.lispworks.com/documentation/HyperSpec/Body/v_ar_tot.htm 2018-01-02T05:04:10Z p_l: beach: Just today I learned what's the real state of cl-cffi-gtk, and I was blown away 2018-01-02T05:04:21Z fiddlerwoaroof: In a good or bad way? 2018-01-02T05:04:26Z p_l: in VERY good way 2018-01-02T05:04:29Z aeth: Bike: If nothing else, it would be nice to know what array-total-size-limit's actual practical minimums are in 32-bit and 64-bit 2018-01-02T05:04:29Z fiddlerwoaroof: Ah 2018-01-02T05:04:49Z smurfrobot joined #lisp 2018-01-02T05:05:02Z fiddlerwoaroof: I used that at one point, but it's a bit annoying because I gather that the GTK developers are a bit inconsiderate of non-Gnome users of GTK 2018-01-02T05:05:04Z Bike: i don't see why you can't query the implementation for that 2018-01-02T05:05:08Z Bike: but, sleep 2018-01-02T05:05:09Z Bike quit (Quit: leaving) 2018-01-02T05:05:19Z p_l: "where's the gui library" is veeeery common question ultimately, and the answers were always full of problems... 2018-01-02T05:05:26Z p_l: fiddlerwoaroof: true :< 2018-01-02T05:05:33Z fiddlerwoaroof: CAPI is also really nice 2018-01-02T05:05:43Z p_l: fiddlerwoaroof: yeah, but CAPI is LW-only 2018-01-02T05:05:56Z igemnace quit (Ping timeout: 260 seconds) 2018-01-02T05:05:56Z fiddlerwoaroof: I wish LispWorks would just open it up so someone could port it cross-implementations 2018-01-02T05:06:07Z fiddlerwoaroof: of course, it's probably their main selling point, so.... 2018-01-02T05:07:06Z fiddlerwoaroof: I would commit to mcclim a lot more, if I could make it run on all my platforms :) 2018-01-02T05:07:11Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-02T05:07:16Z aeth: fiddlerwoaroof: Imo Gnome 3 killed GTK, it's just taking a long time for the slow death to happen 2018-01-02T05:07:28Z igemnace joined #lisp 2018-01-02T05:07:35Z p_l: as for programming tools and libraries - I'd love a HTTP/2 lib, better crypto libs (ironclad isn't), Grpc lib, convenience libraries for writing servers/clients, REST-style 2018-01-02T05:07:37Z fiddlerwoaroof: So, right now, I'm mucking about with a cross-implementation objc/lisp bridge to fix the mac side 2018-01-02T05:07:38Z aeth: GTK apps just look ugly and non-native everywhere except for Gnome 3. 2018-01-02T05:07:54Z p_l: aeth: unfortunately they poisoned everything else through Wayland 2018-01-02T05:08:17Z fiddlerwoaroof: Hmm, my experience has generally been that GTK is better than Qt as far as cross-platform gui libraries go 2018-01-02T05:08:28Z p_l: (fun fact: Wayland + a ton of custom behaviours is the only really supported GTK3 platform) 2018-01-02T05:09:00Z fiddlerwoaroof: Another project I've been thinking about is an entirely-lisp graphics stack 2018-01-02T05:09:26Z djeis: Mezzano? :p 2018-01-02T05:09:29Z fiddlerwoaroof: But, it's a pain to setup a development environment for such a thing on a laptop that's always on the brink of running out of disk space 2018-01-02T05:09:42Z aeth: Mezzano is imo approaching things the wrong way. 2018-01-02T05:09:43Z fiddlerwoaroof: djeis: no, more like a lisp replacement for X on top of linux 2018-01-02T05:09:51Z aeth: Start at the highest level, replace things on your way down. 2018-01-02T05:10:06Z fiddlerwoaroof: Mezzano is, however, extremely impressive 2018-01-02T05:10:15Z aeth: It is. 2018-01-02T05:10:26Z aeth: I just don't think it will ever have users. 2018-01-02T05:10:33Z djeis: fiddlerwoaroof: an X replacement in Lisp would be neat. Oh! Ulubis. 2018-01-02T05:10:41Z aeth: If you replace a Unix piece by piece, you might get some users, at least of pieces. 2018-01-02T05:10:44Z fiddlerwoaroof: aeth: I think you need both approaches, there's so much between distance the top and the bottom that it would take forever 2018-01-02T05:11:03Z fiddlerwoaroof: Yeah, my vision is to wrap the linux kernel with a bunch of lisp :) 2018-01-02T05:11:15Z fiddlerwoaroof: e.g. a lisp-init, a lisp-display server, etc. 2018-01-02T05:11:20Z aeth: fiddlerwoaroof: Emacs is almost there with Emacs Lisp, too bad Emacs Lisp is essentially stepping in a time machine back 30 years. 2018-01-02T05:11:35Z fiddlerwoaroof: But, I'm fairly unlikely to actually do this 2018-01-02T05:12:07Z aeth: Emacs Lisp is, at least, further along than CL is. You have e.g. eshell 2018-01-02T05:13:22Z aeth: You can almost live entirely in Emacs. CL just has stumpwm afaik. 2018-01-02T05:13:29Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-02T05:13:33Z djeis: You can actually build a half-decent DE in emacs 2018-01-02T05:13:42Z fiddlerwoaroof: stumpwm is pretty nice 2018-01-02T05:14:14Z aeth: The main applications I run in stumpwm are emacs, lxterminal (with zsh), and firefox, though. 2018-01-02T05:14:17Z aeth: None of those use CL 2018-01-02T05:14:40Z aeth: So it only replaces one tiny slice of the system. 2018-01-02T05:14:41Z fiddlerwoaroof: Yeah, I use emacs, roxterm, chrome 2018-01-02T05:14:54Z fiddlerwoaroof: But, I have commands that allow for some interesting workflows 2018-01-02T05:15:09Z fiddlerwoaroof: Like, highlight some text, hit and open a google search for the text 2018-01-02T05:15:39Z fiddlerwoaroof: Hmm, on that note, does lem have a graphical mode now? 2018-01-02T05:16:27Z fiddlerwoaroof: Yeah, via electron 2018-01-02T05:17:07Z smurfrobot joined #lisp 2018-01-02T05:18:36Z pierpa quit (Quit: Page closed) 2018-01-02T05:19:17Z aeth: CL needs an editor (with replacements for slime and magit), a terminal, multiple shells (standard sh, extended sh like bash or zsh, and sh mixed with CL like eshell), and a web browser. Then, running on stumpwm, you get a much larger percentage of your time actually in the CL ecosystem. 2018-01-02T05:19:42Z fiddlerwoaroof: lem seems to be coming along nicely as an editor 2018-01-02T05:19:44Z aeth: Of these, only the multiple shells one sounds even remotely doable because it's not graphical 2018-01-02T05:20:12Z aeth: fiddlerwoaroof: The problem with editors is that you have to compete with Emacs. 2018-01-02T05:20:19Z djeis quit (Quit: Mutter: www.mutterirc.com) 2018-01-02T05:20:29Z fiddlerwoaroof: vim, but whatever ;) 2018-01-02T05:20:36Z aeth: You can probably beat Emacs in code quality and performance, but not in features. 2018-01-02T05:20:57Z fiddlerwoaroof: If lem had an evil-mode, I would seriously give it a try 2018-01-02T05:21:04Z djeis joined #lisp 2018-01-02T05:21:10Z fiddlerwoaroof: Maybe there's another project for me to put off 2018-01-02T05:21:12Z aeth: fiddlerwoaroof: well, vim lost the CL community a while ago :-p 2018-01-02T05:21:20Z aeth: You would need something like evil though, yes 2018-01-02T05:21:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-02T05:21:55Z fiddlerwoaroof: I tell my coworkers that the best implementation of vi is written in emacs lisp 2018-01-02T05:22:02Z ryanbw quit (Remote host closed the connection) 2018-01-02T05:22:26Z aeth: You'd need equivalents for (at least) paredit (and its numerous competition), magit, evil, and slime 2018-01-02T05:22:41Z fiddlerwoaroof: lem has slime 2018-01-02T05:22:44Z aeth: You'd also probably need modes for other languages because usually people don't program exclusively in CL, which complicates things 2018-01-02T05:22:52Z fiddlerwoaroof: including a mode where it connects to its own lisp impl 2018-01-02T05:23:10Z aeth: SLIME is probably the easiest to get 2018-01-02T05:23:28Z fiddlerwoaroof: There's actually a pure-lisp implementation of a swank client 2018-01-02T05:23:33Z smurfrobot joined #lisp 2018-01-02T05:23:46Z aeth: right, SLIME is really about swank 2018-01-02T05:23:50Z fiddlerwoaroof: Which I've found useful occasionally 2018-01-02T05:24:14Z djeis quit (Client Quit) 2018-01-02T05:24:30Z fiddlerwoaroof: lem also has a vi-mode 2018-01-02T05:24:45Z fiddlerwoaroof: interesting, this could be really cool... 2018-01-02T05:25:09Z jmercouris: aeth: You'll have a web browser REALLY soon 2018-01-02T05:25:12Z aeth: A CL editor would probably have to support C, C++, Python, Perl (although that's increasingly irrelevant), Scheme (at least Guile and Chicken), Racket, and Clojure. 2018-01-02T05:25:47Z jmercouris: aeth: I think tomorrow I'll release an alpha, and then maybe make an official release sometime this week, if I can get cl-webkit to run on my machine 2018-01-02T05:26:09Z jack_rabbit joined #lisp 2018-01-02T05:26:37Z aeth: oops, I left out shell and configuration files, those are important, too 2018-01-02T05:26:55Z fiddlerwoaroof: I'm sort of in the "lisp-only" bandwagon 2018-01-02T05:27:11Z fiddlerwoaroof: It's not really a problem that DrRacket only supports racket, for example 2018-01-02T05:27:21Z jmercouris: What are some reasons for rewriting emacs in cl? 2018-01-02T05:27:36Z aeth: jmercouris: Performance. Better code quality. Better interoperability with the CL ecosystem. 2018-01-02T05:27:44Z pjb: Because we prefer to write and debug Common Lisp code, rather than C code. 2018-01-02T05:27:52Z pjb: jmercouris: emacs core is written in C! 2018-01-02T05:28:36Z aeth: jmercouris: Emacs is a terminal application that glued on a GUI later, so it has really ugly internals afaik. 2018-01-02T05:28:53Z aeth: (Of course, many people here would consider any C ugly internals.) 2018-01-02T05:29:18Z jmercouris: Hmm, I guess performance hasn't really been an issue for me in emacs 2018-01-02T05:29:24Z jmercouris: my use case of course doesn't represent everyones 2018-01-02T05:29:40Z jmercouris: Also yeah, I would help with emacs if it were not written in C 2018-01-02T05:29:48Z aeth: fiddlerwoaroof: I was just thinking about things that one might have to edit in a Unix environment. That will include C, C++, Python, Perl, shell, and even possibly Ruby in some distros. 2018-01-02T05:29:50Z jmercouris: like "core" emacs, whatever that means 2018-01-02T05:30:06Z pjb: jmercouris: try it with: emacs -Q 2018-01-02T05:30:26Z jmercouris: pjb: doesn't make a huge performance impact the packages I'm using 2018-01-02T05:30:41Z jmercouris: or at least, I'm unable to discern any lag 2018-01-02T05:30:46Z aeth: jmercouris: Just being able to run the Lisp portion of an editor in a fast lisp like SBCL instead of a slow lisp like Emacs Lisp would be a huge win, without much changed. 2018-01-02T05:30:49Z pjb: jmercouris: you don't have any package when you run emacs -Q ! 2018-01-02T05:31:04Z pjb: jmercouris: you only get the core emacs, only the C code. 2018-01-02T05:31:07Z pjb: no emacs lisp. 2018-01-02T05:31:11Z Oladon quit (Quit: Leaving.) 2018-01-02T05:31:34Z jmercouris: Right, that's what I'm saying 2018-01-02T05:31:43Z jmercouris: if I run emacs or emacs -Q I cannot notice a speed difference 2018-01-02T05:31:54Z pjb: of course. Why would you? 2018-01-02T05:31:58Z fiddlerwoaroof: I have performance issues in certain modes 2018-01-02T05:32:17Z fiddlerwoaroof: I couldn't use ERC for a while because it was eating all my memory 2018-01-02T05:32:29Z jmercouris: pjb: Some people install one billion packages, and then complain when their nyan cat rainbow modeline slows down their system 2018-01-02T05:32:48Z jmercouris: fiddlerwoaroof: I highly reccommend Circe 2018-01-02T05:32:52Z jmercouris: in place of ERC 2018-01-02T05:32:54Z aeth: Emacs is a horrible application. I don't use ERC because I persist my IRC, and I don't persist my Emacs. I restart my Emacs as often as possible. Helps with memory. 2018-01-02T05:33:21Z jmercouris: I've been running emacs for like 2 weeks, and I'm at 268 MB of ram 2018-01-02T05:33:37Z pjb: (uptime) "Up 6d 15h 34m 22s (Tue 2017-12-26 14:59:13), 34 buffers, 5 files" 2018-01-02T05:34:00Z aeth: It wouldn't be hard at all to write something more reliable than Emacs. Just keep safety above 0. 2018-01-02T05:34:06Z jmercouris: pjb: (void-function uptime)? 2018-01-02T05:34:55Z aeth: jmercouris: Emacs for me starts at around 80 MB 2018-01-02T05:35:05Z jmercouris: pjb: M-x emacs-uptime 2018-01-02T05:35:18Z jmercouris: aeth: Still, is 268mb some outrageous sum today? 2018-01-02T05:35:22Z jmercouris: I feel like a single youtube tab is 100mb 2018-01-02T05:35:37Z aeth: Well... don't hold up JavaScript anything as an example of good engineering :-p 2018-01-02T05:35:40Z pjb: jmercouris: https://gitlab.com/com-informatimago/emacs/blob/master/emacs-uptime.el 2018-01-02T05:35:40Z pjb: 2018-01-02T05:36:08Z fikka joined #lisp 2018-01-02T05:36:17Z p_l: a multithreaded, concurrent emacs in CL... one can dream 2018-01-02T05:36:22Z jmercouris: pjb: I've got 25.3.1 and it seems that emacs-uptime comes with it 2018-01-02T05:36:34Z pjb: I've been using emacs since 18. 2018-01-02T05:36:48Z jmercouris: pjb: Maybe time to clean up your init file then ;) 2018-01-02T05:36:57Z smurfrobot quit (Ping timeout: 263 seconds) 2018-01-02T05:37:02Z pjb: You never know when you have to use them with old systems… 2018-01-02T05:37:13Z fiddlerwoaroof: I use a bouncer to persist my irc session. 2018-01-02T05:37:31Z jmercouris turns on the club music 2018-01-02T05:37:42Z fiddlerwoaroof: Hmm, should give circe a whirl: using trim-buffers, erc seems to be fairly fine for me 2018-01-02T05:38:04Z jmercouris: goodnight everyone 2018-01-02T05:38:25Z aeth: jmercouris: I have 16 GB of RAM on my desktop (although I run IRC on a machine with 512 MB, where memory usage is very important), but even when I have 64 GB of RAM, I'll still hate when RAM gets wasted. 2018-01-02T05:38:50Z jmercouris: aeth: All ram is lost, like tears in rain, do not fight against electron.js, embrace it 2018-01-02T05:39:20Z jmercouris: Ram is like sand, the harder we try to hold it, the quicker it runs through our hands 2018-01-02T05:39:24Z aeth: I aggressively fight RAM waste and I'm still at 1.66 GB before I do anything interesting with it. If I didn't fight it, I'd probably start at 3 GB or more 2018-01-02T05:39:33Z jmercouris: I was totally joking :D 2018-01-02T05:39:34Z aeth: well, 1.66 GB right now... 2018-01-02T05:39:43Z fiddlerwoaroof: Hmm, erc right now is holding onto 11% of my system's memory 2018-01-02T05:39:54Z jmercouris: fiddlerwoaroof: Get a dedicated ERC machine 2018-01-02T05:40:19Z aeth: This entire machine that hosts my IRC is usually between 60-70 MB of RAM usage. 2018-01-02T05:40:27Z p_l: jmercouris: I fight hard against RAM waste because I already lost the fight on web front 2018-01-02T05:40:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-02T05:41:13Z p_l: 16G is not enough 2018-01-02T05:41:26Z aeth: I don't like wasted RAM, but I do prefer CPU performance over RAM efficiency, e.g. I prefer SBCL over alternative CLs even though SBCL starts around 40-60 MB before doing anything. 2018-01-02T05:41:34Z aeth: Interestingly, SBCL apparently keeps getting more efficient. 2018-01-02T05:41:47Z aeth: There was a time when SBCL was comparable to Emacs afaik. 2018-01-02T05:42:03Z fiddlerwoaroof: I find that system reponsiveness is more affected by ram usage than cpu usage these days 2018-01-02T05:42:15Z p_l: aeth: yeah, but with SBCL I see that I'm getting my money's worth :D 2018-01-02T05:42:26Z fiddlerwoaroof: e.g. if my desktop starts feeling laggy, I close all my tabs and everything is snappy again :) 2018-01-02T05:42:28Z p_l: meanwhile Slack will happily gobble tons of RAM 2018-01-02T05:42:38Z aeth: freshly started up (and my OS is not on a recent SBCL!) 49 MB in a terminal, 51 MB in SLIME 2018-01-02T05:43:22Z aeth: roswell's recent slime+sbcl is... 95? 2018-01-02T05:43:30Z aeth: well, something's up there 2018-01-02T05:43:39Z p_l: top three apps on my system: Chrome using 4GB (surprisingly little, I suspect shenanigans), VMware using 2GB (for a 2GB VM, expected) ... Slack = 1.2GB :| 2018-01-02T05:44:29Z jmercouris quit (Ping timeout: 252 seconds) 2018-01-02T05:45:30Z parjanya: if I create a stream with (process-output (run-program "/usr/bin/ls" '() :output :stream)) , how can I read it? 2018-01-02T05:45:44Z aeth: Basically the only thing that uses unjustified amounts of RAM are web browsers or things that use web browsers like Electron apps 2018-01-02T05:46:17Z aeth: The good news is this: If people can tolerate Electron adding 1 GB per Electron app, they can probably tolerate SBCL adding 100 MB per CL app. 2018-01-02T05:46:41Z p_l: aeth: and then there applications that take "electron" and put "even more unjustified resource usage", like Slack 2018-01-02T05:47:14Z aeth: If anyone has (64-bit) Electron, it would be interesting to see how much RAM a hello world takes. It would probably take too long for me to download just to test that. 2018-01-02T05:48:15Z aeth: And it would be interesting to compare this to the worst case of a graphical CL hello world app, which is probably going to be 90-120 MB counting the base CL 2018-01-02T05:48:39Z aeth: s/CL hello world/SBCL hello world/ 2018-01-02T05:48:42Z aeth: SBCL probably uses the most RAM. 2018-01-02T05:49:03Z smurfrobot joined #lisp 2018-01-02T05:50:12Z aeth: The CL one is probably going to be 3x-5x C, though. 2018-01-02T05:53:42Z fiddlerwoaroof: But slack has custom emojis... 2018-01-02T05:54:22Z smurfrobot quit (Ping timeout: 272 seconds) 2018-01-02T05:55:57Z mlau quit (Ping timeout: 240 seconds) 2018-01-02T05:57:36Z karswell_ quit (Remote host closed the connection) 2018-01-02T05:58:50Z karswell_ joined #lisp 2018-01-02T05:59:38Z smurfrobot joined #lisp 2018-01-02T06:02:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T06:04:29Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-02T06:04:35Z panji quit (Ping timeout: 240 seconds) 2018-01-02T06:08:53Z smurfrobot joined #lisp 2018-01-02T06:13:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-02T06:13:56Z glamas joined #lisp 2018-01-02T06:16:15Z glamas quit (Client Quit) 2018-01-02T06:19:16Z smurfrobot joined #lisp 2018-01-02T06:20:18Z rippa joined #lisp 2018-01-02T06:21:10Z panji joined #lisp 2018-01-02T06:24:06Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-02T06:26:18Z smurfrobot joined #lisp 2018-01-02T06:30:25Z fikka joined #lisp 2018-01-02T06:31:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-02T06:35:05Z fikka quit (Ping timeout: 256 seconds) 2018-01-02T06:44:55Z add^_ quit (Ping timeout: 268 seconds) 2018-01-02T06:44:57Z damke joined #lisp 2018-01-02T06:45:04Z add^_ joined #lisp 2018-01-02T06:45:34Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-02T06:55:27Z OS-26949 quit (Quit: Leaving) 2018-01-02T06:57:03Z eviltofu joined #lisp 2018-01-02T06:59:43Z dieggsy quit (Ping timeout: 268 seconds) 2018-01-02T07:00:53Z t0adst00l joined #lisp 2018-01-02T07:05:45Z dec0n joined #lisp 2018-01-02T07:11:44Z eviltofu: If I want to make a GUI app in common-lisp that runs under macOS, what should I use? 2018-01-02T07:12:29Z pjb: eviltofu: the easiest is to use Clozure CL (ccl) and its Objective-C bridge. 2018-01-02T07:12:52Z pjb: You can add my Objective-CL reader macros if you want to have an Objective-C -like syntax. 2018-01-02T07:13:05Z panji quit (Ping timeout: 248 seconds) 2018-01-02T07:13:10Z pjb: you can also get it from the AppStore (Clozure CL.app). 2018-01-02T07:13:41Z eviltofu: ok thanks! What about CLIM? 2018-01-02T07:14:02Z jackdaniel: it does work only with Xserver at the moment 2018-01-02T07:14:17Z jackdaniel: so it is certainly possible to run it on macos, but it doesn't have this "native" feel 2018-01-02T07:14:19Z pjb: If you don't want to make a Cocoa Application, then you can use any implementation with CLIM. 2018-01-02T07:14:19Z pjb: There's X11.app on macOS. 2018-01-02T07:14:26Z eviltofu: I'm just putting around exploring CL 2018-01-02T07:14:38Z eviltofu: ok thanks 2018-01-02T07:14:41Z dddddd joined #lisp 2018-01-02T07:15:02Z damke_ joined #lisp 2018-01-02T07:17:09Z damke quit (Ping timeout: 264 seconds) 2018-01-02T07:19:17Z bugrum quit 2018-01-02T07:22:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T07:25:02Z safe quit (Read error: Connection reset by peer) 2018-01-02T07:25:04Z aeth: eviltofu: There's also another kind of graphical application that's possible, too. e.g. https://github.com/vydd/sketch#sketch 2018-01-02T07:25:21Z aeth: These other things all use OpenGL, so you're definitely not going to get a native feel. 2018-01-02T07:26:29Z fikka joined #lisp 2018-01-02T07:28:56Z panji joined #lisp 2018-01-02T07:29:09Z panji left #lisp 2018-01-02T07:29:18Z aeth: Some people have built entire GUIs on top of OpenGL, though, e.g. the Blender 3D modeling application. 2018-01-02T07:30:26Z aeth: Also McCLIM used to have an OpenGL backend, but it was removed here, probably because it was over a decade out of date. https://github.com/robert-strandh/McCLIM/commit/d1bc1e222b36adffa5a76e4c664d1b365d2144e4#diff-b81146e6af95bf6e22cf57459890216f 2018-01-02T07:30:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-02T07:31:01Z eviltofu: Sketch is interesting, I was looking at Processing a few weeks back for some coding fun! 2018-01-02T07:32:21Z shka quit (Ping timeout: 260 seconds) 2018-01-02T07:32:47Z lemoinem quit (Ping timeout: 248 seconds) 2018-01-02T07:33:30Z lemoinem joined #lisp 2018-01-02T07:39:54Z eviltofu quit (Quit: Page closed) 2018-01-02T07:40:21Z smurfrobot joined #lisp 2018-01-02T07:42:55Z brendyn quit (Ping timeout: 248 seconds) 2018-01-02T07:44:25Z damke_ joined #lisp 2018-01-02T07:45:03Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T07:46:01Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T07:46:32Z DeadTrickster joined #lisp 2018-01-02T07:46:39Z damke joined #lisp 2018-01-02T07:48:14Z jack_rabbit quit (Quit: Leaving) 2018-01-02T07:49:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T07:51:21Z damke quit (Ping timeout: 264 seconds) 2018-01-02T07:51:39Z jack_rabbit joined #lisp 2018-01-02T07:52:01Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-02T07:52:09Z earl-ducaine quit (Remote host closed the connection) 2018-01-02T07:52:10Z damke joined #lisp 2018-01-02T07:53:06Z earl-ducaine joined #lisp 2018-01-02T07:53:14Z randomstrangerb joined #lisp 2018-01-02T07:55:10Z damke quit (Read error: Connection reset by peer) 2018-01-02T07:56:26Z Cymew joined #lisp 2018-01-02T07:58:57Z whoman: aeth, whoa. GL CLIM is a nice thought 2018-01-02T07:59:31Z aeth: GL CLIM would run on every platform. 2018-01-02T08:01:31Z `420 left #lisp 2018-01-02T08:02:00Z orivej quit (Ping timeout: 268 seconds) 2018-01-02T08:02:06Z jdz: What's this magic GL you're talking about is? 2018-01-02T08:02:44Z aeth: jdz: OpenGL, i.e. render 2D things using that 3D graphics API. 2018-01-02T08:03:15Z fiddlerwoaroof: eviltofu: qtools is also a fairly good way to write gui applications for osx 2018-01-02T08:03:25Z jdz: Which OpenGL? On which platform is that specific OpenGL supported, and FFI available for CL? 2018-01-02T08:03:42Z damke joined #lisp 2018-01-02T08:04:18Z fiddlerwoaroof: sketch uses OpenGL 3.3 2018-01-02T08:04:30Z fiddlerwoaroof: Looks like it runs on all the major implementations 2018-01-02T08:04:41Z jdz: I bet OpenGL will be obsolete soon enough, with different vendors moving in different directions: MicroSoft -> DirectX, Apple -> Metal, Others -> Vulkan. 2018-01-02T08:05:38Z fiddlerwoaroof: I have prototype-quality objective-c/cffi interaction going on locallly 2018-01-02T08:06:05Z earl-ducaine: Clutter is a good example of modern, full feature graphic toolkit built on top of open GL. 2018-01-02T08:06:29Z jdz: It sure is an example, not sure about the "good" part. 2018-01-02T08:06:31Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T08:06:40Z fiddlerwoaroof: What are the reader macros that ccl uses for objective-c? 2018-01-02T08:06:56Z DeadTrickster joined #lisp 2018-01-02T08:07:14Z fiddlerwoaroof: I sort of recall #[] and #_ and a couple others, but it's been a while 2018-01-02T08:07:45Z jdz: It may make sense to use Clutter instead of OpenGL directly. 2018-01-02T08:08:41Z vlatkoB joined #lisp 2018-01-02T08:08:55Z aeth: jdz: OpenGL will be supported for a long time 2018-01-02T08:08:57Z pjb: fiddlerwoaroof: ccl doesn't define any objective-c specific reader macro; they're reader macros used for the FFI in general. I wrote my own Objective-CL reader macros to provide the Objective-C syntax to CL. 2018-01-02T08:09:19Z whoman: jdz, webgl, opengl es, opengl .. there is an overlap 2018-01-02T08:11:00Z Shinmera: jdz: OpenGL isn't going anywhere and Vulkan isn't replacing it. 2018-01-02T08:11:16Z jdz: OK. 2018-01-02T08:11:21Z Shinmera: If anything, OpenGL has been gaining massive traction in recent years thanks to the web and mobile tech 2018-01-02T08:11:35Z jdz: Thanks to OpenGL ES. 2018-01-02T08:12:10Z whoman: clutter looks interesting, seems dead 2018-01-02T08:12:15Z knobo joined #lisp 2018-01-02T08:12:16Z jdz: Huh? 2018-01-02T08:12:30Z jdz: GNOME is built on top of it. 2018-01-02T08:12:33Z knobo: Is there a way to get the argument list for a function? 2018-01-02T08:13:22Z aeth: The point of using OpenGL would be portable, like Blender. 2018-01-02T08:13:26Z whoman: dead might be a wrong word. solid? my house is built on top of solid rock 2018-01-02T08:13:28Z earl-ducaine: Wing 3d is an interesting 3d modeler. GUI and canvas are both implemented in open GL. 2018-01-02T08:13:34Z earl-ducaine: What's interersting from a CL perspective is that it's a clone of Nendo which is a stripped down version of Mirai, which is what Symbolics' S-World suite eventually became after being purchased by Nichimen. 2018-01-02T08:13:47Z whoman: touch clim is an interest to me as well 2018-01-02T08:13:59Z jdz: earl-ducaine: it's also interesting that it is written in Erlang. 2018-01-02T08:14:07Z whoman: hehe and wr.. ea 2018-01-02T08:14:23Z Shinmera: knobo: Check the trivial-arguments lib 2018-01-02T08:14:24Z whoman: the code is scary, though. 2018-01-02T08:16:11Z knobo: Shinmera: thank you 2018-01-02T08:17:26Z jdz: Also relevant to this discussion: http://blog.johnnovak.net/2016/05/29/cross-platform-gui-trainwreck-2016-edition/ 2018-01-02T08:18:48Z fikka joined #lisp 2018-01-02T08:20:31Z whoman: html5/css is mucho cross platformo 2018-01-02T08:20:51Z aeth: It's also the most RAM-intensive way to make a GUI 2018-01-02T08:21:11Z aeth: That's... actually the prior topic here. 2018-01-02T08:21:47Z aeth: 1+ GB RAM. An SBCL solution would be 10% that. Other CLs even less. 2018-01-02T08:21:48Z whoman: yeah =( i only have 2gb so i am doing opengl instead of web. 2018-01-02T08:22:05Z whoman: sorry or text ui* 2018-01-02T08:22:32Z whoman: including mcclim, x11, freetype etc ? 2018-01-02T08:22:39Z whoman: (ram usage) 2018-01-02T08:23:24Z Sauvin quit (Read error: Connection reset by peer) 2018-01-02T08:24:11Z LocaMocha joined #lisp 2018-01-02T08:24:21Z scymtym quit (Ping timeout: 264 seconds) 2018-01-02T08:24:49Z fikka quit (Ping timeout: 268 seconds) 2018-01-02T08:25:02Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-02T08:25:36Z whoman: web does not take too much ram on mobile 2018-01-02T08:25:58Z aeth: whoman: I think it would be hard to get a GUI + SBCL above 150 MB RAM. 2018-01-02T08:27:10Z whoman: cool 2018-01-02T08:28:08Z aeth: For a hello world, I mean. 2018-01-02T08:28:19Z aeth: Obviously the GUI app could be a virtual machine and take up gigs of RAM or whatever. 2018-01-02T08:29:03Z whoman: yeah ~ but the layers down to the OS, including fonts and all that 2018-01-02T08:29:30Z whoman: and X11 etc. like if one were to "tree-shake" a snapshot of hello world gui 2018-01-02T08:29:41Z d4ryus1 is now known as d4ryus 2018-01-02T08:29:44Z jackdaniel: if you are concerned about ram usage, you should try CCL 2018-01-02T08:30:00Z jackdaniel: if that's not enough, you should try ECL 2018-01-02T08:31:16Z whoman is only concerned about HDD lag from swap for general desktop useage. dev tools should be hyperspeed negative latency 2018-01-02T08:33:09Z aeth: jackdaniel: I'm using SBCL as a worst case example of RAM usage. 2018-01-02T08:33:38Z aeth: I personally don't care as long as it's < 100 MB. 2018-01-02T08:33:50Z aeth: And it is. 2018-01-02T08:34:33Z aeth: In the world where Electron apps are commonplace, even SBCL is absolutely lightweight in RAM. 2018-01-02T08:34:41Z nowhere_man quit (Remote host closed the connection) 2018-01-02T08:35:26Z nowhere_man joined #lisp 2018-01-02T08:38:44Z jackdaniel: for some of thigns I try SBCL heaps blows above 8GB while CCL fits nicely in 2GB (during compilation), so that's a valid concern for me 2018-01-02T08:40:39Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-02T08:41:09Z smurfrobot joined #lisp 2018-01-02T08:45:38Z loke: jdz: That article dismissed GTK for adding 20 MB to the code size. That's a bit silly, IMHO 2018-01-02T08:45:59Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-02T08:46:01Z loke: His requirements are not only that he wants to graw graphics and stuff, he also wants it really small. 2018-01-02T08:47:15Z jackdaniel: I agree that this is silly 2018-01-02T08:48:58Z aeth: jackdaniel: But, on the other hand, it's a lot easier to avoid allocation in SBCL through profiling and disassembly, at least ime. 2018-01-02T08:49:14Z aeth: When I want to write some large thing that doesn't allocate, I'm only sure that it doesn't allocate in SBCL. 2018-01-02T08:49:35Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-02T08:50:23Z jdz: loke: Yes, seems like people (male?) are obsessed with size. 2018-01-02T08:50:38Z jdz: Or maybe just measuring "things". 2018-01-02T08:50:58Z jackdaniel: and the whole article seems to be written in purpose to justify creating yet another toolkit (this time in NIM), what is even more silly. If he feels he want to make one, then he should do it, but making excuses is not something I'm going to appreciate 2018-01-02T08:51:18Z loke: Right 2018-01-02T08:51:36Z beach: I think there is a serious lack of back-of-envelope calculations. Instead, what I observe is typical Kahneman stuff; the fast brain module is lousy with math, and the slow module is lazy so it believes the fast one. 2018-01-02T08:52:14Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-02T08:53:09Z randomstrangerb quit (Ping timeout: 264 seconds) 2018-01-02T08:54:22Z randomstrangerb joined #lisp 2018-01-02T08:54:53Z jdz: Even if the conclusion is not useful the article still includes more data points than "Blender uses OpenGL for GUI". 2018-01-02T08:55:37Z aeth: jdz: IRC isn't a good medium for data 2018-01-02T08:55:40Z jack_rabbit joined #lisp 2018-01-02T08:55:41Z jdz: Text/font rendering is very important for me. 2018-01-02T08:56:25Z jdz: OpenGL has nothing for text rendering, as far as I know. 2018-01-02T08:56:43Z aeth: jdz: The section on Blender seems very favorable to me 2018-01-02T08:57:20Z aeth: jdz: Using OpenGL means, afaik, consistent font rendering on all platforms that consistently looks different from what every other application does. But, yes, you'd have to write it yourself or use a library. 2018-01-02T08:57:23Z jackdaniel: beach: on the other hand (regarding memory use) I totally get why someone could want to have small memory footprint *even if he knows* that memory is cheap. If you may have exactly same functionality in 10KB vs 10MB (given that both are coded reasonably well), the former solution is more elegant by some metrics 2018-01-02T08:58:20Z aeth: jdz: There are some interesting ways to render fonts using 3D APIs these days. 2018-01-02T08:58:21Z jackdaniel: so this argument shifts from practical point of view int aesthetic one 2018-01-02T08:58:23Z beach: jackdaniel: Sure, but that elegance comes at a cost. And I rarely see that cost evaluated against the gain in memory. 2018-01-02T08:59:05Z beach: jackdaniel: Plus, someone who is obsessed with memory size probably makes other elegance compromises instead. 2018-01-02T08:59:59Z aeth: Focusing on a small amount of memory makes perfect sense for a server (especially a home server, which should be quiet and low-power). It's probably not as important for graphical applications since that server will be running without X. 2018-01-02T09:00:07Z damke_ joined #lisp 2018-01-02T09:00:11Z jackdaniel: right, that's why I agree that saying that "it is 20MB, so it's bad" is a silly argument, yet I acknowledge that sometimes this argument may be very valid one (and can't be debunked with saying, that someone forgot to do his math, or was lazy) 2018-01-02T09:00:45Z jackdaniel: not in this case though 2018-01-02T09:00:50Z randomstrangerb quit (Ping timeout: 252 seconds) 2018-01-02T09:01:01Z jack_rabbit quit (Ping timeout: 260 seconds) 2018-01-02T09:01:50Z aeth: Personally, I'm a bit selfish. I usually am very wasteful of RAM when I program, but I don't like other applications using it up (less RAM for me!) 2018-01-02T09:01:59Z aeth: I wonder if anyone else is like that. 2018-01-02T09:02:03Z randomstrangerb joined #lisp 2018-01-02T09:02:09Z damke quit (Ping timeout: 264 seconds) 2018-01-02T09:02:09Z loke: By looking at the Nom web site, it seems to me that the users have similar values as the Go crowd. 2018-01-02T09:02:23Z loke: Somehow they think that statically linked binaries is a great thing. 2018-01-02T09:02:43Z loke: (I'm old enough to remember Unixes without dynamic linking support at all, and it was not fun) 2018-01-02T09:03:00Z scymtym joined #lisp 2018-01-02T09:04:45Z aeth: loke: A potential counterargument: we have a lot more space now. Even 1 TB SSDs are very affordable. 2018-01-02T09:06:04Z jackdaniel: dynamic linking goes beyond that - updating library requires updating only one shared object 2018-01-02T09:06:12Z jackdaniel: if there is no dynamic linking, you have to recompile each module 2018-01-02T09:06:57Z jackdaniel: so you have to be more aware of your software dependency tree 2018-01-02T09:07:15Z aeth: jackdaniel: There are probably tools to do that now, though 2018-01-02T09:07:59Z Tobbi joined #lisp 2018-01-02T09:08:13Z jackdaniel: sure, did you ever use gentoo? if you don't have dynamic linking it gets even more messy 2018-01-02T09:09:38Z aeth: I think the future is probably going to be sandboxing all over the place, which could be the death of dynamic linking. 2018-01-02T09:09:56Z beach: jackdaniel: It is not a matter of debunking, but of getting the full picture. I am perfectly happy to see an argument such as "yes, it is going to take me a year of full-time work to save a small amount of memory, but I think it will be a lot of fun to try", instead of seeing just half the argument. 2018-01-02T09:10:53Z beach: jackdaniel: I would hate for people to tell me what to put work into, so I certainly do not try to tell others what they would be doing. 2018-01-02T09:11:12Z beach: SHOULD be doing, rather. 2018-01-02T09:11:21Z t0adst00l joined #lisp 2018-01-02T09:11:29Z jack_rabbit joined #lisp 2018-01-02T09:12:01Z manualcrank quit (Quit: WeeChat 2.0.1) 2018-01-02T09:12:17Z jackdaniel: OK, I get it better now, yet sometimes it's not very obvious from the context for me (probably fault in my understanding) 2018-01-02T09:17:13Z beach: Nah, probably a result of the medium (IRC) that requires me to be brief. 2018-01-02T09:20:27Z loke: aeth: I'm just now trying to use Nixos, which is essentially that 2018-01-02T09:20:42Z loke: aeth: Let me tell you, they are doing something interesting, but man is the approach flawed. 2018-01-02T09:23:59Z EvW joined #lisp 2018-01-02T09:33:52Z fikka joined #lisp 2018-01-02T09:36:44Z _cosmonaut_ joined #lisp 2018-01-02T09:38:11Z Murii joined #lisp 2018-01-02T09:40:22Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-02T09:41:56Z smurfrobot joined #lisp 2018-01-02T09:44:46Z p_l: whoman: Web is also probably the worst stack to make GUI in, no matter the platform 2018-01-02T09:46:39Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T09:48:07Z loke: p_l: I was about to counter with some worse toolkits... However... Now that I think about it, I do think you're right. 2018-01-02T09:48:47Z damke joined #lisp 2018-01-02T09:49:18Z aeth: loke: I agree. 2018-01-02T09:49:32Z aeth: With both of your recent statements, actually. 2018-01-02T09:51:00Z Tobbi joined #lisp 2018-01-02T09:51:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T09:51:37Z loke: :-) 2018-01-02T09:53:45Z random-nick joined #lisp 2018-01-02T09:54:21Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-01-02T10:03:23Z random-nickname joined #lisp 2018-01-02T10:06:20Z Tobbi quit (Remote host closed the connection) 2018-01-02T10:07:23Z random-nick quit (Ping timeout: 252 seconds) 2018-01-02T10:07:25Z Tobbi joined #lisp 2018-01-02T10:07:31Z random-nickname is now known as random-nick 2018-01-02T10:18:30Z jack_rabbit joined #lisp 2018-01-02T10:20:05Z Firedancer_ is now known as Firedancer 2018-01-02T10:22:48Z dddddd quit (Remote host closed the connection) 2018-01-02T10:27:44Z brendyn joined #lisp 2018-01-02T10:27:51Z smurfrobot joined #lisp 2018-01-02T10:29:23Z makomo joined #lisp 2018-01-02T10:32:35Z t0adst00l quit (Remote host closed the connection) 2018-01-02T10:33:02Z t0adst00l joined #lisp 2018-01-02T10:33:05Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-02T10:36:38Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-02T10:38:06Z hhdave joined #lisp 2018-01-02T10:44:57Z t0adst00l quit (Remote host closed the connection) 2018-01-02T10:45:29Z t0adst00l joined #lisp 2018-01-02T10:45:57Z m00natic joined #lisp 2018-01-02T10:48:00Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T10:49:12Z DeadTrickster joined #lisp 2018-01-02T10:49:30Z fikka quit (Ping timeout: 272 seconds) 2018-01-02T10:50:50Z whoman quit (Ping timeout: 252 seconds) 2018-01-02T10:50:55Z fourier joined #lisp 2018-01-02T10:51:50Z nika quit 2018-01-02T10:51:52Z wxie joined #lisp 2018-01-02T10:52:36Z fikka joined #lisp 2018-01-02T10:54:43Z whoman joined #lisp 2018-01-02T10:58:30Z raynold quit (Quit: Connection closed for inactivity) 2018-01-02T10:58:45Z EvW quit (Ping timeout: 265 seconds) 2018-01-02T11:00:01Z whoman quit (Ping timeout: 260 seconds) 2018-01-02T11:00:09Z whoman joined #lisp 2018-01-02T11:00:21Z jstypo quit (Ping timeout: 264 seconds) 2018-01-02T11:01:12Z damke_ joined #lisp 2018-01-02T11:02:08Z osune_ joined #lisp 2018-01-02T11:02:27Z smurfrobot joined #lisp 2018-01-02T11:03:48Z mlau joined #lisp 2018-01-02T11:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-02T11:04:07Z jstypo joined #lisp 2018-01-02T11:06:39Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T11:13:19Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-02T11:15:52Z mishoo joined #lisp 2018-01-02T11:20:14Z oleo quit (Remote host closed the connection) 2018-01-02T11:20:48Z phoe: I have a class whose slot contains a STATIC-VECTOR. If I understand this correctly, I can use TRIVIAL-GARBAGE:FINALIZE that closes over this static vector to make this memory reclaimable by the garbage collector, like, (let ((vector (static-vector instance))) (lambda () (free-static-vector vector))). Do I understand it right? 2018-01-02T11:21:41Z jackdaniel: yes 2018-01-02T11:21:58Z Shinmera: As long as you don't close over the thing you're finalizing. 2018-01-02T11:22:17Z Shinmera: Because then you'd create an indefinite extent reference and prevent it from being GCd. 2018-01-02T11:22:23Z nirved joined #lisp 2018-01-02T11:22:55Z phoe: Shinmera: exactly, (lambda () (free-static-vector (static-vector instance))) would be a mistake. 2018-01-02T11:23:28Z phoe: Thanks. 2018-01-02T11:23:54Z Shinmera: What I like to do is this kind of scheme: https://github.com/Shirakumo/cl-mixed/blob/master/c-object.lisp 2018-01-02T11:24:41Z Shinmera: Or, well, that doesn't clearly illustrate it 2018-01-02T11:24:56Z phoe: I get the general idea. 2018-01-02T11:25:13Z phoe: CL-LZMA will get a pretty big update, including an API change that makes use of static vectors. 2018-01-02T11:25:15Z Shinmera: Point being a generic function that returns a closure that "knows" how to finalise that object's resources. 2018-01-02T11:25:55Z phoe: Since right now it's 95% CL overhead coming from coercing vectors from (UNSIGNED-BYTE 8) to T and the other way around 2018-01-02T11:26:15Z fourier quit (Ping timeout: 250 seconds) 2018-01-02T11:31:21Z oleo joined #lisp 2018-01-02T11:31:32Z nowhere_man joined #lisp 2018-01-02T11:33:38Z smurfrobot joined #lisp 2018-01-02T11:38:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-02T11:38:45Z theBlackDragon quit (Ping timeout: 264 seconds) 2018-01-02T11:45:05Z wxie quit (Read error: Connection reset by peer) 2018-01-02T11:45:21Z milanj joined #lisp 2018-01-02T11:50:43Z wxie joined #lisp 2018-01-02T11:59:28Z Karl_Dscc joined #lisp 2018-01-02T12:00:32Z gravicappa joined #lisp 2018-01-02T12:04:11Z randomstrangerb quit (Ping timeout: 255 seconds) 2018-01-02T12:05:26Z randomstrangerb joined #lisp 2018-01-02T12:09:33Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T12:10:41Z DeadTrickster joined #lisp 2018-01-02T12:13:13Z EvW joined #lisp 2018-01-02T12:16:11Z smurfrobot joined #lisp 2018-01-02T12:17:48Z varjag joined #lisp 2018-01-02T12:19:51Z smurfrob_ joined #lisp 2018-01-02T12:20:06Z smurfrobot quit (Read error: Connection reset by peer) 2018-01-02T12:20:47Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-02T12:22:03Z randomstrangerb joined #lisp 2018-01-02T12:24:31Z smurfrob_ quit (Ping timeout: 248 seconds) 2018-01-02T12:26:57Z smurfrobot joined #lisp 2018-01-02T12:29:48Z makomo_ joined #lisp 2018-01-02T12:30:44Z fikka quit (Quit: leaving) 2018-01-02T12:31:12Z fikka joined #lisp 2018-01-02T12:31:29Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-02T12:31:30Z osune_: I have (soon) a long running CL application. I want to execute a function with arguments at a specific date and time. This date can be even years in the future. There will be many dates when this function should execute, with different arguments. I feel uncomfortable to use a normal timer for such use case. A workaround would be to use CRON and let it talk to the the CL App via sockets which can be selected. But what are possible 2018-01-02T12:31:31Z osune_: solutions inside of CL ? 2018-01-02T12:32:00Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-02T12:32:37Z jdz: Have a thread that sleeps most of the time, or have a main loop that periodically checks the schedule. 2018-01-02T12:33:22Z makomo quit (Ping timeout: 272 seconds) 2018-01-02T12:33:24Z jdz: There might be platform-specific ways to also schedule a signal (alert) for the process. 2018-01-02T12:34:05Z Shinmera: Just sleep like half of the time you need to the next event until you're within a certain range of acceptability. 2018-01-02T12:34:12Z Shinmera: As in, do that in a loop 2018-01-02T12:34:32Z osune_: jdz: my problem with the "check shedule periodically" approach would be what my "Nyquist Frequncy" for sampling would be. But platform specific solutions are ok 2018-01-02T12:34:44Z osune_: *frequency 2018-01-02T12:34:54Z Shinmera: (loop for diff = (- (get-universal-time) target-time) until (< diff 60) do (sleep (/ diff 2)) 2018-01-02T12:37:25Z osune_: Shinmera: thx, the easiest solutions seem always to escape my mind 2018-01-02T12:38:55Z jdz: osune_: there's the alarm() function if you're on a Posix system. 2018-01-02T12:39:08Z phoe: osune_: there exist even simpler solution 2018-01-02T12:39:24Z osune_: I'm listening ? 2018-01-02T12:39:28Z tfb: osune_: what's the problem with just checking when the next event is and then sleeping until then? The repeatedly-wake-and-sleep thing seems like ... hard work. 2018-01-02T12:39:53Z osune_: tfb: new events can be sheduled any time for any time in the future 2018-01-02T12:40:20Z jdz: Also let's not forget that systems may sleep (especially if running on a laptop). 2018-01-02T12:40:38Z phoe: osune_: there was a thing with minion where you could ask him to remind you to do something in 140380 seconds or something (: 2018-01-02T12:40:43Z phoe: but I forgot the syntax right now 2018-01-02T12:40:48Z jdz: And time may be running faster or slower depending on different factors. 2018-01-02T12:41:30Z tfb: osune_: every time the schedule changes you need to wake the sleeping thread in any case (same if the whole system is asleep or is restarted which it will be since you're talking about years) 2018-01-02T12:43:00Z osune_: phoe: I assume I should look at the code for minion. Or are you suggesting I should make requests against minion via IRC ? ;) 2018-01-02T12:43:20Z Shinmera: Depending on how many events you have you can just launch a thread for each 2018-01-02T12:43:30Z phoe: osune_: via IRC, exactly (: 2018-01-02T12:43:32Z Shinmera: Alternatively you can just sleep for a second in a thread and then check all events. 2018-01-02T12:43:45Z Shinmera: phoe: Colleen could do that too but I removed it 2018-01-02T12:43:52Z Shinmera: cause it wasn't used 2018-01-02T12:43:54Z osune_: Shinmera: its a pet project, but lets assume there are "millions" 2018-01-02T12:44:17Z osune_: phoe: sounds like a solid approach :) 2018-01-02T12:44:28Z Shinmera: osune_: Then just loop sleep a second and check each event, with events sorted by target time to short-circuit. 2018-01-02T12:44:37Z t0adst00l joined #lisp 2018-01-02T12:44:51Z jdz: osune_: just have a sorted sequence of times, and check the head every second. 2018-01-02T12:45:06Z jdz: Oh, what Shinmera said. 2018-01-02T12:45:06Z Xach: When I had the same problem I made a heap data structure and slept until the next minimum item. 2018-01-02T12:45:15Z Xach: That wound up in SBCL as its SB-TIMER facility. 2018-01-02T12:45:22Z osune_: Shinmera: jdz: yep that was in the back of my head to. 2018-01-02T12:45:35Z osune_: *too 2018-01-02T12:45:59Z Xach: ooops, i guess it's not SB-TIMER. 2018-01-02T12:46:02Z Xach: It's SB-EXT:TIMER 2018-01-02T12:47:03Z osune_: thx Xach I'll take a look 2018-01-02T12:49:41Z osune_: phoe: minion doesn't have the command anymore, looking at the help-text in this repository https://github.com/stassats/lisp-bots/blob/c39f7e793ef96c3a0715413af404a16faf4f47f8/minion/minion.lisp#L340 2018-01-02T12:50:07Z phoe: osune_: ow. Well then, obviously you need to write your own IRC bot in order for your thread to be able to sleep. ;) 2018-01-02T12:50:31Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T12:50:57Z osune_: that would be another point on my bucketlist I could check ;) 2018-01-02T12:50:59Z DeadTrickster joined #lisp 2018-01-02T12:51:10Z osune_: thx everyone for your suggestions and help 2018-01-02T12:51:58Z jdz: Apparently SBCL uses setitimer, which is obsolete already... 2018-01-02T12:56:04Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-02T12:57:03Z osune_: jdz: it's posix.1-2001. Even if posix.1-2008 supersedes it, it seems to be the way to go for now 2018-01-02T12:58:00Z fikka quit (Ping timeout: 268 seconds) 2018-01-02T12:58:11Z mariari joined #lisp 2018-01-02T12:59:25Z jdz: osune_: my man page says «Applications should use the timer_gettime() and timer_settime() functions instead of the obsolescent getitimer() and setitimer() functions, respectively.», POSIX.1-2008. 2018-01-02T13:00:33Z AndChat-153225 quit (Ping timeout: 265 seconds) 2018-01-02T13:01:12Z osune_: jdz: mine says basically the same. But as the kernel 'never' brakes userspace this is a bit ugly but somewhat a non-issue, no? 2018-01-02T13:01:31Z jdz: This has nothing to do with kernel (or so it seems to me). 2018-01-02T13:02:40Z mariari quit (Ping timeout: 252 seconds) 2018-01-02T13:03:46Z fortitude quit (Ping timeout: 272 seconds) 2018-01-02T13:04:13Z phoe: I have a function which accepts a stream as a parameter. What is the canonical way of checking if this stream outputs (unsigned-byte 8)s? 2018-01-02T13:04:39Z jdz: Xach: nice, the code in SBCL is from 2005. Time flies... 2018-01-02T13:04:51Z mingus joined #lisp 2018-01-02T13:04:56Z phoe: (equal (stream-element-type stream) '(unsigned-byte 8))? 2018-01-02T13:05:03Z phoe: or subtypep? 2018-01-02T13:05:07Z phoe: or something completely different? 2018-01-02T13:05:36Z osune_: I would assume that the interface is bound to the kernel, as these are systemcalls which expose timer functionality of the kernel to the user. So deprication warnings for posix interfaces are ugly. But apart from that i don't see a problem using sb-ext:timer? 2018-01-02T13:05:59Z sz0 joined #lisp 2018-01-02T13:07:48Z jdz: I was not complaining or pointing at a problem, more like expressing my puzzlement. 2018-01-02T13:08:04Z osune_: ah got it . 2018-01-02T13:08:48Z phoe: oldie but goldie 2018-01-02T13:09:02Z jdz: I knew about alert(), then just learned about {set,get}itimer, and upon learning about them they got immediately deprecated. 2018-01-02T13:09:19Z osune_: unfortunate 2018-01-02T13:09:52Z jdz: Nah, I just rear UNIX-HATERS Handbook recently, minor things like this only amuse me. 2018-01-02T13:10:03Z osune_: I worked with the timerfd interface (in C) which was very nice to use 2018-01-02T13:11:16Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-02T13:12:32Z randomstrangerb joined #lisp 2018-01-02T13:15:24Z theBlackDragon joined #lisp 2018-01-02T13:24:33Z p_l: osune_: POSIX doesn't cover any syscalls 2018-01-02T13:25:31Z jarwin joined #lisp 2018-01-02T13:26:46Z Tobbi joined #lisp 2018-01-02T13:27:34Z smurfrobot joined #lisp 2018-01-02T13:28:13Z gabot quit (Ping timeout: 268 seconds) 2018-01-02T13:30:24Z EvW quit (Ping timeout: 246 seconds) 2018-01-02T13:31:08Z gabot joined #lisp 2018-01-02T13:31:22Z osune_: p_l: you are right POSIX are not syscalls. But they work on system calls. And even the manpage is ambiguous about the usage of the term as it says "These system calls provide access to interval timers" 2018-01-02T13:32:09Z p_l: osune_: syscall is not equall to syscall, though. Normally-callable functions count as system calls for purposes of POSIX 2018-01-02T13:32:17Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T13:32:36Z p_l: in fact, on most recent Unices, timer-related syscalls are actually library calls often to kernel-managed space 2018-01-02T13:34:07Z smurfrobot joined #lisp 2018-01-02T13:35:40Z ykoda joined #lisp 2018-01-02T13:36:33Z wxie quit (Remote host closed the connection) 2018-01-02T13:37:12Z ykoda quit (Client Quit) 2018-01-02T13:38:23Z ykoda joined #lisp 2018-01-02T13:38:44Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-02T13:39:28Z osune_: p_l: aye. I used the term "systemcall" incorrect. What I wanted to say is: It won't break with the next kernel update nor will the interface vanish soon. I assume I used it, as the manpage for setitimer missuses the term and the setitimer interface depends on the kernel timer facility. Thanks for the correction though and the added information about recent timer-related calls. 2018-01-02T13:39:52Z smurfrobot joined #lisp 2018-01-02T13:43:57Z fikka joined #lisp 2018-01-02T13:43:59Z jarwin quit (Ping timeout: 248 seconds) 2018-01-02T13:44:32Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-02T13:46:31Z Sigyn quit (Quit: People always have such a hard time believing that robots could do bad things.) 2018-01-02T13:47:01Z Shinmera: |3b|: If you could review https://github.com/3b/3bmd/pull/36 I'd appreciate it a lot 2018-01-02T13:47:14Z Sigyn joined #lisp 2018-01-02T13:48:03Z osune_: p_l: just to a be borderline nitpicking: `man 2 syscalls` lists setitimer as syscall http://man7.org/linux/man-pages/man2/syscalls.2.html ;) 2018-01-02T13:48:36Z fikka quit (Ping timeout: 260 seconds) 2018-01-02T13:50:01Z smurfrobot joined #lisp 2018-01-02T13:51:39Z osune_: and I realized I did not write a real sentence. sorry 2018-01-02T13:56:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-02T13:58:14Z brendyn quit (Ping timeout: 272 seconds) 2018-01-02T14:00:58Z p_l: osune_: is it linux manpage, or POSIX manpage? 2018-01-02T14:01:02Z p_l: there's a difference ;) 2018-01-02T14:01:09Z p_l: like POSIX manpages not having section 2 2018-01-02T14:02:07Z osune_: p_l: man 2 setitimer and man 2 syscalls ; so just linux manpages 2018-01-02T14:04:06Z jdz: Oh, I was reading POSIX manpages. 2018-01-02T14:04:36Z p_l: osune_: linux ones will obviously talk about actual Linux behaviour 2018-01-02T14:05:34Z osune_: getitimer(3p) (which is refered to from setitimer(3p) doesn't use the word "syscall / system call". So of course I don't cite it. It would undermine my argument ;) 2018-01-02T14:07:02Z Xach: jdz: I wrote it even longer ago - https://www.xach.com/lisp/timer/doc.html says 2003 2018-01-02T14:07:03Z osune_: jdz: doesn't matter, even setitimer(2) says it's deprecated so you are good or something like that :) 2018-01-02T14:09:16Z smurfrobot joined #lisp 2018-01-02T14:12:39Z dddddd joined #lisp 2018-01-02T14:13:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-02T14:18:13Z Bike joined #lisp 2018-01-02T14:18:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T14:19:33Z smurfrobot joined #lisp 2018-01-02T14:21:45Z jdz: Xach: the project is not linked from https://www.xach.com/lisp/ (probably intentionally; just letting you know). 2018-01-02T14:22:36Z damke_ joined #lisp 2018-01-02T14:23:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-02T14:31:19Z LiamH joined #lisp 2018-01-02T14:32:36Z hyero joined #lisp 2018-01-02T14:32:51Z fikka joined #lisp 2018-01-02T14:35:56Z nowhere_man quit (Remote host closed the connection) 2018-01-02T14:37:02Z nowhere_man joined #lisp 2018-01-02T14:37:19Z fikka quit (Ping timeout: 248 seconds) 2018-01-02T14:47:39Z JonSmith joined #lisp 2018-01-02T14:51:13Z sigjuice: anyone know offhand approximately how much disk space it would be if I downloaded all quicklisp releases for offline use? Thanks! 2018-01-02T14:51:32Z al-damiri joined #lisp 2018-01-02T14:51:51Z FreeBirdLjj joined #lisp 2018-01-02T14:56:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-02T14:57:50Z Xach: sigjuice: unpacked it's about 1.3GB 2018-01-02T14:57:58Z FreeBirdLjj joined #lisp 2018-01-02T14:58:27Z sigjuice: thanks Xach! 2018-01-02T14:58:55Z Xach: sigjuice: to install it all, you can use ql-dist::(map nil 'ensure-installed (provided-releases (dist "quicklisp"))) 2018-01-02T14:59:43Z makomo_ is now known as makomo 2018-01-02T15:01:39Z makomo: Xach: what kind of syntax is that? does it evaluate the form as if it was in the package ql-dist? 2018-01-02T15:02:01Z Xach: makomo: yes. it's sbcl-specific (and some others had it before) 2018-01-02T15:02:02Z random-nick: iirc it's a SBCL extension 2018-01-02T15:02:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T15:02:13Z Xach: it works in at least allegro cl 2018-01-02T15:02:20Z makomo: ah, ok 2018-01-02T15:02:23Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-01-02T15:02:27Z FreeBird_ joined #lisp 2018-01-02T15:03:20Z random-nick: makomo: http://www.sbcl.org/manual/index.html#Reader-Extensions 2018-01-02T15:04:08Z damke_ joined #lisp 2018-01-02T15:04:56Z warweasle joined #lisp 2018-01-02T15:05:39Z knobo quit (Ping timeout: 268 seconds) 2018-01-02T15:08:10Z fikka joined #lisp 2018-01-02T15:08:46Z pfdietz: It's a nice extension. 2018-01-02T15:09:45Z Xach: very handy interactively 2018-01-02T15:09:50Z Xach: not so nice in source files :( 2018-01-02T15:10:07Z Xach: allegroserve uses foo:: a few places and it really puts a crimp in porting to clozure cl. 2018-01-02T15:10:16Z Xach wonders how much work foo:: would be in clozure cl 2018-01-02T15:10:48Z Xach: mfiano: fwiw http://report.quicklisp.org/2018-01-02/failure-report/gamebox-grids.html#gamebox-grids 2018-01-02T15:11:21Z ngqrl quit (Read error: Connection reset by peer) 2018-01-02T15:11:26Z FreeBird_ quit (Remote host closed the connection) 2018-01-02T15:12:03Z FreeBirdLjj joined #lisp 2018-01-02T15:13:02Z mfiano: Xach: Please remove that library from Quicklisp. It has no users and the math is wrong on closer inspection. 2018-01-02T15:13:07Z Xach: ok 2018-01-02T15:14:41Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-01-02T15:14:48Z FreeBird_ joined #lisp 2018-01-02T15:15:08Z lclark joined #lisp 2018-01-02T15:15:20Z mfiano: Thanks. I'll have to rewrite it someday when I have need for it again 2018-01-02T15:19:45Z FreeBird_ quit (Remote host closed the connection) 2018-01-02T15:20:22Z smurfrobot joined #lisp 2018-01-02T15:20:22Z FreeBirdLjj joined #lisp 2018-01-02T15:24:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-02T15:27:32Z Kevslinger joined #lisp 2018-01-02T15:28:08Z asarch joined #lisp 2018-01-02T15:28:55Z hexfive joined #lisp 2018-01-02T15:29:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-02T15:29:53Z Cymew quit (Remote host closed the connection) 2018-01-02T15:36:09Z Cymew joined #lisp 2018-01-02T15:36:30Z milanj quit (Quit: This computer has gone to sleep) 2018-01-02T15:39:29Z nika joined #lisp 2018-01-02T15:41:01Z Cymew quit (Ping timeout: 265 seconds) 2018-01-02T15:41:52Z phoe: Heck yeah, I fixed CL-LZMA. 2018-01-02T15:42:06Z phoe: Its decompression should be 40000% faster now. 2018-01-02T15:42:11Z Cymew joined #lisp 2018-01-02T15:42:27Z Shinmera: What was it doing before? SLEEP? 2018-01-02T15:42:36Z Shinmera: Wait for the bits to align? 2018-01-02T15:43:23Z phoe: Shinmera: no, COERCE'ing arrays from (unsigned-byte 8) to T and then from T to (unsigned-byte 8). 2018-01-02T15:43:52Z phoe: So working on 600kB worth of tiny archives consed up about half a gigabyte of memory in total. 2018-01-02T15:44:16Z phoe: It's easy to achieve 40000% speedups, you just need to fuck up *really* bad in the first place. 2018-01-02T15:45:02Z phoe: Or, to be more specific, coercing raw CFFI memory into simple-vector into (vector (unsigned-byte 8)). 2018-01-02T15:45:11Z Shinmera: Reminds me of the stories of people intentionally making products slower so that they had an insurance on future releases being faster. 2018-01-02T15:45:35Z phoe: I'll keep this in mind. 2018-01-02T15:45:57Z turkja quit (Ping timeout: 264 seconds) 2018-01-02T15:46:26Z Shinmera: Other ways to provide job (and product) insurance: write very obscure code that only you can read, or add in details that nobody but you will notice 2018-01-02T15:46:39Z Cymew quit (Ping timeout: 248 seconds) 2018-01-02T15:47:11Z phoe: > write very obscure code that only you can read 2018-01-02T15:47:13Z phoe: do you mean Lisp? 2018-01-02T15:47:25Z Shinmera: No I mean Java 2018-01-02T15:47:54Z phoe: Hm. I write Java for a living. 2018-01-02T15:47:57Z phoe: I must consider this. 2018-01-02T15:48:17Z Cymew joined #lisp 2018-01-02T15:48:32Z phoe: Unrelated: I just found a way to run threaded ECL on my Android phone, via termux. I'll blogpost about it later today. 2018-01-02T15:52:33Z Cymew quit (Ping timeout: 248 seconds) 2018-01-02T15:54:19Z Cymew joined #lisp 2018-01-02T15:55:19Z dec0n quit (Read error: Connection reset by peer) 2018-01-02T15:58:51Z vlatkoB quit (Remote host closed the connection) 2018-01-02T15:59:09Z Cymew quit (Ping timeout: 264 seconds) 2018-01-02T16:00:21Z Cymew joined #lisp 2018-01-02T16:00:25Z vlatkoB joined #lisp 2018-01-02T16:04:04Z SaganMan joined #lisp 2018-01-02T16:04:27Z Cymew quit (Ping timeout: 240 seconds) 2018-01-02T16:05:39Z Cymew joined #lisp 2018-01-02T16:05:41Z __rumbler31 joined #lisp 2018-01-02T16:07:31Z scymtym quit (Ping timeout: 240 seconds) 2018-01-02T16:08:02Z milanj joined #lisp 2018-01-02T16:10:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-02T16:11:00Z Walex joined #lisp 2018-01-02T16:11:11Z yeticry quit (Ping timeout: 248 seconds) 2018-01-02T16:11:40Z Cymew joined #lisp 2018-01-02T16:13:22Z yeticry joined #lisp 2018-01-02T16:16:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-02T16:17:45Z Cymew joined #lisp 2018-01-02T16:18:01Z whoman: p_l, "worst" , "best", well you know 2018-01-02T16:19:16Z whoman: as for "stacks" well it doesnt matter. CSS and html5 are nonprogramming ways to make a lot of things. there are so many teams and individuals and groups and standards and companies and gov'ts and so on that is behind "web tech". 2018-01-02T16:19:33Z _cosmonaut_ quit (Ping timeout: 264 seconds) 2018-01-02T16:19:52Z whoman: i dont think one dude has enough capacity or perspective or time or energy for anything made by many people. crowd wins 2018-01-02T16:21:32Z Sigyn left #lisp 2018-01-02T16:21:58Z TMA: whoman: there are cases that can prove you wrong. 2018-01-02T16:22:29Z Cymew quit (Ping timeout: 252 seconds) 2018-01-02T16:22:50Z TMA: whoman: Fabrice Bellard comes to mind... 2018-01-02T16:24:27Z beach: I recall a paper by Xof, explaining good and bad ways of using reader conditionals. Does anyone remember where to find it? 2018-01-02T16:25:01Z whoman: TMA, is that a person's name... ? i cant imagine how that would relate =) 2018-01-02T16:25:13Z fortitude joined #lisp 2018-01-02T16:25:28Z smurfrobot joined #lisp 2018-01-02T16:25:28Z whoman: web tech is not an "invention" - its layers and layers of progressive changes and things from the whole world 2018-01-02T16:25:46Z beach: Never mind, found it: http://www-jcsu.jesus.cam.ac.uk/~csr21/features.pdf 2018-01-02T16:25:51Z whoman: like public transpotation. we can blame cars or roads or whatever but yeah we still got to get around 2018-01-02T16:26:37Z LexLeoGryfon joined #lisp 2018-01-02T16:27:07Z LexLeoGryfon: casual symposyim of lisp programmers https://www.pornhub.com/view_video.php?viewkey=1221903074 2018-01-02T16:27:14Z TMA: whoman: I probably misunderstood your point then 2018-01-02T16:27:34Z beach: LexLeoGryfon: Go away! 2018-01-02T16:29:57Z scymtym joined #lisp 2018-01-02T16:30:06Z Xof: beach: you found it before I did! 2018-01-02T16:30:14Z beach: Heh! 2018-01-02T16:31:35Z ChanServ has set mode +o Xach 2018-01-02T16:31:39Z Xach has set mode -bbbb *!*bf651efe@*.191.101.30.254 *!5d5bc20d@*.194.13 harish__!*@* *!~ircap@*.ono.com 2018-01-02T16:31:42Z Xach has set mode -bb *!b23ef15f@*.241.95 *!*Akwok@*.adsl2.static.versatel.nl 2018-01-02T16:31:48Z whoman: o_o 2018-01-02T16:31:51Z Xach has set mode +b *!*lex888888@93.125.104.* 2018-01-02T16:31:54Z LexLeoGryfon [~xach@pdpc/supporter/professional/xach] has been kicked from #lisp by Xach (LexLeoGryfon) 2018-01-02T16:31:59Z Xach has set mode -o Xach 2018-01-02T16:32:44Z whoman: casual eh . does he get $$ for that ? [not clicking, assuming its pr0n] 2018-01-02T16:33:36Z JonSmith quit (Remote host closed the connection) 2018-01-02T16:34:15Z Xach: the person is trying to disrupt the global productivity of lispers. let us not help them succeed by discussing it further! 2018-01-02T16:35:06Z zulu_inuoe_ quit (Remote host closed the connection) 2018-01-02T16:35:18Z p_l: Xach: ircap might be worthwhile to note somewhere, shut down a lot of skiddie bots 2018-01-02T16:35:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-02T16:40:17Z phoe: Xach: thank you. 2018-01-02T16:40:54Z jarwin joined #lisp 2018-01-02T16:42:32Z smurfrobot joined #lisp 2018-01-02T16:43:21Z raynold joined #lisp 2018-01-02T16:45:27Z EvW1 joined #lisp 2018-01-02T16:48:28Z smurfrobot quit (Remote host closed the connection) 2018-01-02T16:49:47Z Vicfred quit (Quit: Leaving) 2018-01-02T16:50:00Z toppler quit (Remote host closed the connection) 2018-01-02T16:50:29Z nyef`` quit (Ping timeout: 256 seconds) 2018-01-02T16:52:06Z igemnace quit (Read error: Connection reset by peer) 2018-01-02T16:58:30Z makomo quit (Ping timeout: 268 seconds) 2018-01-02T16:59:43Z nyef`` joined #lisp 2018-01-02T17:00:35Z whartung joined #lisp 2018-01-02T17:12:20Z Tko quit (Read error: Connection reset by peer) 2018-01-02T17:12:30Z Tko joined #lisp 2018-01-02T17:13:07Z Arcaelyx joined #lisp 2018-01-02T17:15:11Z makomo joined #lisp 2018-01-02T17:15:16Z manualcrank joined #lisp 2018-01-02T17:15:48Z milanj quit (Read error: Connection reset by peer) 2018-01-02T17:18:29Z milanj joined #lisp 2018-01-02T17:22:11Z smurfrobot joined #lisp 2018-01-02T17:22:27Z markong joined #lisp 2018-01-02T17:23:21Z igemnace joined #lisp 2018-01-02T17:25:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-02T17:34:51Z knobo joined #lisp 2018-01-02T17:39:09Z selwyn joined #lisp 2018-01-02T17:39:35Z nika quit 2018-01-02T17:41:53Z hhdave quit (Ping timeout: 248 seconds) 2018-01-02T17:52:51Z fikka joined #lisp 2018-01-02T17:55:06Z dieggsy joined #lisp 2018-01-02T17:56:03Z smurfrobot quit (Remote host closed the connection) 2018-01-02T17:56:05Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-02T17:56:12Z milanj quit (Quit: This computer has gone to sleep) 2018-01-02T17:58:25Z nowhere_man quit (Ping timeout: 255 seconds) 2018-01-02T18:00:06Z nowhere_man joined #lisp 2018-01-02T18:00:40Z randomstrangerb quit (Ping timeout: 255 seconds) 2018-01-02T18:01:55Z randomstrangerb joined #lisp 2018-01-02T18:03:43Z gabnet joined #lisp 2018-01-02T18:04:28Z failproofshark joined #lisp 2018-01-02T18:04:54Z gabnet quit (Client Quit) 2018-01-02T18:05:11Z gabnet joined #lisp 2018-01-02T18:05:29Z random-nick quit (Remote host closed the connection) 2018-01-02T18:05:48Z m00natic quit (Remote host closed the connection) 2018-01-02T18:06:10Z JonSmith joined #lisp 2018-01-02T18:09:22Z gabnet quit (Read error: Connection reset by peer) 2018-01-02T18:15:25Z smurfrobot joined #lisp 2018-01-02T18:16:02Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-02T18:18:20Z phoe: Is there a CFFI IRC channel? 2018-01-02T18:18:38Z phoe: Any IRC place where its developers/maintainers hang out? 2018-01-02T18:19:33Z Poeticode quit (Ping timeout: 264 seconds) 2018-01-02T18:19:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-02T18:20:25Z Poeticode joined #lisp 2018-01-02T18:20:33Z smurfrobot joined #lisp 2018-01-02T18:22:35Z damke joined #lisp 2018-01-02T18:24:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T18:25:00Z phoe: Okay. Let's go. 2018-01-02T18:25:00Z phoe: https://bugs.launchpad.net/cffi/+bug/1740800 2018-01-02T18:25:12Z phoe: "(I don't think it's easy to portably test with specialized arrays because not all Lisps support the same kind of specialized arrays.)" 2018-01-02T18:26:11Z phoe: Like, is it impossible to portably create a vector whose actual element type is an implementation-independent value that is not T? 2018-01-02T18:26:35Z phoe: Or rather, is it valid for an implementation to only ever support arrays of actual element type T? 2018-01-02T18:27:26Z phoe: I think not. 2018-01-02T18:27:28Z phoe: clhs 15.1.2.2 2018-01-02T18:27:28Z specbot: Required Kinds of Specialized Arrays: http://www.lispworks.com/reference/HyperSpec/Body/15_abb.htm 2018-01-02T18:29:20Z Bike: yeah, you need bit and character and stuff. 2018-01-02T18:30:57Z aeth quit (Ping timeout: 264 seconds) 2018-01-02T18:30:57Z phoe: I only have bits and strings. 2018-01-02T18:31:31Z tessier quit (Ping timeout: 260 seconds) 2018-01-02T18:31:36Z phoe: In CFFI, I have numbers. And converting codes to chars is implementation-dependent. 2018-01-02T18:31:55Z phoe: So I might better do it with bits. 2018-01-02T18:32:13Z Bike: honestly i would expect foreign-array-to-lisp to just take an element-type argument that defaults to t 2018-01-02T18:32:30Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T18:32:38Z Bike: you might want a char[] to become an (array (unsigned-byte 8)) sometimes, but an (array t) other times, you know? 2018-01-02T18:32:58Z DeadTrickster joined #lisp 2018-01-02T18:33:20Z Poeticode quit (Quit: Feels good to be a gangster.) 2018-01-02T18:33:51Z phoe: yes, that's why he suggested (foreign-array-to-lisp pointer array-type &rest make-array-arguments) 2018-01-02T18:33:58Z Poeticode joined #lisp 2018-01-02T18:34:16Z phoe: I already have written working tests for displaced and adjustable arrays 2018-01-02T18:35:25Z tessier joined #lisp 2018-01-02T18:36:10Z Poeticode quit (Changing host) 2018-01-02T18:36:11Z Poeticode joined #lisp 2018-01-02T18:36:19Z phoe: Now... I need functions to convert between numbers and bitarrays. 2018-01-02T18:37:28Z phoe: Xach: thanks, http://lisptips.com/post/44261316742/how-do-i-convert-an-integer-to-a-list-of-bits 2018-01-02T18:38:34Z milanj joined #lisp 2018-01-02T18:39:04Z phoe: But wait a second. 2018-01-02T18:39:13Z phoe: On the Lisp side, sure thing, I can create a bit array. 2018-01-02T18:39:32Z phoe: But that's when CFFI will freak out because it might not expect bits. 2018-01-02T18:41:47Z rpg joined #lisp 2018-01-02T18:42:19Z phoe: this is ugly 2018-01-02T18:42:20Z phoe: but works 2018-01-02T18:42:26Z phoe: (with-foreign-array (ptr #(1 0 1 0 1 0 1 0) '(:array :int32 8)) (foreign-array-to-lisp ptr '(:array :int32 8) :element-type 'bit)) 2018-01-02T18:42:42Z rpg: I feel like this should be a FAQ, but I'm not finding it -- is there an easy way to print an s-expression without package qualifiers, no matter what the value of *package* is and what the home packages of the symbols are ? 2018-01-02T18:43:31Z kajo quit (Ping timeout: 240 seconds) 2018-01-02T18:44:15Z phoe: rpg: #'PRINC 2018-01-02T18:44:18Z Bike: usually i'd just bind *package* to the keyword package 2018-01-02T18:44:25Z Bike: er, sorry, "without", nevermind 2018-01-02T18:44:57Z rpg: phoe: PRINC isn't doing it for me. 2018-01-02T18:45:12Z phoe: you want all the other symbols printed with ~S, huh? 2018-01-02T18:45:18Z phoe: s/symbols/things/ 2018-01-02T18:45:27Z phoe: hmmm. let me think for a moment. 2018-01-02T18:45:48Z rpg: actually, looking at this, the s-expression is entirely made up of symbols, but probably that' 2018-01-02T18:45:52Z rpg: s not a safe assumption 2018-01-02T18:46:02Z phoe: What I did once, was: 2018-01-02T18:46:22Z phoe: I copied the whole expression via COPY-TREE, then destructively traversed the copy to replace all symbols with gensyms of the same name. 2018-01-02T18:46:30Z phoe: And then I bound *PRINT-GENSYM* and printed. 2018-01-02T18:46:34Z phoe: clhs *print-gensym* 2018-01-02T18:46:34Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_pr_gen.htm 2018-01-02T18:46:57Z rpg: phoe: I guess we do that, but avoid NIL, right? 2018-01-02T18:47:07Z phoe: rpg: why? 2018-01-02T18:47:16Z rpg: phoe: I guess it's ok.... 2018-01-02T18:47:18Z phoe: #:NIL will get printed as NIL anyway 2018-01-02T18:47:43Z phoe: since NIL might get printed as CL:NIL if you are in some crazy package 2018-01-02T18:47:55Z phoe: so I guess it's even slightly safer to gensym it. 2018-01-02T18:48:13Z rpg: phoe: Are you sure you did this with GENSYM instead of MAKE-SYMBOL? 2018-01-02T18:49:04Z knobo1 joined #lisp 2018-01-02T18:49:09Z phoe: rpg: MAKE-SYMBOL, correct 2018-01-02T18:49:14Z phoe: (make-symbol (symbol-name x)) 2018-01-02T18:49:57Z Bike: there's actually a copy-symbol function 2018-01-02T18:49:58Z rpg: that makes sense. Question: why do (make-symbol (symbol-name x)) instead of just collecting SYMBOL-NAME (and printing strings w/o quotes)? 2018-01-02T18:50:01Z Bike: you could be the first one to use it! 2018-01-02T18:50:13Z phoe: Bike: woah 2018-01-02T18:50:27Z phoe: rpg: printing strings without quotes? how? 2018-01-02T18:50:28Z rpg: Bike: Thanks! 2018-01-02T18:51:07Z phoe: PRINT will print them with quotes, and if you could print items with ~A selectively to print strings without quotes, then you would be able to print symbols without package prefixes. 2018-01-02T18:51:30Z phoe: Bike: the standard keeps on surprising 2018-01-02T18:52:15Z knobo quit (Ping timeout: 248 seconds) 2018-01-02T18:57:19Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-02T18:58:16Z rpg: phoe: This seems to work 2018-01-02T18:58:17Z rpg: https://pastebin.com/Aj1SsqZb 2018-01-02T18:58:43Z rpg: Kind of disgusting, IMO, but... 2018-01-02T19:00:01Z Tobbi joined #lisp 2018-01-02T19:01:57Z fikka quit (Ping timeout: 256 seconds) 2018-01-02T19:01:57Z sonologico quit (Ping timeout: 240 seconds) 2018-01-02T19:02:26Z shka joined #lisp 2018-01-02T19:04:22Z phoe: rpg: similar to what I did. 2018-01-02T19:04:45Z phoe: Could I ask for a code review? I'm submitting a PR to CFFI that makes it possible to return specialized arrays from FOREIGN-ARRAY-TO-LISP. https://github.com/cffi/cffi/pull/128 2018-01-02T19:06:31Z Bike: drop the "holy standard" thing 2018-01-02T19:06:56Z Bike: and i guess you could put in a compiler macro on foreign-array-to-lisp to avoid apply, but it's probably not super important 2018-01-02T19:06:58Z rpg: Bike: ? 2018-01-02T19:08:34Z aeth joined #lisp 2018-01-02T19:08:36Z jarwin quit (Quit: moritus de saluto) 2018-01-02T19:11:31Z phoe: Bike: dropped the thing, and hm. The compiler would probably be smart enough to notice whenever MAKE-ARRAY-ARGS is NIL, since (apply #'foo bar baz '()) seems like a very simple optimization. 2018-01-02T19:16:44Z phoe: Bike: thanks for the review! 2018-01-02T19:17:12Z smurfrobot quit (Remote host closed the connection) 2018-01-02T19:18:48Z asarch: Can you "overload" functions in Lisp? 2018-01-02T19:20:27Z LocaMocha quit (Read error: Connection reset by peer) 2018-01-02T19:20:41Z asarch: Or just define a function with a big list of all available arguments it could handle: (defun foo (list(a 0 a-p) list(b 1/2 b-p) list(c "Hello, world!" c-p)) ... ) 2018-01-02T19:22:09Z fikka joined #lisp 2018-01-02T19:22:29Z Xach: asarch: no 2018-01-02T19:23:06Z phoe: asarch: you mean some kind of pattern matching? 2018-01-02T19:23:27Z Bike: you can define generic functions, which do different things based on the classes of their arguments. you can't write definitions with different numbers of arguments of which only one is picked by the compiler, like in C++, though you can have a function that takes a variable number of arguments and does different things depending on the number. 2018-01-02T19:23:35Z phoe: Bike: oi 2018-01-02T19:23:42Z phoe: methods can also be EQL-specialized 2018-01-02T19:23:50Z dlowe: asarch: not sensibly. You could just define all your functions with a &rest parameter and do your argument parsing in the function body. It would be annoying and slow, though. 2018-01-02T19:25:20Z phoe: but then again, I wonder if EQL-specializing is what asarch wants... 2018-01-02T19:25:31Z phoe: asarch: what kind of mechanism are you trying to achieve? 2018-01-02T19:27:50Z smurfrobot joined #lisp 2018-01-02T19:27:50Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-02T19:31:51Z __rumbler31: phoe: do you have a commit published where you made your changes that resulted in the speedup? How did you figure out that the coercing was the cause, and what did you change to alleviate that? 2018-01-02T19:33:32Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-02T19:34:58Z broccolistem joined #lisp 2018-01-02T19:35:35Z DeadTrickster joined #lisp 2018-01-02T19:35:39Z phoe: __rumbler31: yes, one second. 2018-01-02T19:36:27Z phoe: I used SB-PROFILE:PROFILE to profile a few functions - the decompression function itself, the LZMA-DECODE function (CFFI callback), and then I extracted the COERCE into a separate function that was profiled as well. 2018-01-02T19:36:46Z pjb: asarch: you can define anything you want in lisp. 2018-01-02T19:36:55Z phoe: The coercion consed up to half a gigabyte of memory and took almost all execution time. 2018-01-02T19:37:04Z pjb: asarch: (defmacro define-overloaded-function (name lambda-list &body body) …) 2018-01-02T19:37:33Z pjb: asarch: your job is to implement the … so that a function named ,name is overloaded. 2018-01-02T19:37:42Z phoe: __rumbler31: https://github.com/phoe/cl-lzma/commit/708e5b55fb527f481ef0607b04a5065da68ee955 this is a pretty big commit, but: 2018-01-02T19:38:13Z pjb: asarch: CLOS has defgeneric and defmethod, but this is only one way to do it. You can do it your own way with asarch:define-overloaded-function 2018-01-02T19:38:25Z phoe: https://github.com/phoe/cl-lzma/commit/708e5b55fb527f481ef0607b04a5065da68ee955#diff-8a9f675836b18f93ed95c87feba2a29bL128 - this is the offending call. Note that first FOREIGN-ARRAY-TO-LISP coerces from C memory into Lisp array of type T, and then COERCE coerces from type T into a octet-vector. 2018-01-02T19:38:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-02T19:39:10Z phoe: What I did was, I removed both converting from C into simple-vector, and then from simple-vector into octet-vector, by using a static vector. 2018-01-02T19:39:22Z broccolistem quit (Client Quit) 2018-01-02T19:40:00Z phoe: I gave the C callbacks pointers into raw memory that is the storage of the static vector. This way, the C function can operate straight on the memory that is used by the static vector, and I can then use this inside Lisp code without any conversions or copying. 2018-01-02T19:41:45Z phoe: __rumbler31: I'll actually write a blogpost about it. Thanks for the idea. 2018-01-02T19:41:54Z broccolistem joined #lisp 2018-01-02T19:44:31Z broccolistem quit (Client Quit) 2018-01-02T19:44:51Z broccolistem joined #lisp 2018-01-02T19:45:24Z broccolistem quit (Client Quit) 2018-01-02T19:45:35Z fe[nl]ix: phoe: use static-vectors and avoid copying 2018-01-02T19:45:48Z phoe: fe[nl]ix: uh, this is exactly what I did? 2018-01-02T19:46:44Z fe[nl]ix: oops, too much speed reading 2018-01-02T19:46:50Z phoe: (: 2018-01-02T19:47:05Z gravicappa quit (Ping timeout: 252 seconds) 2018-01-02T19:47:26Z phoe: fe[nl]ix: http://i.imgur.com/paqPdgo.png 2018-01-02T19:47:41Z fe[nl]ix: good choice :D 2018-01-02T19:49:22Z broccoli_ joined #lisp 2018-01-02T19:51:23Z Jesin joined #lisp 2018-01-02T19:52:35Z MetaYan quit (Ping timeout: 240 seconds) 2018-01-02T19:52:59Z __rumbler31: last question, are static vectors a cffi feature? 2018-01-02T19:53:11Z __rumbler31: phoe: and tyvm 2018-01-02T19:53:20Z MetaYan joined #lisp 2018-01-02T19:54:01Z phoe: __rumbler31: no 2018-01-02T19:54:15Z phoe: https://github.com/sionescu/static-vectors 2018-01-02T19:54:33Z fourier joined #lisp 2018-01-02T19:55:04Z __rumbler31: oh holy cow 2018-01-02T19:56:09Z broccolistem joined #lisp 2018-01-02T19:56:12Z vlatkoB quit (Remote host closed the connection) 2018-01-02T19:56:31Z phoe: the implementation needs to support it 2018-01-02T19:57:01Z phoe: since you are creating an object that is a valid Lisp array and also contains a valid C array 2018-01-02T19:57:10Z asarch: I see 2018-01-02T19:57:11Z broccolistem quit (Client Quit) 2018-01-02T19:57:14Z asarch: Thank you guys 2018-01-02T19:58:21Z smurfrobot quit (Remote host closed the connection) 2018-01-02T19:58:55Z broccolistem joined #lisp 2018-01-02T19:59:58Z smurfrobot joined #lisp 2018-01-02T20:00:05Z broccoli_ quit (Ping timeout: 240 seconds) 2018-01-02T20:00:08Z broccolistem quit (Client Quit) 2018-01-02T20:00:49Z damke_ joined #lisp 2018-01-02T20:01:48Z broccolistem joined #lisp 2018-01-02T20:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-02T20:03:07Z broccolistem quit (Client Quit) 2018-01-02T20:04:58Z broccolistem joined #lisp 2018-01-02T20:05:06Z EvW joined #lisp 2018-01-02T20:06:59Z broccolistem quit (Client Quit) 2018-01-02T20:07:18Z broccolistem joined #lisp 2018-01-02T20:07:22Z broccolistem quit (Client Quit) 2018-01-02T20:07:48Z orivej joined #lisp 2018-01-02T20:12:33Z shifty joined #lisp 2018-01-02T20:13:38Z t0adst00l joined #lisp 2018-01-02T20:15:48Z broccolistem joined #lisp 2018-01-02T20:16:02Z broccolistem quit (Client Quit) 2018-01-02T20:16:50Z fourier left #lisp 2018-01-02T20:17:37Z smurfrobot quit (Remote host closed the connection) 2018-01-02T20:19:30Z broccolistem joined #lisp 2018-01-02T20:19:40Z broccolistem quit (Client Quit) 2018-01-02T20:20:45Z smurfrobot joined #lisp 2018-01-02T20:25:15Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-02T20:30:20Z warweasle quit (Quit: later) 2018-01-02T20:30:39Z Cymew joined #lisp 2018-01-02T20:33:02Z ykoda quit (Remote host closed the connection) 2018-01-02T20:35:29Z Cymew quit (Ping timeout: 252 seconds) 2018-01-02T20:43:57Z makomo quit (Read error: Connection reset by peer) 2018-01-02T20:45:41Z orivej quit (Ping timeout: 260 seconds) 2018-01-02T20:49:46Z makomo joined #lisp 2018-01-02T20:50:08Z fikka joined #lisp 2018-01-02T20:52:35Z jmercouris joined #lisp 2018-01-02T20:54:39Z jmercouris: anyone willing to help test nEXT on Linux? 2018-01-02T20:55:01Z fikka quit (Ping timeout: 260 seconds) 2018-01-02T20:55:10Z jmercouris: I only have a VM, so I'm not sure how quick things are, and I'm getting some extremely strange GTK errors, not sure how much is my code or VM 2018-01-02T20:56:14Z jasom: jmercouris: what do you want me to do? 2018-01-02T20:56:30Z jmercouris: jasom: Just run it, and see if it explodes/works on your machine 2018-01-02T20:56:52Z jmercouris: jasom: If you're curious about the source code, it's all available for you to look at 2018-01-02T20:57:11Z jmercouris: jasom: This is the branch: https://github.com/nEXT-Browser/nEXT/tree/gtk 2018-01-02T20:58:03Z jasom: ccl only? 2018-01-02T20:58:20Z jmercouris: jasom: Have to have something like sudo apt-get install libwebkit2gtk-3.0-dev 2018-01-02T20:58:27Z jmercouris: jasom: Should work with anything 2018-01-02T20:58:36Z jmercouris: jasom: Just have to comment out one ccl specific line of code 2018-01-02T20:59:17Z jmercouris: jasom: Within utility.lisp comment out (defun start-swank ...) it should let you run it anyway with that in though 2018-01-02T20:59:38Z jasom: I have 2.4.11 but not 3.x installed I think 2018-01-02T20:59:44Z jasom: (of webkit gtk 2018-01-02T21:00:04Z jmercouris: I wonder if that will work, maybe you can just skip errors 2018-01-02T21:02:52Z jmercouris: You also have to add cl-webkit to your local projects: https://github.com/nEXT-Browser/cl-webkit 2018-01-02T21:02:59Z jmercouris: sorry for the painful installation, I'm working on it 2018-01-02T21:03:10Z random-nick joined #lisp 2018-01-02T21:03:41Z jasom: jmercouris: you should really #+ccl the use line in package.lisp 2018-01-02T21:03:58Z jmercouris: I really should ineed 2018-01-02T21:04:04Z jmercouris: in fact, that probably shouldn't even be in there at all 2018-01-02T21:04:07Z jasom: Undefined function: INTERFACE:KILL 2018-01-02T21:04:34Z jasom: inside next::initialize-default-key-bindings 2018-01-02T21:04:46Z jmercouris: jasom: did package.lisp get loaded properly? 2018-01-02T21:04:53Z jasom: jmercouris: yeah, I'm using ccl for now 2018-01-02T21:05:22Z jmercouris: That doesn't make sense, because you'll see kill is defined in package.lisp 2018-01-02T21:05:40Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-02T21:06:02Z jmercouris: s/defined/declared 2018-01-02T21:06:32Z jasom: jmercouris: it can find the symbol, but not the function 2018-01-02T21:06:37Z phoe: https://www.reddit.com/r/Common_Lisp/comments/7npeab/ <- I made a HOWTO on installing emacs + ECL on Android via termux. 2018-01-02T21:06:40Z jasom: e.g. changing it from #' to ' makes it work 2018-01-02T21:06:51Z jasom: well not complain, haven't tried it for working yet 2018-01-02T21:06:55Z jmercouris: jasom: Huh, maybe mine only works because I've alredy compiled 2018-01-02T21:07:06Z phoe: I'd like to ask for a proofreading in case I screwed up somewhere. 2018-01-02T21:07:56Z jmercouris: phoe: number 5 makes no sense 2018-01-02T21:07:57Z jmercouris: "Run apt install emacs for installing vim. Install spacemacs or download your favorite emacs configuration." 2018-01-02T21:09:02Z jmercouris: phoe: Pretty impressive technology 2018-01-02T21:09:10Z phoe: jmercouris: fixed. 2018-01-02T21:09:12Z jmercouris: jasom: Does it start or no? 2018-01-02T21:09:15Z jasom: jmercouris: ah, I think I needed to load "next/gtk" 2018-01-02T21:09:17Z phoe: jmercouris: technology? what do you mean? 2018-01-02T21:09:26Z jmercouris: jasom: That would make sense, gotta ql it first 2018-01-02T21:09:45Z jasom: jmercouris: I was not aware that the "next" system was insufficient 2018-01-02T21:09:45Z jmercouris: phoe: I mean, it is impressive that it's possible to run this on android at all 2018-01-02T21:09:54Z jmercouris: jasom: Yeah, "next" is just the core 2018-01-02T21:10:07Z jmercouris: jasom: Sorry about that! 2018-01-02T21:10:56Z phoe: jmercouris: the rule is simple 2018-01-02T21:10:57Z jasom is installing newer libwebkit2 2018-01-02T21:11:14Z phoe: 1) get a C compiler there, 2) run everything 2018-01-02T21:12:17Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-02T21:12:52Z jmercouris: phoe: simple != easy 2018-01-02T21:13:17Z jasom: jmercouris: I'll get back to you tomorrow on this; I'm running gentoo, and currently not at my faster machine, so it will take a couple of hours to build webkit 2018-01-02T21:13:27Z jmercouris: jasom: You have to literally build it :D? 2018-01-02T21:13:31Z randomstrangerb joined #lisp 2018-01-02T21:13:32Z jasom: jmercouris: yup 2018-01-02T21:13:41Z jmercouris: jasom: Okay, I look forward to it, thanks! 2018-01-02T21:14:29Z jasom: I can build webkit in 65 minutes on my faster machine, but I'm on a 4 year old xeon right now, so it will take maybe 3 hours to build 2018-01-02T21:14:51Z jmercouris: Lol, that's hilarious, doesn't portage provide binaries? 2018-01-02T21:14:58Z jmercouris: It is portage right? 2018-01-02T21:15:10Z jasom: jmercouris: it only provides binaries for select items 2018-01-02T21:15:18Z p_l: jmercouris: no, it doesn't, then webkit is just a PITA 2018-01-02T21:15:36Z broccolistem joined #lisp 2018-01-02T21:15:36Z jmercouris: How should I package my application for distribution on Linux? 2018-01-02T21:15:54Z jasom: jmercouris: make a deb that works on ubuntu and force everyone else to build from source; that's the Linux way :) 2018-01-02T21:16:13Z jasom: (substitute "rpm" for deb and "Red Hat" for ubuntu if it's 10 years ago) 2018-01-02T21:16:15Z broccolistem quit (Client Quit) 2018-01-02T21:16:21Z drcode joined #lisp 2018-01-02T21:16:35Z jmercouris: jasom: How do I make a deb file for SBCL or CCL? 2018-01-02T21:16:44Z jasom: jmercouris: they already exist 2018-01-02T21:16:47Z drcode quit (Remote host closed the connection) 2018-01-02T21:16:49Z no_bobby joined #lisp 2018-01-02T21:16:58Z jmercouris: So I run the app, save the image, and pop into an existing deb file and ship? 2018-01-02T21:17:18Z Shinmera: jmercouris: You might have luck with AppImage. Alternatively you can wait for me to get around to turning Portacle into a platform 2018-01-02T21:17:21Z jmercouris: How do I ensure that the user has the webkit libraries for example? 2018-01-02T21:17:26Z jasom: jmercouris: that should work. If you want it to get upstreamed you'll have to do more (the author of pgloader did this) 2018-01-02T21:17:32Z jasom: jmercouris: you specify dependencies 2018-01-02T21:17:56Z jasom: jmercouris: easiest way to check your deps are right is to use an lxc or vm image of a fresh install and see if it works there. 2018-01-02T21:18:09Z jmercouris: Shinmera: AppImage looks pretty cool 2018-01-02T21:18:20Z jmercouris: jasom: I am running on a completely barebones vm right now 2018-01-02T21:18:24Z jasom: for actually getting it upstreamed, the author of pgloader has a blog article about it 2018-01-02T21:18:30Z jmercouris: jasom: I wish I had a linux machine that didn't suck 2018-01-02T21:18:40Z jmercouris: jasom: you mean dim? 2018-01-02T21:18:53Z jmercouris: or is it demetri, it's d+ something 2018-01-02T21:19:25Z Shinmera: It's dim 2018-01-02T21:19:27Z jasom: jmercouris: I'm really bad with names, so don't ask me 2018-01-02T21:19:39Z drcode joined #lisp 2018-01-02T21:20:47Z Xach quit (Ping timeout: 256 seconds) 2018-01-02T21:21:26Z smurfrobot joined #lisp 2018-01-02T21:24:04Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-02T21:25:51Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-02T21:29:33Z EvW quit (Ping timeout: 246 seconds) 2018-01-02T21:30:25Z no_bobby quit (Ping timeout: 256 seconds) 2018-01-02T21:32:57Z jmercouris quit (Remote host closed the connection) 2018-01-02T21:33:29Z jmercouris joined #lisp 2018-01-02T21:34:04Z fikka joined #lisp 2018-01-02T21:37:28Z aeth: AppImage is probably the least popular of the three options (the other two are Flatpak and Snappy, with the third being Canonical's NIH) 2018-01-02T21:38:04Z aeth: And, yes, it's Linux, there's always at least three options. 2018-01-02T21:39:19Z aeth: GNOME is backing Flatpak and Ubuntu is backing Snappy, which is why they're probably more popular. 2018-01-02T21:39:24Z jmercouris: Sometimes more choice is less good 2018-01-02T21:39:58Z jmercouris: I'm sure that's an unpopular opinion, but I don't feel like packaging my app in 20 different ways 2018-01-02T21:40:13Z Shinmera: aeth: Don't forget about Docker... 2018-01-02T21:40:27Z aeth: I'd personally go with Flatpak, then. It seems to be extremely available, e.g. Fedora installs it by default. 2018-01-02T21:40:52Z aeth: (And it's not just because Fedora is a GNOME distro, I install the KDE spin.) 2018-01-02T21:41:15Z jmercouris: I'm mentally going to just making a deb file and letting everybody else figure it out 2018-01-02T21:41:28Z aeth: That's probably the worst option. debs aren't portable at all. 2018-01-02T21:41:32Z jmercouris: debian + ubuntu should cover most users I think, and anyone who doesn't use those distros should be used to installing from source 2018-01-02T21:41:39Z aeth: Actually, no 2018-01-02T21:41:56Z aeth: As a Fedora user, I'm used to there being a Fedora/SUSE RPM option as well. 2018-01-02T21:42:05Z aeth: Arch is where people who are used to source installs go 2018-01-02T21:42:24Z Shinmera: And even then I like having an AUR build script ready for me 2018-01-02T21:42:26Z jmercouris: As a BSD user, I'm used to things not being available 2018-01-02T21:42:27Z aeth: (Although it's common that the RPM is third party) 2018-01-02T21:42:57Z mishoo quit (Ping timeout: 240 seconds) 2018-01-02T21:43:04Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-02T21:43:14Z jmercouris: aeth: Will you be my third party ;)? 2018-01-02T21:43:53Z no_bobby joined #lisp 2018-01-02T21:44:01Z aeth: Personally, if I released packages, I'd just do a Flatpak and if someone wants to make distro-specific packages the community can do it themselves. 2018-01-02T21:45:12Z aeth: The old portable method was a shell script, usually installing things to ~ or ~/foo/ with an option to install them to /usr/local/ 2018-01-02T21:45:32Z aeth: I've encountered that a lot more than providing a package at all. 2018-01-02T21:46:31Z broccolistem joined #lisp 2018-01-02T21:46:35Z aeth: In checking, I just found out that I have a /usr/@DATADIRNAME@/ so that shows you how reliable such scripts are. 2018-01-02T21:46:56Z shka quit (Ping timeout: 260 seconds) 2018-01-02T21:48:04Z broccolistem quit (Client Quit) 2018-01-02T21:48:44Z fikka quit (Ping timeout: 255 seconds) 2018-01-02T21:49:33Z broccolistem joined #lisp 2018-01-02T21:51:00Z fikka joined #lisp 2018-01-02T21:54:08Z jsambrook joined #lisp 2018-01-02T21:56:32Z fluxit quit (Max SendQ exceeded) 2018-01-02T21:56:41Z fluxit joined #lisp 2018-01-02T22:03:23Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-02T22:04:13Z damke joined #lisp 2018-01-02T22:06:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T22:07:39Z pillton: asarch: Specialization-store can do the kind of thing you are after: https://github.com/markcox80/specialization-store/wiki/Tutorial-2:-Optional,-Keyword-and-Rest-Arguments#rest-arguments 2018-01-02T22:10:41Z broccolistem quit (Quit: WeeChat 2.1-dev) 2018-01-02T22:12:23Z broccolistem joined #lisp 2018-01-02T22:12:42Z orivej joined #lisp 2018-01-02T22:19:26Z selwyn quit (Read error: Connection reset by peer) 2018-01-02T22:19:39Z frob joined #lisp 2018-01-02T22:19:53Z frob left #lisp 2018-01-02T22:20:15Z no_bobby quit (Ping timeout: 248 seconds) 2018-01-02T22:20:27Z aeth: Cool, specialization-store supports ECL now 2018-01-02T22:21:55Z pillton: I added it before it got added to quicklisp. 2018-01-02T22:22:07Z smurfrobot joined #lisp 2018-01-02T22:22:52Z aeth: I guess it's just missing ABCL and CLISP support (fairly common due to how those implementations work) and Clasp support (also fairly common, due to Clasp not being complete yet) 2018-01-02T22:23:37Z aeth: Also, Mezzano (is it its own implementation?) and MKCL (probably the least supported implementation for libraries) 2018-01-02T22:23:41Z shifty quit (Ping timeout: 260 seconds) 2018-01-02T22:24:35Z wxie joined #lisp 2018-01-02T22:24:59Z pillton: Well, I am only one person. It took nearly four years for SS to get where it is now. 2018-01-02T22:25:55Z aeth: Afaik, SBCL+CCL+ECL+CMUCL covers most people outside of the commerical Lisp world, and any large application will already have some dependency that doesn't support the rest. 2018-01-02T22:27:11Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-02T22:28:01Z pillton: ECL doesn't implement the environment API of CLtL2. The compile time functionality of SS requires it. 2018-01-02T22:28:11Z EvW1 joined #lisp 2018-01-02T22:28:25Z __rumbler31 quit (Ping timeout: 268 seconds) 2018-01-02T22:28:26Z aeth: pillton: So how do you handle support on implementations that don't support it at compile time? 2018-01-02T22:28:28Z pillton: Implementing that and updating introspect-environment is a good project for someone. 2018-01-02T22:28:43Z aeth: And I agree. 2018-01-02T22:29:14Z pillton: All of the compile time support is delegated to introspect-environment. 2018-01-02T22:29:22Z pillton: I think it just returns T. 2018-01-02T22:29:27Z aeth: oh 2018-01-02T22:29:30Z aeth: hmm 2018-01-02T22:29:41Z Bike: ecl has an environment api now? 2018-01-02T22:30:07Z pillton: Not that I know of. 2018-01-02T22:30:18Z pillton: I thought it would be a good project for someone. 2018-01-02T22:30:27Z Bike: oh, i see. 2018-01-02T22:30:28Z smurfrobot joined #lisp 2018-01-02T22:30:48Z pillton: My spare time has dwindled. 2018-01-02T22:31:11Z Bike: https://gitlab.com/embeddable-common-lisp/ecl/issues/130 well. 2018-01-02T22:31:14Z smurfrobot quit (Remote host closed the connection) 2018-01-02T22:31:48Z aeth: I don't think I can use specialization-store until ECL supports introspect-environment, for portability. 2018-01-02T22:31:49Z Bike: looks like it doesn't keep type declarations. 2018-01-02T22:32:26Z pillton: Why can't you use it? 2018-01-02T22:32:30Z Bike: and i thought specialization store still worked with no type information, it just did runtime checks? 2018-01-02T22:32:35Z aeth: The problem is the general advice right now is to try (1) SBCL, (2) CCL, (3) ECL in that order. 2018-01-02T22:33:06Z pillton: What? It says it has been tested on those implementations. 2018-01-02T22:33:27Z aeth: Yes, but if ECL generates much slower code, it runs but not as expected. 2018-01-02T22:33:48Z pillton: If SS can't discover anything at compile time it will just defer it to run time. 2018-01-02T22:35:33Z pillton: The function used in SS to perform discrimination is a binary tree. It isn't as bad as you might think. See the results in https://github.com/markcox80/template-function/wiki/Tutorial-1:-An-Introduction. 2018-01-02T22:37:02Z aeth: pillton: Would specialization store work for an inline function that takes either three arguments or one argument, where the one argument variant is actually based on the three argument version? I have two vector representations (multiple value and actual vector) and I implement all of my vector math as multiple value math, currently using %foo as the multiple-value name 2018-01-02T22:38:08Z pillton: aeth: Yes. The link about rest arguments shows how to do that. 2018-01-02T22:38:23Z pillton: aeth: SS is smart enough to interpret THE forms. 2018-01-02T22:39:27Z pillton: https://github.com/markcox80/specialization-store/blob/master/src/common.lisp#L25 2018-01-02T22:39:32Z aeth: pillton: Currently, I have (vec+ v1 v2) and (vec+-into! result-v v1 v2) that are both implemented based on an inline (%vec+ v1-x v1-y v1-z v2-x v2-y v2-z) and I do this for everything (vectors and quaternions) except matrices, where the multiple value approach is too inelegant 2018-01-02T22:40:09Z aeth: So e.g. there's also a %quaternion+ that takes in 8 values used as the basis of quaternion+ and quaternion+-into! 2018-01-02T22:40:33Z pillton: I have no general advice for mathematical problems. It is probably the hardest domain to design for. 2018-01-02T22:40:44Z aeth: The "%" is a bit of a misnomer because I actually mostly use them directly because I put a lot of my vectors in 2D arrays, where the row represents the actual value and I retrieve multiple values 2018-01-02T22:40:57Z jstypo quit (Remote host closed the connection) 2018-01-02T22:41:40Z aeth: pillton: Well, there are definitely higher-performance ways to do what I'm doing. I do the multiple-values approach because it gives me pure functions that do not cons. It makes the API really messy, though. 2018-01-02T22:41:51Z pillton: I do the same thing (except they are called vec+ and nvec+). 2018-01-02T22:42:14Z pillton: In my experience, the BLAS/LAPACK API is by far the easiest to work with. 2018-01-02T22:42:17Z aeth: A naive-consing vector API will have 1/3 the functions that I have (naive consing, -into, and multiple-values) 2018-01-02T22:43:02Z aeth: Using the -into API winds up making everything look not very mathematical and more like a machine 2018-01-02T22:43:17Z pillton: You get used to it after a while. 2018-01-02T22:43:32Z pillton: The problem with the mathematical way is understanding what happens underneath. 2018-01-02T22:43:52Z pillton: I've tried doing all the analysis and it is ..... hard. 2018-01-02T22:43:58Z aeth: I only use the -into method for matrices 2018-01-02T22:44:03Z aeth: I don't even call them -into 2018-01-02T22:44:12Z aeth: e.g. it's (matrix* destination m1 m2) 2018-01-02T22:44:25Z QualityAddict quit (Ping timeout: 265 seconds) 2018-01-02T22:44:57Z pillton: I do a similar thing. 2018-01-02T22:46:13Z aeth: Unless I move to SBCL-only SIMD, there isn't really a disadvantage to using the multiple value approach directly. It actually beats writing for the vectors themselves because it essentially is a loop unrolling via macro. 2018-01-02T22:46:18Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-02T22:46:35Z aeth: I think it adds one instruction over doing it manually. 2018-01-02T22:46:49Z QualityAddict joined #lisp 2018-01-02T22:47:09Z aeth: I'd like to make the whole thing cleaner, though. Having three versions that do the same thing with different tradeoffs is messy. 2018-01-02T22:47:56Z pillton: You always have that trade off. It is even worse with matrices since they can be row-major, column major or some general stride setup. 2018-01-02T22:49:57Z kupad quit (Ping timeout: 240 seconds) 2018-01-02T22:50:10Z Shinmera: Wait until you get to sparse matrices. 2018-01-02T22:50:22Z Shinmera: That's where the real "fun" begins. 2018-01-02T22:50:53Z Shinmera: (Don't implement your own sparse matrix stuff. It's not worth it.) 2018-01-02T22:52:39Z Bike quit (Ping timeout: 260 seconds) 2018-01-02T22:53:34Z smurfrobot joined #lisp 2018-01-02T22:54:10Z pillton: You can say the same thing for diagonal matrices or Toeplitz. 2018-01-02T22:54:20Z Shinmera: Or any matrix stuff, really 2018-01-02T22:54:28Z Shinmera: In general, don't implement your own linear algebra 2018-01-02T22:55:50Z pillton: That isn't a satisfactory position to advocate. How will things improve? 2018-01-02T22:55:52Z moei quit (Quit: Leaving...) 2018-01-02T22:56:40Z Shinmera: Things improve if you tackle domains that you have a good shot at improving. Linear algebra is highly likely not one of those. 2018-01-02T22:56:57Z wxie quit (Remote host closed the connection) 2018-01-02T22:57:00Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-02T22:58:02Z nirved quit (Quit: Leaving) 2018-01-02T22:59:32Z asarch quit (Quit: Leaving) 2018-01-02T23:00:55Z damke_ joined #lisp 2018-01-02T23:01:33Z Tko quit (Ping timeout: 264 seconds) 2018-01-02T23:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-02T23:03:29Z ski quit (Quit: Lost terminal) 2018-01-02T23:04:00Z kupad joined #lisp 2018-01-02T23:05:24Z smurfrobot quit (Remote host closed the connection) 2018-01-02T23:07:43Z LiamH quit (Quit: Leaving.) 2018-01-02T23:09:19Z Xach joined #lisp 2018-01-02T23:14:22Z kajo joined #lisp 2018-01-02T23:14:35Z Murii quit (Quit: WeeChat 1.4) 2018-01-02T23:16:50Z whoman quit (Read error: Connection reset by peer) 2018-01-02T23:20:10Z random-nick quit (Remote host closed the connection) 2018-01-02T23:21:16Z smurfrobot joined #lisp 2018-01-02T23:21:59Z aeth: Afaik, you can't really get very high performance vector stuff in CL 2018-01-02T23:23:39Z pillton: SBCL is pretty good considering the assembly doesn't use SIMD. 2018-01-02T23:23:41Z aeth: At least for game linear algebra, it looks like the optimal data structure (e.g. if I were implementing it in x86-64 asm directly) would be a buffer of what SBCL calls simd-packs. 2018-01-02T23:23:43Z makomo quit (Ping timeout: 248 seconds) 2018-01-02T23:23:50Z aeth: if that's even possible 2018-01-02T23:23:50Z jamtho_ joined #lisp 2018-01-02T23:24:30Z aeth: i.e. instead of an array of 32000 (sb-ext:%make-simd-pack-single)s, you do SIMD on offsets into a buffer that can hold the equivalent amount of data. 2018-01-02T23:25:06Z aeth: It could be kept compact by e.g. swapping the last valid element in the buffer with the one you're removing and then removing the last valid element in the buffer 2018-01-02T23:25:21Z aeth: (in this case, the element would be the simd, not one float) 2018-01-02T23:25:30Z damke joined #lisp 2018-01-02T23:26:08Z aeth: If this scheme could work and the GC could skip over this chunk of memory, too, that would be amazing. 2018-01-02T23:27:17Z smurfrobot quit (Remote host closed the connection) 2018-01-02T23:27:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-02T23:27:21Z JonSmith: could probably done with some of the ffi stuff 2018-01-02T23:28:43Z aeth: To be really worth it in a library one would have to (1) make it portable to at least CCL and ECL even if the portable part is a slower fallback in native CL and (2) add no foreign library dependencies 2018-01-02T23:30:05Z JonSmith: you'd use cffi / uffi / whatever is in vogue now to fix the memory mostly 2018-01-02T23:30:28Z aeth: Oh, and the holy grail would be (3) if it was as usable as static-vectors 2018-01-02T23:30:34Z aeth: #3 is probably impossible 2018-01-02T23:30:57Z pillton: You could also consider adopting an API similar to LDB and DPB but for chunks of an array. 2018-01-02T23:32:08Z pillton: ... and BOOLE. 2018-01-02T23:32:39Z JonSmith: alternately it would be cool for someone to hack SIMD vector stuff into sbcl 2018-01-02T23:32:50Z antonv joined #lisp 2018-01-02T23:33:40Z pillton: What would it look like? 2018-01-02T23:33:58Z smurfrobot joined #lisp 2018-01-02T23:34:08Z Tko joined #lisp 2018-01-02T23:35:50Z safe joined #lisp 2018-01-02T23:38:13Z JonSmith: probably a set of VOPs and some sort of logic to trigger them when you're doing *special vector stuff*, its been a long time since i looked at the sbcl internals so i can't remember how the optimizer/emitter works 2018-01-02T23:39:03Z pillton: I mean, what would a user write to perform a dot product of two vectors? 2018-01-02T23:40:56Z JonSmith: that would be a couple levels of abstraction up from what i'm suggesting, so presumably lisp code that does a dot product of two vectors that have type declarations 2018-01-02T23:41:16Z JonSmith: it would be cool, but that doesn't mean it is particularly feasible 2018-01-02T23:43:06Z JonSmith: and i think they'd be typed 1d arrays rather than vectors, technically 2018-01-02T23:43:20Z JonSmith: or 2d 2018-01-02T23:44:26Z makomo joined #lisp 2018-01-02T23:47:48Z JonSmith quit (Remote host closed the connection) 2018-01-02T23:49:00Z DeadTrickster_ joined #lisp 2018-01-02T23:49:47Z smurfrobot quit (Remote host closed the connection) 2018-01-02T23:50:57Z DeadTrickster quit (Ping timeout: 248 seconds) 2018-01-02T23:51:38Z stylewarning: pillton: aeth: within a couple weeks we will be releasing our linear algebra library. It could use lots of work for the high level API, but the BLAS/LAPACK bindings are solid. 2018-01-02T23:53:23Z DeadTrickster joined #lisp 2018-01-02T23:55:22Z Kaisyu joined #lisp 2018-01-02T23:55:29Z DeadTrickster_ quit (Ping timeout: 256 seconds) 2018-01-02T23:56:16Z pillton: stylewarning: Great. I look forward to it. 2018-01-03T00:00:52Z DeadTrickster_ joined #lisp 2018-01-03T00:01:04Z zooey quit (Ping timeout: 272 seconds) 2018-01-03T00:03:11Z DeadTrickster quit (Ping timeout: 248 seconds) 2018-01-03T00:08:04Z pierpa joined #lisp 2018-01-03T00:10:36Z epony joined #lisp 2018-01-03T00:10:38Z moei joined #lisp 2018-01-03T00:11:18Z zooey joined #lisp 2018-01-03T00:11:42Z sayanman joined #lisp 2018-01-03T00:11:42Z epony quit (Max SendQ exceeded) 2018-01-03T00:12:43Z zooey quit (Remote host closed the connection) 2018-01-03T00:12:55Z epony joined #lisp 2018-01-03T00:13:18Z zooey joined #lisp 2018-01-03T00:14:01Z zooey quit (Remote host closed the connection) 2018-01-03T00:14:38Z Walex quit (Quit: leaving) 2018-01-03T00:14:48Z zooey joined #lisp 2018-01-03T00:18:19Z fortitude_ joined #lisp 2018-01-03T00:20:30Z aeth: I definitely think the approach for game linear algebra (which is mostly math vectors of size 2, 3, or 4 (where size 4 can be quaternions that encode rotations) and square matrices no larger than 4x4) shouldn't be to rely on anything automated on the compiler's side, and should work with buffers rather than with individual objects. 2018-01-03T00:22:12Z pfdietz: Compiler support may be needed for all those weird SIMD instructions. 2018-01-03T00:22:16Z aeth: At the moment, I use 2D arrays with row sizes of 3 or 4, but 1D arrays with a special aref could also work. This approach is treating each float individually instead of together like SIMD, though. 2018-01-03T00:22:52Z pfdietz: (reads back up the window) oh, that's what was being talked about 2018-01-03T00:23:02Z aeth: pfdietz: I think creating a special type in an extension that works portably over SBCL, CCL, ECL, and maybe CMUCL would probably be the direction to go, rather than doing it automatically. 2018-01-03T00:23:20Z aeth: (Or just hacking it in via the CFFI) 2018-01-03T00:23:49Z aeth: Alternatively, just supporting SBCL with the fast path and using 1D arrays of single-floats for everything else. 2018-01-03T00:23:52Z pfdietz: And these days it's all about putting stuff on GPUs. 2018-01-03T00:24:42Z pillton: Something like (simd op dest src1 ...) where sources could be a simd-pack or a (chunk ). 2018-01-03T00:24:57Z aeth: For games, the heavy lifting of the rendering is done on the GPUs, but there's plenty of things that are done on the CPUs. The most intensive is probably game physics, some of which can be done on the GPU, but then that limits how pretty you can make the game look. GPU physics has kind of fallen out of favor, actually, because of this. 2018-01-03T00:24:57Z kupad quit (Ping timeout: 240 seconds) 2018-01-03T00:25:08Z aeth: Even Nvidia's PhysX is mostly CPU-side these days afaik. 2018-01-03T00:26:05Z brendyn joined #lisp 2018-01-03T00:26:19Z aeth: pillton: I don't quite like simd-pack because an array of simd-packs isn't going to be as ideal as working with offsets into a buffer, at least for data structures used in games. 2018-01-03T00:26:50Z pillton: Which is why I suggested (simd op dest (chunk )). 2018-01-03T00:26:54Z aeth: yeah 2018-01-03T00:27:58Z pillton: You would need an operator to compute how many elements to a chunk. 2018-01-03T00:28:21Z pfdietz: How would this fit with machine learning, which is another big user of those coprocessors these days? 2018-01-03T00:29:03Z aeth: Well, I was thinking about this from the perspective of games. Games don't need to have extremely optimized linear algebra. The very heavy lifting for rendering is done on the GPU and for the rest, it's more about hitting seconds per frame targets like 0.0167 or 0.01 or 0.005 2018-01-03T00:29:20Z aeth: So it should be easier to reach acceptable performance with game libraries, before more general purpose linear algebra. 2018-01-03T00:31:04Z aeth: And that data, after the game logic processing, is going to end up in (ideally preallocated) static-vectors sent via OpenGL to the GPU 2018-01-03T00:31:17Z Cymew joined #lisp 2018-01-03T00:32:57Z fortitude_ quit (Ping timeout: 240 seconds) 2018-01-03T00:33:21Z aeth: At the moment, I get acceptable performance without using SIMD at all. 2018-01-03T00:35:43Z Cymew quit (Ping timeout: 256 seconds) 2018-01-03T00:39:33Z aeth: For GPU computation, I'm optimistic about SPIR-V eventually being the one-size-fits-all solution for compiling shaders expressed as a mini-Lisp language that can work in OpenGL, OpenCL, and Vulkan. Eventually. It will take a while for it to be supported widely enough. 2018-01-03T00:39:55Z FreeBirdLjj joined #lisp 2018-01-03T00:40:26Z kupad joined #lisp 2018-01-03T00:43:39Z jamtho_ quit (Ping timeout: 256 seconds) 2018-01-03T00:45:21Z kupad quit (Ping timeout: 264 seconds) 2018-01-03T00:50:16Z smurfrobot joined #lisp 2018-01-03T00:55:38Z smurfrobot quit (Ping timeout: 252 seconds) 2018-01-03T00:58:11Z KarlDscc joined #lisp 2018-01-03T01:01:57Z Karl_Dscc quit (Ping timeout: 240 seconds) 2018-01-03T01:03:45Z Karl_Dscc joined #lisp 2018-01-03T01:03:56Z EvW1 quit (Ping timeout: 276 seconds) 2018-01-03T01:05:27Z KarlDscc quit (Ping timeout: 240 seconds) 2018-01-03T01:07:12Z nydel quit (Quit: WeeChat 0.4.1) 2018-01-03T01:07:29Z nydel joined #lisp 2018-01-03T01:08:14Z milanj quit (Quit: This computer has gone to sleep) 2018-01-03T01:08:23Z EvW joined #lisp 2018-01-03T01:08:53Z milanj joined #lisp 2018-01-03T01:09:10Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-03T01:09:17Z fortitude_ joined #lisp 2018-01-03T01:12:16Z jstypo joined #lisp 2018-01-03T01:13:41Z markong quit (Ping timeout: 256 seconds) 2018-01-03T01:18:06Z Karl_Dscc quit (Remote host closed the connection) 2018-01-03T01:22:11Z jasom: jmercouris: works on sbcl (with a few #+ccl changes), crashes on ccl 2018-01-03T01:23:55Z jasom: jmercouris: oh, it just crashed on sbcl too 2018-01-03T01:24:26Z jasom: Memory fault at 0xbbadbeef (pc=0x7fffdbd70cec, sp=0x7fffd8aad6e0) 2018-01-03T01:25:03Z igemnace joined #lisp 2018-01-03T01:26:54Z jasom: ccl crashed with a null pointer exception 2018-01-03T01:27:06Z jasom: the speed is fine, btw, but it's very crashy 2018-01-03T01:36:14Z rumbler31 quit 2018-01-03T01:36:26Z smurfrobot joined #lisp 2018-01-03T01:37:09Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-03T01:39:11Z fikka quit (Ping timeout: 256 seconds) 2018-01-03T01:43:50Z rumbler31 joined #lisp 2018-01-03T01:46:01Z kajo quit (Remote host closed the connection) 2018-01-03T01:46:38Z kajo joined #lisp 2018-01-03T01:47:21Z Vicfred joined #lisp 2018-01-03T01:50:40Z karswell_ quit (Read error: Connection reset by peer) 2018-01-03T01:52:49Z Oladon joined #lisp 2018-01-03T01:52:52Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-03T01:53:27Z FreeBirdLjj joined #lisp 2018-01-03T01:57:47Z nowhere_man quit (Ping timeout: 252 seconds) 2018-01-03T02:00:45Z nowhere_man joined #lisp 2018-01-03T02:03:57Z anon_ quit (Ping timeout: 264 seconds) 2018-01-03T02:04:46Z antonv quit (Ping timeout: 260 seconds) 2018-01-03T02:05:00Z EvW quit (Ping timeout: 265 seconds) 2018-01-03T02:05:12Z anon_ joined #lisp 2018-01-03T02:05:51Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-03T02:06:03Z teddy_error joined #lisp 2018-01-03T02:06:55Z spoken-tales joined #lisp 2018-01-03T02:07:17Z smurfrobot quit (Remote host closed the connection) 2018-01-03T02:08:27Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-03T02:11:05Z cryptomarauder: ugh, instead of going away like I prayed for in early 2000 it's only gotten bigger. Why is java a thing still? 2018-01-03T02:11:09Z d4ryus1 joined #lisp 2018-01-03T02:12:13Z krwq joined #lisp 2018-01-03T02:12:19Z cryptomarauder: we built the whole gd web with it even! 😭 2018-01-03T02:12:42Z cryptomarauder: #failtech 2018-01-03T02:13:12Z krwq: hello, is it possible to force #'read to not read reader macros? i.e.: (with-input-from-string (inp "#.(+ 2 3)") (read inp)) => 5 - I'd like it to report the error instead 2018-01-03T02:13:44Z d4ryus quit (Ping timeout: 252 seconds) 2018-01-03T02:15:11Z nowhere_man joined #lisp 2018-01-03T02:15:50Z krwq: ok nvm: (let ((*read-eval* nil)) (read-from-string "#.(+ 2 3)")) 2018-01-03T02:17:22Z cryptomarauder: yeah 2018-01-03T02:18:04Z cryptomarauder: and make sure your safety and debug optimization qualities are set accordingly to what you desire as well 2018-01-03T02:18:44Z aeth: Anyone who makes a Lisp implementation for Intel CPUs (or otherwise deals with syscalls on Intel CPUs) might be interested in this rumor of a major slowdown in an upcoming kernel patch: https://www.reddit.com/r/hardware/comments/7nngqd/intel_bug_incoming/ 2018-01-03T02:19:31Z aeth: Reading the comments, it looks like 5% at a minimum, 35% for syscall-heavy things. 2018-01-03T02:20:21Z FreeBirdLjj joined #lisp 2018-01-03T02:21:36Z aeth: It's in Linux kernel 4.15-rc6 so people are benchmarking it. 2018-01-03T02:27:03Z pjb: krwq: it is possible: (let ((*readtable* (com.informatimago.tools.reader-macro:remove-all-macro-characters (copy-readtable nil)))) (read-from-string "Hello")) #| --> hello ; 5 |# 2018-01-03T02:27:17Z dieggsy joined #lisp 2018-01-03T02:28:13Z pjb: aeth: again, as I always say: write it in fucking lisp, don't do FFI! (syscall are FFI on non-lisp-machine OSes). 2018-01-03T02:28:17Z fikka joined #lisp 2018-01-03T02:28:50Z krwq: pjb: are there any pitfalls with *read-eval* being nil? Assume untrusted data on input 2018-01-03T02:29:20Z pjb: No, no pitfall. 2018-01-03T02:29:46Z krwq: pjb: but with remove-all-macros-characters I assume also comments etc. wouldn't work, right? 2018-01-03T02:29:56Z aeth: pjb: I assume the implementations themselves will still do syscalls at some point? 2018-01-03T02:30:08Z aeth: So everything will eventually be affected but Mezzano 2018-01-03T02:30:12Z pjb: Well, it won't signal an error: (let ((*readtable* (com.informatimago.tools.reader-macro:remove-all-macro-characters (copy-readtable nil)))) (read-from-string "#.(+ 2 3)")) #| --> |#.(+| ; 5 |# 2018-01-03T02:30:30Z pjb: without reader macros, READ only parses symbols, integers and floating-point numbers. 2018-01-03T02:31:11Z pjb: aeth: right. 2018-01-03T02:31:23Z krwq: pjb: I think I'm fine with parsing everything as long as it won't execute anything by default... 2018-01-03T02:31:39Z aeth: pjb: Except Mezzano is usually run in a VM and not bare metal, so even most Mezzano instances are affected 2018-01-03T02:32:03Z pjb: krwq: #9999999999*0 2018-01-03T02:32:28Z krwq: pjb: I didn't realize this was possible - lol 2018-01-03T02:32:43Z pjb: krwq: you should try some fuzzying… 2018-01-03T02:32:59Z fikka quit (Ping timeout: 252 seconds) 2018-01-03T02:35:08Z pjb: krwq: if you have untrusted data to parse, then do that: parse it! Don't use the lisp reader for that; as you can see, the bare lisp reader only gives you symbols, integers and floating-point numbers (and what makes an integer or a symbol is dependent on *read-base*). You can play tricks with reader macros, but it will always be easier to write and use a normal parser function. 2018-01-03T02:36:16Z aeth: My favorite reader macro is #4f(+++++++++[>++++++++<-]>.<+++[>++++++++<-]>+++++.+++++++..+++.>++++[>++++++++<-]>.<<<+++[>--------<-]>.<+++[>++++++++<-]>.+++.------.--------.>>+.<++++++++++.) 2018-01-03T02:36:32Z pjb: Does it read a lambda form? 2018-01-03T02:36:44Z krwq: aeth: what does it do? I'm afraid of running this 2018-01-03T02:36:48Z pjb: (#4f(+++++++++[>++++++++<-]>.<+++[>++++++++<-]>+++++.+++++++..+++.>++++[>++++++++<-]>.<<<+++[>--------<-]>.<+++[>++++++++<-]>.+++.------.--------.>>+.<++++++++++.)) 2018-01-03T02:36:48Z pjb: ? 2018-01-03T02:37:00Z aeth: pjb: That's a good idea 2018-01-03T02:37:10Z aeth: pjb: No, it just directly executes at the moment 2018-01-03T02:37:12Z pjb: krwq: it's brainfuck. 2018-01-03T02:37:34Z krwq: pjb: I know but I assume CL does not read BF by default? 2018-01-03T02:37:35Z Cymew joined #lisp 2018-01-03T02:37:37Z pjb: aeth: it could even take some arguments and return some results, using some convention. 2018-01-03T02:37:46Z pjb: krwq: hence #f. 2018-01-03T02:38:27Z aeth: #4f means it creates a brainfuck machine of size 4. Although technically they should be infinite, it wastes space 2018-01-03T02:38:58Z pjb: THe problem with #f is that it could be defined and used by the implementation. 2018-01-03T02:39:19Z pjb: And on the other hand, !?[]{} are reserved for the user. 2018-01-03T02:39:55Z pjb: Libraries should provide the reader macro functions, not bound reader macro characters. (they may provide a macro to bind them, but let the user do that). 2018-01-03T02:41:03Z pjb: Then there are named-readtables, but I haven't looked into them. 2018-01-03T02:42:29Z Cymew quit (Ping timeout: 268 seconds) 2018-01-03T02:44:32Z aeth: The problem with BF in general is that... it's hard to build data structures that aren't 0-terminated without copying everything and moving the world around with you. So I suspect adding a calling and return convention probably wouldn't be useful. 2018-01-03T02:45:06Z aeth: Turing machines are nearly useless, you want registers or stacks. 2018-01-03T02:45:56Z aeth: I was playing around with a potential string representation, but real strings (as opposed to C-strings) need a length prefix and all that metadata essentially needs to move with the world because Brainfuck only has relative offsets, so you can't leave it behind. 2018-01-03T02:46:37Z aeth: So Lisp-in-BF-in-Lisp would be very slow. 2018-01-03T02:46:51Z shifty joined #lisp 2018-01-03T02:48:32Z aeth: Oh, and good luck with pointers in cons cells in Brainfuck. 2018-01-03T02:49:25Z spoken-tales quit (Remote host closed the connection) 2018-01-03T02:49:50Z spoken-tales joined #lisp 2018-01-03T02:50:40Z Zhivago: Why do real strings need a length prefix? 2018-01-03T02:51:07Z jack_rabbit quit (Ping timeout: 268 seconds) 2018-01-03T02:52:41Z aeth: Are CL strings length prefixed by a fixnum? 2018-01-03T02:59:34Z sayanman quit (Quit: Leaving) 2018-01-03T03:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-03T03:07:05Z jack_rabbit joined #lisp 2018-01-03T03:07:59Z smurfrobot joined #lisp 2018-01-03T03:11:09Z makomo quit (Ping timeout: 264 seconds) 2018-01-03T03:11:17Z safe quit (Read error: Connection reset by peer) 2018-01-03T03:16:39Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-03T03:18:56Z spoken-tales quit (Remote host closed the connection) 2018-01-03T03:19:24Z spoken-tales joined #lisp 2018-01-03T03:22:57Z fikka joined #lisp 2018-01-03T03:24:31Z spoken-tales quit (Remote host closed the connection) 2018-01-03T03:24:59Z spoken-tales joined #lisp 2018-01-03T03:28:32Z fikka quit (Ping timeout: 252 seconds) 2018-01-03T03:31:29Z spoken-tales quit (Remote host closed the connection) 2018-01-03T03:31:54Z spoken-tales joined #lisp 2018-01-03T03:37:57Z spoken-tales quit (Remote host closed the connection) 2018-01-03T03:38:24Z spoken-tales joined #lisp 2018-01-03T03:39:53Z teddy_error quit (Quit: Peace ☮︎) 2018-01-03T03:40:49Z dddddd quit (Remote host closed the connection) 2018-01-03T03:43:31Z spoken-tales quit (Remote host closed the connection) 2018-01-03T03:44:08Z spoken-tales joined #lisp 2018-01-03T03:46:40Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-03T03:48:22Z jack_rabbit joined #lisp 2018-01-03T03:49:52Z jack_rabbit quit (Max SendQ exceeded) 2018-01-03T03:50:05Z spoken-tales quit (Ping timeout: 240 seconds) 2018-01-03T03:51:40Z smurfrobot joined #lisp 2018-01-03T04:00:22Z nika joined #lisp 2018-01-03T04:02:47Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-03T04:04:57Z Oladon quit (Quit: Leaving.) 2018-01-03T04:06:49Z knobo2 joined #lisp 2018-01-03T04:08:12Z jasom: aeth: cl strings, as vectors, are length-aware, but the standard does not specify any specific memory layout 2018-01-03T04:08:52Z khisanth_ quit (Read error: Connection reset by peer) 2018-01-03T04:09:27Z knobo1 quit (Ping timeout: 240 seconds) 2018-01-03T04:10:55Z FreeBirdLjj joined #lisp 2018-01-03T04:11:19Z jack_rabbit joined #lisp 2018-01-03T04:12:09Z jack_rabbit quit (Max SendQ exceeded) 2018-01-03T04:12:11Z dieggsy quit (Ping timeout: 256 seconds) 2018-01-03T04:13:17Z jack_rabbit joined #lisp 2018-01-03T04:16:42Z fikka joined #lisp 2018-01-03T04:17:35Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-03T04:21:19Z fikka quit (Ping timeout: 248 seconds) 2018-01-03T04:23:20Z smurfrobot quit (Remote host closed the connection) 2018-01-03T04:23:21Z damke joined #lisp 2018-01-03T04:23:55Z jmercouris: jasom: Good to hear that the speed is fine 2018-01-03T04:24:08Z jmercouris: jasom: was it just crashing randomly, or with user interaction? 2018-01-03T04:24:18Z jasom: jmercouris: no pattern that I could find 2018-01-03T04:24:41Z jmercouris: damn, that's bad news 2018-01-03T04:24:58Z jmercouris: could you please send a PR with the SBCL changes you made? or somehow convey them to me? 2018-01-03T04:25:27Z jmercouris: It feels like GTK is so unpredictable, maybe I am abusing the API in some ways 2018-01-03T04:25:44Z jmercouris: I mean, I definitely am, just wondering what specifically is causing these crashes 2018-01-03T04:25:59Z jmercouris: Is it me, or cl-cffi-gtk, or cl-webkit or what 2018-01-03T04:26:29Z jasom: https://gist.github.com/jasom/2b1b324a99c1bf0248dfcde364afe162 2018-01-03T04:27:00Z jmercouris: jasom: How did you make that? 2018-01-03T04:27:04Z jmercouris: is there an automated way to do that? 2018-01-03T04:27:18Z jmercouris: or you entered the commands above each snippet? 2018-01-03T04:27:26Z jasom: jmercouris: git diff 2018-01-03T04:27:45Z jmercouris: ok so you just did the commands above each snippet 2018-01-03T04:27:58Z jasom: jmercouris: nope, that's the output of "git diff" 2018-01-03T04:27:59Z jmercouris: I thought maybe there's some cool software that sees which files have changed, does a git diff for each and makes a nice little output 2018-01-03T04:28:18Z jasom: jmercouris: there is, it's called git :) 2018-01-03T04:28:52Z jmercouris: jasom: Yeah, that's one part I never was familiar with 2018-01-03T04:29:11Z jmercouris: let's say I have a branch, and make another branch, how can I produce a patch file with all the diffs between the two branches? 2018-01-03T04:29:21Z smurfrobot joined #lisp 2018-01-03T04:29:36Z jmercouris: furthermore, if such a file exists, when someone sends me such a file, is there a way I can apply it? 2018-01-03T04:30:06Z jasom: jmercouris: git diff 2018-01-03T04:30:15Z jasom: patch < foo.patch 2018-01-03T04:30:29Z jack_rabbit joined #lisp 2018-01-03T04:30:51Z sigjuice: patch -p1 < foo.patch ? 2018-01-03T04:30:53Z jasom forgets if you need to do patch -p1 for the output of a git diff 2018-01-03T04:31:29Z jasom: patch has got to be the most annoying user interface ever 2018-01-03T04:31:51Z jmercouris: Is there a way to do this via magit? 2018-01-03T04:32:08Z jmercouris: I see it 2018-01-03T04:32:11Z jmercouris: seems to be "W" 2018-01-03T04:32:14Z jasom: https://magit.vc/manual/magit/Applying-patches.html 2018-01-03T04:32:23Z jasom looked that up with google and nEXT 2018-01-03T04:32:35Z jmercouris: jasom: Noiiceee :D 2018-01-03T04:32:55Z jmercouris: Wait until the JS actually works 2018-01-03T04:33:39Z jasom: jmercouris: it appears to (at least I see autocompletes on google) 2018-01-03T04:33:53Z jmercouris: jasom: I meant the web-view-execute part of the interface 2018-01-03T04:33:59Z jmercouris: it's supposed to execute parenscript 2018-01-03T04:34:03Z jasom: ah 2018-01-03T04:34:06Z jmercouris: so things like link-hints, should not be working yet 2018-01-03T04:34:24Z jmercouris: any JS that doesn't require piping data back to the lisp program will still work, like scrolling to bottom and top of page, etc 2018-01-03T04:34:34Z jmercouris: there's just a few things left 2018-01-03T04:34:52Z rumbler31: You started with magit instead of git? 2018-01-03T04:35:09Z rumbler31: I did the opposite, I opened magit and was like wuttt, now I know whats going on and I love it 2018-01-03T04:35:12Z jmercouris: rumbler31: Nah, I've used git from the CLI for like 2 years 2018-01-03T04:35:15Z jmercouris: then went to magit 2018-01-03T04:35:17Z smurfrobot quit (Remote host closed the connection) 2018-01-03T04:35:26Z jmercouris: I was using mercurial before that, and CVS before that 2018-01-03T04:36:32Z smurfrobot joined #lisp 2018-01-03T04:38:21Z rumbler31: jmercouris: https://github.com/Osse/git-stuff/blob/master/dots.txt 2018-01-03T04:38:27Z jasom: jmercouris: correction, nEXT is actually stable on sbcl, it's closing a window that causes everything to get corrupted 2018-01-03T04:38:27Z jack_rabbit quit (Ping timeout: 240 seconds) 2018-01-03T04:38:34Z rumbler31: and peep the rest of that repository for enlightenment 2018-01-03T04:38:38Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-03T04:38:42Z jmercouris: jasom: Ah, that's good to know 2018-01-03T04:38:48Z jmercouris: jasom: When you say a window, do you mean a tab? 2018-01-03T04:39:02Z jasom: jmercouris: nope I mean using the WM to close an entire wnidow 2018-01-03T04:39:38Z jasom: jmercouris: the equivalent of clicking the red bubble in the upper-left on OS X 2018-01-03T04:40:02Z jasom thinks it causes a window-destroy event in GTK, but I haven't touched GTK for a while so might be wrong 2018-01-03T04:41:05Z jmercouris: Yes, that causes a window destroy event, which I currently do not handle 2018-01-03T04:41:19Z jmercouris: it's really unstable on CCL for me, maybe i'll try installing sbcl 2018-01-03T04:41:29Z jmercouris: how did you install SBCL? 2018-01-03T04:42:03Z jmercouris: nvm, you are using gentoo :D 2018-01-03T04:42:09Z jasom: jmercouris: apt-get install sbcl 2018-01-03T04:42:18Z jmercouris: is that a recent enough version though? 2018-01-03T04:42:20Z jmercouris: I guess it should be okay 2018-01-03T04:42:28Z jasom: jmercouris: its "a" version 2018-01-03T04:42:34Z jasom: you can always use it to build the latest if needed 2018-01-03T04:42:47Z smurfrobot quit (Remote host closed the connection) 2018-01-03T04:43:00Z jmercouris: one uses SBCL to build SBCL? 2018-01-03T04:43:03Z sigjuice: jmercouris I tried the nEXT gtk branch as well, but didn't get very far. I have ubuntu 17.10, Clozure Common Lisp Version 1.11.5/v1.11.5 (LinuxX8664). After (next:start), I got Error: null-pointer in parse-g-param-spec While executing: GOBJECT:PARSE-G-PARAM-SPEC, in process listener(1). 2018-01-03T04:43:19Z jmercouris: sigjuice: Yeah, I figured that out 2018-01-03T04:43:23Z jasom: jmercouris: it should build with any conforming CL implementation 2018-01-03T04:43:26Z jmercouris: sigjuice: Please pull again, that is a concurrency issue 2018-01-03T04:43:41Z jasom: ah, that's the issue I got under ccl 2018-01-03T04:43:50Z jmercouris: Yeah, so what happens is 2018-01-03T04:43:57Z jmercouris: it will call the next function which is (set-visible-view) 2018-01-03T04:44:06Z jmercouris: but the code to create the interface has not returned yet 2018-01-03T04:44:17Z jmercouris: meaning it tries to set the visible view on the interface object which is not yet ready 2018-01-03T04:44:57Z sigjuice: jmercouris "git pull" says Already up-to-date. 7b0e6bedd7f14fc0fcbf6ae97a75ab57b4885a11 is the commit I'm at. 2018-01-03T04:45:03Z jmercouris: So I wrapped set-visible-view in gtk:within-main-loop so the interface would definitely be intialized before that could code run (as they would be running on the same thread) 2018-01-03T04:45:15Z jmercouris: huh, that's strange then that you still get that 2018-01-03T04:45:42Z smurfrobot joined #lisp 2018-01-03T04:45:42Z jmercouris: runs on my machine every time :\ 2018-01-03T04:45:58Z jasom: jmercouris: just did a pull and it still happens 2018-01-03T04:46:16Z jmercouris: Is there anymore information you can give me? 2018-01-03T04:46:28Z jmercouris: E.g. like a list of restarts what call causes it? 2018-01-03T04:46:45Z jasom: jmercouris: have you considered just running all your code in the gtk main loop? 2018-01-03T04:47:04Z jmercouris: jasom: I have considered that, I will probably wrap all interface calls in there, yes 2018-01-03T04:47:19Z jmercouris: just to avoid weird issues 2018-01-03T04:47:46Z turkja joined #lisp 2018-01-03T04:47:52Z jasom: The following is sufficient to reproduce for me: ccl -e '(asdf:load-asd "'"$PWD/next/next.asd"'")' -e '(asdf:load-system "next/gtk")' -e '(next:start)' 2018-01-03T04:48:17Z jmercouris: are you running that as a one liner? 2018-01-03T04:48:22Z jasom: jmercouris: yeah 2018-01-03T04:48:26Z jmercouris: maybe it needs time to load before you call next:start 2018-01-03T04:48:35Z jasom: jmercouris: then you have a bug 2018-01-03T04:48:39Z jmercouris: I always wait like 10 seconds or so because it would crash on me when I wouldn't 2018-01-03T04:48:54Z jmercouris: I meant in between loading the system and starting 2018-01-03T04:48:56Z jasom: jmercouris: any time waiting fixes a bug, you haven't fixed the bug 2018-01-03T04:49:03Z jmercouris: I have a feeling the bug is upstream 2018-01-03T04:49:10Z jmercouris: it doesn't happen in the Cocoa version 2018-01-03T04:51:03Z smurfrobot quit (Remote host closed the connection) 2018-01-03T04:51:18Z jack_rabbit joined #lisp 2018-01-03T04:51:20Z sigjuice: I tried (ql:quickload :next/gtk) and then (next:start). I'm not at all familiar with gtk, but I do get a tiny white window with the title nEXT 2018-01-03T04:51:36Z jmercouris: hmm yeah, that should be working 2018-01-03T04:51:44Z jmercouris: try pressing C-l and loading a web page 2018-01-03T04:51:58Z jmercouris: or C-x b and see if you can get any completions for a buffer 2018-01-03T04:52:30Z schoppenhauer quit (Ping timeout: 272 seconds) 2018-01-03T04:54:04Z sigjuice: C-x b and C-l do nothing 2018-01-03T04:54:15Z schoppenhauer joined #lisp 2018-01-03T04:54:53Z jmercouris: sigjuice: :\ hmm let me try running SBCL and see how many issues are maybe CCL specific to some lib interactions 2018-01-03T04:56:15Z smurfrobot joined #lisp 2018-01-03T04:56:22Z sigjuice: I can try the latest sbcl too, with jasom's patch. What version of ccl and Linux are you running? 2018-01-03T04:56:52Z jmercouris: CCL: Version 1.11.5/v1.11.5 (LinuxX8664) 2018-01-03T04:57:30Z smurfrobot quit (Remote host closed the connection) 2018-01-03T04:57:38Z jmercouris: I'm running Ubuntu Server 16.04.3 LTX 2018-01-03T04:57:44Z jasom: Is g_idle_add_full thread safe? 2018-01-03T04:57:45Z jmercouris: s/LTX/LTS 2018-01-03T04:59:49Z smurfrobot joined #lisp 2018-01-03T05:01:05Z beach: Good morning everyone! 2018-01-03T05:01:15Z smurfrobot quit (Remote host closed the connection) 2018-01-03T05:01:16Z damke_ joined #lisp 2018-01-03T05:01:58Z jmercouris: Good morning 2018-01-03T05:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-03T05:04:42Z jasom: jmercouris: you're creating UI all over the place outside of the GTK main thread. That's totally bogus 2018-01-03T05:05:11Z jmercouris: jasom: Yes I am, indeed 2018-01-03T05:05:17Z jmercouris: jasom: Do you think that's causing crashes? 2018-01-03T05:05:28Z jasom: I would fix that before investigating the crashes 2018-01-03T05:05:45Z jasom: there's a non-trivial chance that it is, and it's obviously wrong 2018-01-03T05:06:04Z jmercouris: Yes of course, I'll make a push as well with some CCL specific changes one sec 2018-01-03T05:07:46Z sigjuice: Just got sbcl-1.4.3, but (ql:quickload :next/gtk) complains about Unable to load any of the alternatives: ("libsqlite3.so.0" "libsqlite3.so"). Weird that ccl didn't complain? 2018-01-03T05:08:09Z jmercouris: try changing that to a 4 in the source code 2018-01-03T05:08:30Z jmercouris: if you got cl-webkit from my fork I made it to a 3 so it would work with ubuntu 2018-01-03T05:08:43Z jmercouris: wait, sorry libsqlite, different lib, I'm tired 2018-01-03T05:09:16Z jmercouris: and yes, I need to list that as a dependency for linux at any rate, what should I put in the instructions? 2018-01-03T05:09:20Z sigjuice: my bad. I didn't realize that I downloaded the 32-bit version of sbcl. 2018-01-03T05:09:25Z jmercouris: "Install libsqlitedev package"? 2018-01-03T05:10:55Z jrm left #lisp 2018-01-03T05:11:03Z fikka joined #lisp 2018-01-03T05:11:04Z sigjuice: trying the 64-bit version, which happens to be 1.4.2. I just clicked on the one that said "newest" here http://sbcl.org/platform-table.html assuming it would be the right one :p 2018-01-03T05:11:04Z jasom: jmercouris: within-main-loop provides no sequencing 2018-01-03T05:11:24Z jasom: jmercouris: e.g. (gtk:within-main-loop (foo)) (gtk:within-main-loop (bar)) either foo or bar could be called first 2018-01-03T05:11:57Z jmercouris: jasom: Yeah, but logically speaking, why would it schedule bar before foo? 2018-01-03T05:12:07Z jasom: jmercouris: because it uses a stack? 2018-01-03T05:12:18Z jasom: jmercouris: if it uses a stack then there will always be a race 2018-01-03T05:12:32Z sigjuice: who is "it" in this context? 2018-01-03T05:12:35Z jmercouris: If you had foo, then bar, foo will begin execution probably some cycles before bar gets added to the stack 2018-01-03T05:12:51Z jmercouris: I assume too much 2018-01-03T05:12:58Z jasom: jmercouris: yes you assume too much. 2018-01-03T05:13:06Z jmercouris: Is there not a way to make this not so asynchronous? 2018-01-03T05:13:27Z jasom: jmercouris: the usual way is to actually do the work inside the main loop rather than doing a bunch of asynchronous requests 2018-01-03T05:13:58Z jasom: jmercouris: you could write your own version of within-main-loop that queues up work and deschedules itself once the queue is empty I suppose 2018-01-03T05:14:23Z jmercouris: I also have one other issue related to this 2018-01-03T05:14:45Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-01-03T05:14:52Z jmercouris: webkit2:webkit-web-view-run-javascript has a callback you pass that will get fired upon completion 2018-01-03T05:15:13Z fikka quit (Ping timeout: 248 seconds) 2018-01-03T05:15:26Z jmercouris: my web-view-execute function needs to be synchronous though, so I have to set up some block that waits for that callback and retrieves the js return value 2018-01-03T05:16:04Z jmercouris: The problem is, the cocoa code is all synchronous, and the gtk code is not, I can't have two different models using the same interface, not easily at least 2018-01-03T05:16:07Z z3t0 joined #lisp 2018-01-03T05:16:08Z z3t0 quit (Remote host closed the connection) 2018-01-03T05:16:24Z z3t0 joined #lisp 2018-01-03T05:16:29Z jasom: jmercouris: this is why cross-platform GUIs are hard 2018-01-03T05:17:02Z Zhivago: Hurrah for promizes. 2018-01-03T05:17:06Z sigjuice: jmercouris I was able to load a web page using sbcl-1.4.2 2018-01-03T05:17:08Z Zhivago: er, promises. 2018-01-03T05:17:17Z jmercouris: sigjuice: Yay!!! :D 2018-01-03T05:17:28Z jmercouris: Zhivago: I will not go down that dark dark road 2018-01-03T05:17:31Z jasom: Zhivago: I'm not sure if the GTK main loop runs in a lisp thread; if so, lparallel to the rescue! 2018-01-03T05:18:05Z jasom: jmercouris: "dark dark road" you're controlling a GTK application from a separate thread, promises light up your road... 2018-01-03T05:18:13Z jmercouris: I like the idea of a within-main-loop work queue, I don't get a callback though for all GTK things I fire off 2018-01-03T05:18:31Z sigjuice: but I am seeing a bunch of messages like this. Memory pressure relief: Total: res = 13537280/11018240/-2519040, res+swap = 9592832/7073792/-2519040 and (sbcl:77596): Gtk-CRITICAL **: gtk_tree_path_to_string: assertion 'path != NULL' failed and libva error: va_getDriverName() failed with unknown libva error,driver_name=(null) 2018-01-03T05:18:39Z Zhivago: Use the promises to tie asynchronous operations back to synchronous operations. 2018-01-03T05:18:55Z jmercouris: Zhivago: Can you illustrate an example for me please? 2018-01-03T05:18:58Z jasom: jmercouris: a promise converts asynchronous to synchronous with almost zero code 2018-01-03T05:19:06Z jmercouris: in CL that is 2018-01-03T05:19:27Z Zhivago: Not sure what the latest and greatest for promises in CL is. 2018-01-03T05:20:05Z jasom: pseud-cl: (let ((x (promise)) (function-that-takes-callback (lambda () (fulfil x RESULT))) (force x)) 2018-01-03T05:20:06Z Zhivago: But it should look something like (await (promise (lambda (done) (async-blah done)))) 2018-01-03T05:20:08Z jmercouris: sigjuice: No idea wht the driver name issue/memory pressure is 2018-01-03T05:20:31Z jmercouris: sigjuice: The path !=null assertion refers to a check I do when there are no completions, it can't find a path, therfore can't highlight the first elemtn 2018-01-03T05:20:33Z FreeBirdLjj joined #lisp 2018-01-03T05:20:36Z jmercouris: within the gtk tree view 2018-01-03T05:20:41Z jasom: lparallel has good promises 2018-01-03T05:20:54Z jasom will try that real quick 2018-01-03T05:21:53Z sigjuice: jmercouris calling it a night, but I will check back here for updates and be happy to test things out 2018-01-03T05:22:06Z jmercouris: sigjuice: Thank you for your help in testing! 2018-01-03T05:22:09Z jmercouris: goodnight 2018-01-03T05:22:49Z jmercouris: jasom: feel free to make a PR, any help is appreciated 2018-01-03T05:23:10Z jmercouris: I've also applied your patch already 2018-01-03T05:24:31Z mint joined #lisp 2018-01-03T05:24:41Z smurfrobot joined #lisp 2018-01-03T05:25:13Z jack_rabbit joined #lisp 2018-01-03T05:27:07Z smurfrobot quit (Remote host closed the connection) 2018-01-03T05:27:46Z mlau quit (Ping timeout: 260 seconds) 2018-01-03T05:27:59Z sonologico joined #lisp 2018-01-03T05:30:27Z jmercouris: it seems to run so much faster in sbcl 2018-01-03T05:30:31Z jmercouris: or maybe I am just imagining that 2018-01-03T05:32:47Z jmercouris: jasom: just to confirm, you are referring to this: https://github.com/lmj/lparallel yeah? 2018-01-03T05:32:57Z jasom: jmercouris: yes 2018-01-03T05:33:13Z orivej quit (Ping timeout: 256 seconds) 2018-01-03T05:33:22Z jasom: jmercouris: I've made a synchronous version of within-main-loop already 2018-01-03T05:33:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T05:35:04Z jmercouris: Nice! 2018-01-03T05:36:57Z pierpa quit (Quit: Page closed) 2018-01-03T05:38:41Z jasom: jmercouris: LPT uiop:quit is portable 2018-01-03T05:38:53Z milanj quit (Quit: This computer has gone to sleep) 2018-01-03T05:38:56Z jasom: jmercouris: that looks like the only thing :use :ccl was being used for 2018-01-03T05:39:44Z z3t0 quit (Remote host closed the connection) 2018-01-03T05:39:59Z jmercouris: jasom: It was being used also for some objc- %null-ptr% things in cocoa/utility.lisp 2018-01-03T05:41:03Z qquack joined #lisp 2018-01-03T05:41:31Z qquack quit (Client Quit) 2018-01-03T05:48:02Z jmercouris: jasom: I'm going to sleep for now too, thanks for your help! 2018-01-03T05:52:33Z jmercouris quit (Ping timeout: 264 seconds) 2018-01-03T05:56:02Z jasom: hmm libwebkit2 is listed twice on list-foreign-libraries I wonder if that's causing issues 2018-01-03T05:58:18Z smurfrobot joined #lisp 2018-01-03T05:59:07Z spudinski left #lisp 2018-01-03T06:02:29Z JonSmith joined #lisp 2018-01-03T06:03:38Z parjanya quit (Ping timeout: 252 seconds) 2018-01-03T06:04:32Z fikka joined #lisp 2018-01-03T06:06:56Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-03T06:07:50Z jasom has nEXT stable on ccl and sbcl now 2018-01-03T06:08:16Z jasom: ccl *is* slower which is why it was failing. Also there is a bug upstream in cl-cffi-gtk 2018-01-03T06:08:38Z damke_ joined #lisp 2018-01-03T06:08:42Z jasom: unsurprisingly you can't do (when foreign-ptr ...) as a null check 2018-01-03T06:09:08Z fikka quit (Ping timeout: 252 seconds) 2018-01-03T06:11:13Z Tko quit (Ping timeout: 248 seconds) 2018-01-03T06:14:37Z shka joined #lisp 2018-01-03T06:15:07Z flip214_ is now known as flip214 2018-01-03T06:16:42Z parjanya joined #lisp 2018-01-03T06:16:48Z krwq quit (Remote host closed the connection) 2018-01-03T06:17:03Z gravicappa joined #lisp 2018-01-03T06:18:05Z jasom: minion: memo for jmercouris: https://github.com/crategus/cl-cffi-gtk/pull/56 <-- this fixes the ccl issue; I'll post my synchronous gtk solution later tonight 2018-01-03T06:18:05Z minion: Remembered. I'll tell jmercouris when he/she/it next speaks. 2018-01-03T06:18:29Z LocaMocha joined #lisp 2018-01-03T06:18:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T06:33:01Z vlatkoB joined #lisp 2018-01-03T06:33:20Z damke joined #lisp 2018-01-03T06:38:45Z damke quit (Ping timeout: 264 seconds) 2018-01-03T06:38:49Z mishoo joined #lisp 2018-01-03T06:50:46Z dec0n joined #lisp 2018-01-03T06:59:02Z fikka joined #lisp 2018-01-03T07:03:35Z fikka quit (Ping timeout: 252 seconds) 2018-01-03T07:05:33Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-03T07:11:08Z smurfrobot quit (Remote host closed the connection) 2018-01-03T07:17:46Z omilu joined #lisp 2018-01-03T07:38:07Z smurfrobot joined #lisp 2018-01-03T07:39:36Z mishoo quit (Ping timeout: 260 seconds) 2018-01-03T07:41:34Z rippa joined #lisp 2018-01-03T07:42:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-03T07:45:16Z yeticry quit (Ping timeout: 268 seconds) 2018-01-03T07:47:09Z knobo2 quit (Ping timeout: 264 seconds) 2018-01-03T07:47:11Z yeticry joined #lisp 2018-01-03T07:50:19Z fouric quit (Quit: WeeChat 1.8) 2018-01-03T07:50:25Z schoppenhauer quit (Ping timeout: 248 seconds) 2018-01-03T07:51:08Z FreeBird_ joined #lisp 2018-01-03T07:51:21Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-03T07:52:32Z fouric joined #lisp 2018-01-03T07:53:00Z jdz quit (Ping timeout: 272 seconds) 2018-01-03T07:53:04Z fikka joined #lisp 2018-01-03T07:53:10Z fouric quit (Client Quit) 2018-01-03T07:53:49Z fouric joined #lisp 2018-01-03T07:56:36Z jdz joined #lisp 2018-01-03T07:56:43Z mishoo joined #lisp 2018-01-03T07:58:13Z fikka quit (Ping timeout: 268 seconds) 2018-01-03T07:59:53Z smurfrobot joined #lisp 2018-01-03T08:01:12Z smurfrobot quit (Remote host closed the connection) 2018-01-03T08:01:26Z Cymew joined #lisp 2018-01-03T08:06:36Z smurfrobot joined #lisp 2018-01-03T08:07:02Z DeadTrickster joined #lisp 2018-01-03T08:08:55Z throwprans joined #lisp 2018-01-03T08:08:59Z throwprans: Hello 2018-01-03T08:09:05Z throwprans: looking at this 2018-01-03T08:09:06Z throwprans: http://www.lispworks.com/documentation/HyperSpec/Body/f_format.htm 2018-01-03T08:09:11Z throwprans: How can I tell what does passing t means? 2018-01-03T08:09:35Z DeadTrickster_ quit (Ping timeout: 252 seconds) 2018-01-03T08:11:01Z Shinmera: clhs glossary/stream designator 2018-01-03T08:11:01Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_s.htm#stream_designator 2018-01-03T08:12:31Z throwprans: Okay, I understand this, I think I also understand the concept of designator 2018-01-03T08:12:45Z throwprans: But from that doc, it just says nothing about what t is? or am i missing something obvious here? 2018-01-03T08:12:51Z throwprans: how can I tell if t is not for true? 2018-01-03T08:13:43Z jdz: clhs t 2018-01-03T08:13:43Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm 2018-01-03T08:14:45Z jdz: http://www.lispworks.com/documentation/HyperSpec/Body/v_t.htm 2018-01-03T08:15:09Z throwprans: yeah, cool. 2018-01-03T08:15:15Z throwprans: i am none the wiser. 2018-01-03T08:15:23Z damke joined #lisp 2018-01-03T08:15:26Z trittweiler joined #lisp 2018-01-03T08:16:05Z throwprans: "The symbol t is also sometimes used for other purposes as well. For example, as the name of a class, as a designator (e.g., a stream designator) or as a special symbol for some syntactic reason (e.g., in case and typecase to label the otherwise-clause)." 2018-01-03T08:16:07Z throwprans: Okay, I get that. 2018-01-03T08:16:23Z throwprans: But how do I find out what it means in say some-function-you-never-head-of? 2018-01-03T08:16:28Z jdz: throwprans: T is for "true", and functions that accept stream designators treat T as *terminal-io*. 2018-01-03T08:16:59Z jdz: FORMAT is specified to accept a "stream designator". 2018-01-03T08:17:09Z shka quit (Ping timeout: 264 seconds) 2018-01-03T08:17:14Z Shinmera: throwprans: You look at the documentation 2018-01-03T08:17:16Z beach: Shinmera: I think FORMAT is different in that it doesn't take ordinary stream designators. 2018-01-03T08:17:46Z throwprans: Shinmera: Yeah, and looking at the FORMAT docs, I don't understand how to read it. -_- 2018-01-03T08:17:49Z throwprans: That is my problem. 2018-01-03T08:18:13Z throwprans: It says "destination---nil, t, a stream, or a string with a fill pointer." 2018-01-03T08:18:22Z beach: clhs 22.3 2018-01-03T08:18:22Z specbot: Formatted Output: http://www.lispworks.com/reference/HyperSpec/Body/22_c.htm 2018-01-03T08:18:24Z throwprans: For all that I care, passing t could be stderr. 2018-01-03T08:18:33Z beach: "If destination is t, the output is sent to standard output." 2018-01-03T08:18:44Z Shinmera: Ah, 22.3, that's the one 2018-01-03T08:18:48Z jdz: Oh, bugger, indeed, FORMAT does not care about stream designators. 2018-01-03T08:18:54Z beach: throwprans: See that link. 2018-01-03T08:18:56Z Shinmera: I remembered that it was a special kind of stream designator 2018-01-03T08:19:32Z knobo2 joined #lisp 2018-01-03T08:19:47Z throwprans: beach: That is much better, how do I make sure I land on the "extend" version of docs and not here http://www.lispworks.com/documentation/HyperSpec/Body/f_format.htm? 2018-01-03T08:19:50Z beach: throwprans: The only way to find out what T might mean, is to read the documentation for the function that you are wondering about. 2018-01-03T08:19:58Z jdz: That's why I was surprised to read T -> *terminal-io*, and not *standard-output*. Should pay more attention to my cognitive dissonance. 2018-01-03T08:20:01Z Shinmera: throwprans: You click on the link to 22.3 there. 2018-01-03T08:20:08Z smurfrobot quit (Remote host closed the connection) 2018-01-03T08:20:25Z throwprans: I searched the web, I got here http://www.lispworks.com/documentation/HyperSpec/Body/f_format.htm 2018-01-03T08:20:27Z Shinmera: Alternatively, redirection services like l1sp.org also accept chapter numbers. 2018-01-03T08:20:27Z throwprans: I was lost. 2018-01-03T08:20:37Z beach: But now you are found. 2018-01-03T08:20:42Z throwprans: 22.3 is something that I don't know. :P 2018-01-03T08:20:53Z throwprans: I searched for PRINT hyperspec 2018-01-03T08:20:56Z throwprans: and that was the result. 2018-01-03T08:20:58Z throwprans: And so my confusion. 2018-01-03T08:21:09Z beach: All cleared up now. 2018-01-03T08:21:29Z throwprans: Yeah, now I know that from 22.3 I can go to the f_format doc, still not sure about the other way around 2018-01-03T08:21:35Z damke_ joined #lisp 2018-01-03T08:21:37Z Vicfred quit (Quit: Leaving) 2018-01-03T08:21:50Z throwprans: I am asking because I might end up the same place again and again for different functions 2018-01-03T08:21:52Z beach: Follow Shinmera's advice. 2018-01-03T08:21:55Z Shinmera: "For details on how the control-string is interpreted, see Section 22.3 (Formatted Output). 2018-01-03T08:21:58Z Shinmera: " 2018-01-03T08:22:18Z damke quit (Ping timeout: 246 seconds) 2018-01-03T08:22:25Z beach: throwprans: We will deal with that when you get there. 2018-01-03T08:23:01Z throwprans: blimey for missing the obvious. 2018-01-03T08:23:19Z throwprans: beach: Alright, thank you madam/sir. 2018-01-03T08:23:20Z beach: throwprans: The Common Lisp HyperSpec is not meant to be documentation for the application programmer. For that, you are better off reading a book. The Common Lisp HyperSpec is a specification meant for people implementing Common Lisp systems. 2018-01-03T08:23:43Z throwprans: I am reading the PCL. 2018-01-03T08:23:55Z nonlinear joined #lisp 2018-01-03T08:23:55Z Shinmera: Even despite that it is unfortunate that some of the links between pages are not well established 2018-01-03T08:24:03Z throwprans: But I like to understand how stuff works, so like to jump to the man/reference/whatever page when I can. 2018-01-03T08:24:14Z beach: The meaning of T should be documented in PCL. 2018-01-03T08:24:28Z throwprans: It probably is. 2018-01-03T08:24:34Z throwprans: Man is prone to forgetfulness. 2018-01-03T08:24:58Z throwprans: back to lisping I go. 2018-01-03T08:25:02Z throwprans: cheers everyone 2018-01-03T08:25:05Z beach: Shinmera: I agree. Maybe CLUS can fix some of that. 2018-01-03T08:25:12Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-03T08:27:31Z ech042 joined #lisp 2018-01-03T08:28:26Z varjag joined #lisp 2018-01-03T08:28:36Z nonlinear quit (Quit: WeeChat 1.9.1) 2018-01-03T08:30:26Z Fare: That ASDF bug blows my mind. I have to page back in all the ASDF call graph in this ugly ugly part of ASDF. 2018-01-03T08:30:53Z Fare: I believe the fix will be simple, though, when understood. 2018-01-03T08:31:33Z Fare: It's about the notion of primary-system not being a matter of name (since there are misnamed secondary systems) but of what asd file you were loaded in. 2018-01-03T08:32:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T08:32:38Z ryanbw joined #lisp 2018-01-03T08:35:08Z Murii joined #lisp 2018-01-03T08:36:25Z d4ryus1 is now known as d4ryus 2018-01-03T08:37:06Z damke_ joined #lisp 2018-01-03T08:37:58Z Xal quit (Ping timeout: 272 seconds) 2018-01-03T08:40:55Z Xal joined #lisp 2018-01-03T08:43:56Z jarwin joined #lisp 2018-01-03T08:44:05Z jarwin is now known as Jarwin 2018-01-03T08:44:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T08:45:52Z makomo joined #lisp 2018-01-03T08:47:56Z smurfrobot joined #lisp 2018-01-03T08:48:09Z fikka joined #lisp 2018-01-03T08:48:51Z smurfrobot quit (Remote host closed the connection) 2018-01-03T08:51:44Z drcode quit (Ping timeout: 248 seconds) 2018-01-03T08:52:17Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-03T08:53:32Z throwprans quit (Quit: Page closed) 2018-01-03T08:53:43Z hiroaki joined #lisp 2018-01-03T08:54:20Z Jarwin joined #lisp 2018-01-03T08:55:16Z BitPuffin|osx joined #lisp 2018-01-03T08:55:49Z hiroaki quit (Client Quit) 2018-01-03T08:56:14Z hiroaki joined #lisp 2018-01-03T08:57:14Z _cosmonaut_ joined #lisp 2018-01-03T09:02:38Z smurfrobot joined #lisp 2018-01-03T09:03:52Z smurfrobot quit (Remote host closed the connection) 2018-01-03T09:09:26Z damke_ joined #lisp 2018-01-03T09:10:58Z hhdave joined #lisp 2018-01-03T09:11:14Z smurfrobot joined #lisp 2018-01-03T09:12:34Z smurfrobot quit (Remote host closed the connection) 2018-01-03T09:15:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T09:17:21Z smurfrobot joined #lisp 2018-01-03T09:17:26Z eli joined #lisp 2018-01-03T09:17:26Z eli quit (Changing host) 2018-01-03T09:17:26Z eli joined #lisp 2018-01-03T09:17:39Z hexfive quit (Quit: WeeChat 1.9.1) 2018-01-03T09:20:01Z smurfrobot quit (Remote host closed the connection) 2018-01-03T09:22:42Z araujo joined #lisp 2018-01-03T09:28:03Z smurfrobot joined #lisp 2018-01-03T09:30:45Z milanj joined #lisp 2018-01-03T09:36:21Z fortitude_ quit (Ping timeout: 264 seconds) 2018-01-03T09:41:02Z schoppenhauer joined #lisp 2018-01-03T09:46:09Z fikka quit (Ping timeout: 248 seconds) 2018-01-03T09:49:43Z fikka joined #lisp 2018-01-03T09:50:16Z smurfrobot quit (Remote host closed the connection) 2018-01-03T09:51:48Z damke_ joined #lisp 2018-01-03T09:55:35Z araujo quit (Ping timeout: 256 seconds) 2018-01-03T10:02:06Z Younder joined #lisp 2018-01-03T10:03:06Z JonSmith joined #lisp 2018-01-03T10:07:29Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-03T10:08:01Z random-nick joined #lisp 2018-01-03T10:08:23Z araujo joined #lisp 2018-01-03T10:12:21Z smurfrobot joined #lisp 2018-01-03T10:14:17Z Murii quit (Ping timeout: 250 seconds) 2018-01-03T10:14:58Z smurfrobot quit (Remote host closed the connection) 2018-01-03T10:17:19Z hajovonta joined #lisp 2018-01-03T10:17:22Z hajovonta: hello 2018-01-03T10:20:56Z smurfrobot joined #lisp 2018-01-03T10:22:42Z t0adst00l joined #lisp 2018-01-03T10:24:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T10:24:39Z mlau joined #lisp 2018-01-03T10:25:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-03T10:26:51Z Younder: If you have a question, just state it. 2018-01-03T10:28:33Z thinkpad joined #lisp 2018-01-03T10:32:44Z araujo quit (Quit: Leaving) 2018-01-03T10:32:59Z FreeBird_ quit (Remote host closed the connection) 2018-01-03T10:37:10Z smurfrobot joined #lisp 2018-01-03T10:37:35Z beach: Hello hajovonta. 2018-01-03T10:38:43Z EvW1 joined #lisp 2018-01-03T10:40:30Z smurfrobot quit (Remote host closed the connection) 2018-01-03T10:41:47Z norserob joined #lisp 2018-01-03T10:44:16Z anaumov joined #lisp 2018-01-03T10:44:43Z turkja quit (Ping timeout: 268 seconds) 2018-01-03T10:53:37Z mgsk joined #lisp 2018-01-03T10:53:48Z mgsk left #lisp 2018-01-03T10:54:06Z mgsk joined #lisp 2018-01-03T10:54:33Z nika quit 2018-01-03T10:58:28Z Cymew quit (Remote host closed the connection) 2018-01-03T11:01:01Z flip214b joined #lisp 2018-01-03T11:01:46Z flip214b: there's an "libapache2-mod-lisp" package, does anybody have experience with it? is that better/faster than using mod_proxy and hunchentoot? 2018-01-03T11:01:54Z Younder quit (Quit: Leaving) 2018-01-03T11:03:42Z FreeBirdLjj joined #lisp 2018-01-03T11:05:09Z jamtho_ joined #lisp 2018-01-03T11:07:01Z fe[nl]ix: flip214b: no, it's old and unmaintained 2018-01-03T11:08:41Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-03T11:08:46Z fikka quit (Ping timeout: 268 seconds) 2018-01-03T11:11:10Z FreeBirdLjj joined #lisp 2018-01-03T11:11:11Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-03T11:12:18Z smurfrobot joined #lisp 2018-01-03T11:13:34Z smurfrobot quit (Remote host closed the connection) 2018-01-03T11:13:44Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-03T11:15:06Z m00natic joined #lisp 2018-01-03T11:17:29Z Xach: flip214b: http://xach.livejournal.com/144475.html 2018-01-03T11:17:52Z milanj quit (Quit: This computer has gone to sleep) 2018-01-03T11:18:55Z flip214b: fe[nl]ix: okay, so hunchentoot + mod_proxy is the recommended way? 2018-01-03T11:19:08Z fikka joined #lisp 2018-01-03T11:19:11Z flip214b: Xach: thanks, already knew that from the wikipedia page ;) 2018-01-03T11:20:48Z Xach: ooukkei 2018-01-03T11:20:59Z Xach: flip214b: i use nginx and proxying 2018-01-03T11:22:01Z flip214b: thanks a lot for the quick answer! 2018-01-03T11:24:13Z flip214b quit (Quit: Page closed) 2018-01-03T11:25:27Z prometheus_falli joined #lisp 2018-01-03T11:25:42Z t0adst00l quit (Ping timeout: 272 seconds) 2018-01-03T11:34:03Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-03T11:38:08Z smurfrobot joined #lisp 2018-01-03T11:38:51Z jamtho_ quit (Ping timeout: 240 seconds) 2018-01-03T11:38:57Z wxie joined #lisp 2018-01-03T11:39:16Z spacepluk quit (Quit: ZNC - http://znc.in) 2018-01-03T11:39:20Z attila_lendvai joined #lisp 2018-01-03T11:39:20Z attila_lendvai quit (Changing host) 2018-01-03T11:39:20Z attila_lendvai joined #lisp 2018-01-03T11:45:13Z ykoda joined #lisp 2018-01-03T11:45:14Z spacepluk joined #lisp 2018-01-03T11:45:26Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-03T11:49:05Z smurfrobot quit (Remote host closed the connection) 2018-01-03T11:49:30Z JonSmith joined #lisp 2018-01-03T11:50:34Z turkja joined #lisp 2018-01-03T11:52:46Z FreeBirdLjj joined #lisp 2018-01-03T11:52:57Z fluke` quit (Ping timeout: 240 seconds) 2018-01-03T11:53:08Z JuanDaugherty joined #lisp 2018-01-03T11:54:24Z JonSmith quit (Ping timeout: 268 seconds) 2018-01-03T11:54:48Z smurfrobot joined #lisp 2018-01-03T11:55:39Z smurfrobot quit (Remote host closed the connection) 2018-01-03T12:00:33Z damke_ joined #lisp 2018-01-03T12:05:35Z mlau quit (Ping timeout: 240 seconds) 2018-01-03T12:14:22Z dddddd joined #lisp 2018-01-03T12:15:12Z EvW1 quit (Ping timeout: 272 seconds) 2018-01-03T12:16:07Z dcluna quit (Ping timeout: 256 seconds) 2018-01-03T12:18:10Z dcluna joined #lisp 2018-01-03T12:19:23Z markong joined #lisp 2018-01-03T12:23:59Z Cymew joined #lisp 2018-01-03T12:28:05Z Jarwin quit (Ping timeout: 240 seconds) 2018-01-03T12:29:05Z shifty quit (Ping timeout: 240 seconds) 2018-01-03T12:29:26Z makomo_ joined #lisp 2018-01-03T12:31:59Z makomo quit (Ping timeout: 248 seconds) 2018-01-03T12:32:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T12:32:33Z wxie quit (Ping timeout: 248 seconds) 2018-01-03T12:33:14Z mgsk: What's the "best" / "lisponic" way to do the equivalent of (in python) `for idx, elt in enumerate(list)'? 2018-01-03T12:34:12Z mgsk: Something maybe like (loop :for elt :in list :for idx :in ...) ? 2018-01-03T12:34:14Z Xach: mgsk: (loop for i from 0 for elt in list do ...) 2018-01-03T12:34:40Z mgsk: The colons are unnecessary? 2018-01-03T12:35:07Z Xach: mgsk: they are not necessary. they are harmless and a matter of preference (mostly) 2018-01-03T12:35:42Z mgsk: (mostly) how? 2018-01-03T12:36:05Z Shinmera: The difference is where the symbols are interned. 2018-01-03T12:36:20Z Shinmera: Which is mostly irrelevant nowadays as the symbols are few and the memory is plenty. 2018-01-03T12:37:51Z KZiemian joined #lisp 2018-01-03T12:41:04Z KZiemian: phoe: are you here? 2018-01-03T12:41:27Z KZiemian: althrough Christmas are behind us 2018-01-03T12:41:33Z smurfrobot joined #lisp 2018-01-03T12:41:39Z KZiemian: you can post your wish about CLUS 2018-01-03T12:41:47Z KZiemian: here 2018-01-03T12:41:48Z KZiemian: https://github.com/phoe/clus-data/issues 2018-01-03T12:41:54Z phoe: KZiemian: yes, I'm working at the moment though 2018-01-03T12:42:10Z gtuser joined #lisp 2018-01-03T12:42:10Z phoe: still mostly doing things in my real life. 2018-01-03T12:42:49Z KZiemian: phoe: not problem 2018-01-03T12:43:47Z Murii joined #lisp 2018-01-03T12:44:16Z JuanDaugherty: what is CLUS? 2018-01-03T12:44:17Z KZiemian: phoe: I just want be sure, that you get my information 2018-01-03T12:45:05Z JuanDaugherty: the spec I take it 2018-01-03T12:45:33Z KZiemian: JuanDaugherty: this is one year old, partly outdated manifesto https://github.com/phoe/clus-data/blob/master/paper.pdf 2018-01-03T12:46:09Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-03T12:46:10Z KZiemian: phoe: and lack of respons sound worst than any message 2018-01-03T12:46:16Z JuanDaugherty: i c 2018-01-03T12:46:34Z KZiemian: JuanDaugherty: I can't tell you more or better than this paper 2018-01-03T12:46:47Z JuanDaugherty: it's clear 2018-01-03T12:46:49Z JuanDaugherty: ty 2018-01-03T12:47:03Z KZiemian: JuanDaugherty: ty? 2018-01-03T12:47:27Z JuanDaugherty: common abbreviation for thank you 2018-01-03T12:47:57Z KZiemian: JuanDaugherty: oh, I don't know that abbrevation 2018-01-03T12:48:48Z JuanDaugherty: np (no problem), your english is otherwise excellent 2018-01-03T12:50:10Z mlau joined #lisp 2018-01-03T12:51:06Z turkja quit (Ping timeout: 246 seconds) 2018-01-03T12:51:25Z JuanDaugherty: (since correct spelling isn't expected in irc) 2018-01-03T12:53:01Z smurfrobot joined #lisp 2018-01-03T12:53:36Z KZiemian: JuanDaugherty: so If you want some wish about it, create new issue 2018-01-03T12:55:06Z KZiemian: if we don't find more acctive contributors we need at least few months to end prepering new framework (in broad sens of word) to CLUS 2018-01-03T12:55:32Z JuanDaugherty: I'm good with the existing ANSI standard 2018-01-03T12:56:37Z KZiemian: so if someone have a wish, better tell in now 2018-01-03T12:56:40Z milanj joined #lisp 2018-01-03T12:57:35Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-03T12:58:12Z damke_ joined #lisp 2018-01-03T13:00:23Z smurfrobot joined #lisp 2018-01-03T13:01:54Z Tobbi joined #lisp 2018-01-03T13:04:30Z zooey quit (Ping timeout: 272 seconds) 2018-01-03T13:05:29Z zooey joined #lisp 2018-01-03T13:07:26Z KZiemian quit (Quit: Page closed) 2018-01-03T13:09:55Z zooey quit (Remote host closed the connection) 2018-01-03T13:10:37Z zooey joined #lisp 2018-01-03T13:12:36Z Karl_Dscc joined #lisp 2018-01-03T13:12:53Z damke joined #lisp 2018-01-03T13:12:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T13:19:59Z Tko joined #lisp 2018-01-03T13:21:31Z attila_lendvai joined #lisp 2018-01-03T13:24:13Z wxie joined #lisp 2018-01-03T13:25:40Z francogrex joined #lisp 2018-01-03T13:26:10Z francogrex: for debugging purposes do you use asdf:load-source-op or prepare-source-op? 2018-01-03T13:27:15Z MerinoBailon is now known as bailon 2018-01-03T13:27:31Z fe[nl]ix: use SBCL, force high debug then compile-op :force t 2018-01-03T13:30:15Z francogrex: yes but compile-op needs to be loaded afterwards 2018-01-03T13:31:21Z stee_3 quit (Ping timeout: 260 seconds) 2018-01-03T13:31:47Z phoe: francogrex: use SBCL and SB-EXT:RESTRICT-COMPILER-POLICY 2018-01-03T13:35:17Z nirved joined #lisp 2018-01-03T13:37:23Z francogrex: phoe and continue loading asdf as usual using for example: (asdf:operate 'asdf:load-op :ALEXANDRIA) ? 2018-01-03T13:37:56Z francogrex: right now I am doing (asdf:operate 'asdf:load-source-op :ALEXANDRIA) 2018-01-03T13:38:07Z francogrex: but so it seems not the right way 2018-01-03T13:38:37Z beach: Why do you insist on loading the source? 2018-01-03T13:39:58Z francogrex: because I use step afterwards. if i load the compiled I won't be able to single step unless.... 2018-01-03T13:40:14Z fe[nl]ix: ... you use SB-EXT:RESTRICT-COMPILER-POLICY 2018-01-03T13:41:54Z beach: francogrex: Or make sure you always have a high DEBUG setting, like in your .sbclrc. 2018-01-03T13:42:25Z dddddd quit (Ping timeout: 248 seconds) 2018-01-03T13:43:25Z papachan joined #lisp 2018-01-03T13:43:50Z dddddd joined #lisp 2018-01-03T13:44:40Z francogrex: (declaim (optimize (debug 3))) I have that. but still if i only load-op it won't single-step unless load-source-op. however with SB-EXT:RESTRICT-COMPILER-POLICY maybe it will directly on the compiled allow me to single step 2018-01-03T13:44:56Z francogrex: to try 2018-01-03T13:47:57Z dddddd quit (Ping timeout: 240 seconds) 2018-01-03T13:48:05Z oleo: #.(declaim (optimize (debug 3) (safety 3)) 2018-01-03T13:48:07Z damke_ joined #lisp 2018-01-03T13:48:13Z oleo: ) 2018-01-03T13:48:14Z oleo: meh 2018-01-03T13:50:09Z damke quit (Ping timeout: 264 seconds) 2018-01-03T13:50:17Z oleo: #.(declaim (optimize (safety 3) (debug 3) (space 0) (speed 0) (compilation-speed 0) (inhibit-warnings 3))) 2018-01-03T13:50:51Z oleo: maybe wrap an eval-when too.... 2018-01-03T13:52:06Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-03T13:54:27Z mlau quit (Ping timeout: 240 seconds) 2018-01-03T13:55:55Z heurist` joined #lisp 2018-01-03T13:58:26Z heurist quit (Ping timeout: 272 seconds) 2018-01-03T13:59:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T14:00:14Z attila_lendvai joined #lisp 2018-01-03T14:00:41Z dddddd joined #lisp 2018-01-03T14:02:14Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-03T14:04:23Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-03T14:04:24Z wxie quit (Remote host closed the connection) 2018-01-03T14:05:45Z Bike joined #lisp 2018-01-03T14:06:24Z malice joined #lisp 2018-01-03T14:06:49Z mlau joined #lisp 2018-01-03T14:08:33Z hiroaki quit (Ping timeout: 265 seconds) 2018-01-03T14:15:57Z attila_lendvai quit (Disconnected by services) 2018-01-03T14:15:57Z attila_lendvai1 joined #lisp 2018-01-03T14:15:57Z attila_lendvai1 quit (Changing host) 2018-01-03T14:15:57Z attila_lendvai1 joined #lisp 2018-01-03T14:18:34Z francogrex: ok thanks 2018-01-03T14:21:21Z damke_ joined #lisp 2018-01-03T14:25:06Z Tobbi joined #lisp 2018-01-03T14:26:39Z phoe: francogrex: OPTIMIZE settings can be overriddeb by the compiler 2018-01-03T14:26:39Z aristippus quit (Read error: Connection reset by peer) 2018-01-03T14:26:49Z phoe: (locally (optimize (speed 0)) ...) 2018-01-03T14:26:53Z phoe: and you can do nothing about it portably 2018-01-03T14:27:11Z phoe: that's where RESTRICT-COMPILER-POLICY comes in, as it's stronger than individual OPTIMIZE declarations. 2018-01-03T14:27:22Z hiroaki joined #lisp 2018-01-03T14:27:34Z phoe: so you restrict it in .sbclrc, recompile everything once just to be sure, and boom, debug 3 everywhere. 2018-01-03T14:28:42Z lclark quit (Remote host closed the connection) 2018-01-03T14:32:54Z Jesin quit (Quit: Leaving) 2018-01-03T14:34:11Z francogrex: alright 2018-01-03T14:34:22Z ykoda quit (Remote host closed the connection) 2018-01-03T14:35:29Z ykoda joined #lisp 2018-01-03T14:37:03Z aristippus joined #lisp 2018-01-03T14:37:42Z attila_lendvai1 quit (Ping timeout: 272 seconds) 2018-01-03T14:38:27Z brendyn quit (Ping timeout: 240 seconds) 2018-01-03T14:39:58Z jack_rabbit quit (Ping timeout: 265 seconds) 2018-01-03T14:41:58Z attila_lendvai joined #lisp 2018-01-03T14:43:02Z oleo quit (Remote host closed the connection) 2018-01-03T14:43:48Z hiroaki quit (Ping timeout: 246 seconds) 2018-01-03T14:44:26Z orivej joined #lisp 2018-01-03T14:47:53Z KZiemian joined #lisp 2018-01-03T14:48:52Z beach: KZiemian: Here is another item for CLUS: On the dictionary page for FORMAT, it doesn't say what stream is designated when T is given. It would be good to mention that. 2018-01-03T14:49:26Z hiroaki joined #lisp 2018-01-03T14:51:38Z smurfrobot quit (Remote host closed the connection) 2018-01-03T14:52:21Z jamtho_ joined #lisp 2018-01-03T14:52:34Z francogrex quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-01-03T14:53:01Z jack_rabbit joined #lisp 2018-01-03T14:55:01Z KZiemian: I put CLUS state of work on GitHub 2018-01-03T14:55:02Z KZiemian: https://github.com/phoe/clus-data/issues/34 2018-01-03T14:55:33Z damke joined #lisp 2018-01-03T14:55:43Z igemnace joined #lisp 2018-01-03T14:56:49Z hiroaki quit (Ping timeout: 250 seconds) 2018-01-03T14:57:03Z jamtho_ quit (Ping timeout: 256 seconds) 2018-01-03T14:57:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T14:58:16Z damke__ joined #lisp 2018-01-03T15:00:35Z toni_ joined #lisp 2018-01-03T15:00:57Z damke quit (Ping timeout: 264 seconds) 2018-01-03T15:02:25Z Cymew quit (Remote host closed the connection) 2018-01-03T15:03:37Z Kevslinger joined #lisp 2018-01-03T15:04:43Z random-nick quit (Remote host closed the connection) 2018-01-03T15:04:56Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-03T15:05:45Z damke__ quit (Ping timeout: 264 seconds) 2018-01-03T15:07:07Z oleo joined #lisp 2018-01-03T15:08:46Z Cymew joined #lisp 2018-01-03T15:09:34Z damke__ joined #lisp 2018-01-03T15:09:56Z pjb: mgsk: you should use cl-python and see how it would translate it to lisp! 2018-01-03T15:10:33Z mgsk: pjb: _of course_ that's a thing 2018-01-03T15:13:26Z Cymew quit (Ping timeout: 260 seconds) 2018-01-03T15:14:16Z hiroaki joined #lisp 2018-01-03T15:14:17Z fikka quit (Ping timeout: 265 seconds) 2018-01-03T15:14:44Z Cymew joined #lisp 2018-01-03T15:14:47Z random-nick joined #lisp 2018-01-03T15:15:08Z __rumbler31 joined #lisp 2018-01-03T15:19:33Z Cymew quit (Ping timeout: 264 seconds) 2018-01-03T15:21:53Z fikka joined #lisp 2018-01-03T15:23:45Z toni_ quit 2018-01-03T15:25:52Z smurfrobot joined #lisp 2018-01-03T15:26:22Z cmatei joined #lisp 2018-01-03T15:27:46Z hiroaki quit (Ping timeout: 268 seconds) 2018-01-03T15:28:20Z smurfrobot quit (Remote host closed the connection) 2018-01-03T15:33:17Z smurfrobot joined #lisp 2018-01-03T15:33:55Z jarwin joined #lisp 2018-01-03T15:34:05Z kolko joined #lisp 2018-01-03T15:35:12Z jarwin quit (Client Quit) 2018-01-03T15:35:23Z jarwin joined #lisp 2018-01-03T15:35:27Z jarwin is now known as Jarwin 2018-01-03T15:36:01Z mishoo quit (Ping timeout: 248 seconds) 2018-01-03T15:37:03Z Jesin joined #lisp 2018-01-03T15:39:41Z hiroaki joined #lisp 2018-01-03T15:41:57Z raynold quit (Quit: Connection closed for inactivity) 2018-01-03T15:42:13Z EvW joined #lisp 2018-01-03T15:47:17Z flip214: Xach: in https://www.xach.com/naggum/articles/3179815377988891@naggum.net.html, I guess that the 2018-01-03T15:47:20Z flip214: //--> 2018-01-03T15:47:29Z flip214: is a bug during conversion... 2018-01-03T15:48:12Z flip214: I've seen a few more similar HTML "injections", but a few of them matched the content or tone so I didn't wonder that much 2018-01-03T15:49:07Z Xach: hmm 2018-01-03T15:49:27Z flip214: not that it matters much, just a heads-up 2018-01-03T15:50:35Z flip214: (as #:Erik is famous for not loving Perl, I can't resist the guess that this is some Perl-RE-blunder? ;) 2018-01-03T15:51:12Z Xach: Maybe, but not on my end. The archive is generated by a Common Lisp program. 2018-01-03T15:51:36Z Xach: I'll look into it 2018-01-03T15:51:41Z flip214: thought as much ;) 2018-01-03T15:51:56Z flip214: if you spend some time, please also fix the sort order (if you didn't already). 2018-01-03T15:51:58Z flip214: thanks a lot! 2018-01-03T15:53:19Z Xach: flip214: what is wrong with the sort order? 2018-01-03T15:54:36Z flip214: the "next" link sometimes points to older posts. 2018-01-03T15:54:43Z hexfive joined #lisp 2018-01-03T15:54:44Z flip214: same day, but wrong intra-day order. 2018-01-03T15:56:01Z knobo2 quit (Ping timeout: 255 seconds) 2018-01-03T15:56:10Z Xach: That won't be fixed, sorry. That happens to a small number of articles with ambiguous date fields. 2018-01-03T15:57:20Z flip214: the number is not that small... from memory, I'd guess I've seen some 30 or 40 mixed up posts, and I'm in Oct 2000 right now... but never mind, I can manage. 2018-01-03T15:58:04Z spoken-tales joined #lisp 2018-01-03T15:58:18Z dec0n quit (Read error: Connection reset by peer) 2018-01-03T15:59:42Z spoken-tales quit (Remote host closed the connection) 2018-01-03T16:00:11Z spoken-tales joined #lisp 2018-01-03T16:00:57Z damke__ quit (Ping timeout: 264 seconds) 2018-01-03T16:02:21Z spoken-tales quit (Remote host closed the connection) 2018-01-03T16:02:52Z spoken-tales joined #lisp 2018-01-03T16:03:26Z spoken-tales quit (Remote host closed the connection) 2018-01-03T16:03:57Z nika joined #lisp 2018-01-03T16:04:00Z spoken-tales joined #lisp 2018-01-03T16:04:17Z smurfrobot quit (Remote host closed the connection) 2018-01-03T16:05:09Z spoken-tales quit (Remote host closed the connection) 2018-01-03T16:05:34Z spoken-tales joined #lisp 2018-01-03T16:08:03Z KZiemian quit (Quit: Page closed) 2018-01-03T16:08:57Z warweasle joined #lisp 2018-01-03T16:10:33Z spoken-tales quit (Remote host closed the connection) 2018-01-03T16:11:08Z spoken-tales joined #lisp 2018-01-03T16:11:49Z damke__ joined #lisp 2018-01-03T16:15:17Z spoken-tales quit (Remote host closed the connection) 2018-01-03T16:15:44Z spoken-tales joined #lisp 2018-01-03T16:15:52Z trittweiler quit (Ping timeout: 272 seconds) 2018-01-03T16:16:25Z trittweiler joined #lisp 2018-01-03T16:16:59Z fikka quit (Ping timeout: 250 seconds) 2018-01-03T16:21:41Z mishoo joined #lisp 2018-01-03T16:21:53Z spoken-tales quit (Ping timeout: 248 seconds) 2018-01-03T16:27:16Z Jarwin quit (Ping timeout: 272 seconds) 2018-01-03T16:28:37Z Jarwin joined #lisp 2018-01-03T16:30:29Z JonSmith joined #lisp 2018-01-03T16:32:24Z hajovonta quit (Remote host closed the connection) 2018-01-03T16:37:36Z al-damiri joined #lisp 2018-01-03T16:39:04Z sigjuice: why (funcall (intern "INSTALL-REPL" :linedit)))) instead of simply (linedit:install-repl) ? 2018-01-03T16:39:57Z damke__ quit (Ping timeout: 264 seconds) 2018-01-03T16:40:18Z damke joined #lisp 2018-01-03T16:41:18Z phoe: sigjuice: what code are you refering to? 2018-01-03T16:42:02Z Bike: probably because that code is read before the linedit package is defined, e.g. in an asd file. 2018-01-03T16:42:14Z sigjuice: the instructions here on how to setup linedit: http://cliki.net/linedit 2018-01-03T16:42:44Z Bike: yep, i was right 2018-01-03T16:42:51Z Bike: that whole form is read before linedit is actually required 2018-01-03T16:43:15Z Bike: so if it was just (linedit:install-repl) sbcl would complain that there is no linedit package 2018-01-03T16:43:51Z sigjuice: what if I manually do (ql:quickload :linedit) first? 2018-01-03T16:44:16Z Bike: as long as "first" means "before the install-repl form is read" it will work. 2018-01-03T16:45:05Z MetaYan quit (Ping timeout: 240 seconds) 2018-01-03T16:46:12Z MetaYan joined #lisp 2018-01-03T16:47:11Z pjb` joined #lisp 2018-01-03T16:47:59Z sigjuice: the cliki page has (require :linedit) before (funcall (intern "INSTALL-REPL" :linedit) :wrap-current t) 2018-01-03T16:48:06Z fikka joined #lisp 2018-01-03T16:48:13Z sigjuice: are 'require' and 'ql:quickload' equivalent? 2018-01-03T16:48:17Z phoe: not really 2018-01-03T16:48:19Z makomo_ is now known as makomo 2018-01-03T16:48:27Z phoe: but REQUIRE should create the linedit package anyway 2018-01-03T16:48:37Z jmercouris joined #lisp 2018-01-03T16:48:46Z phoe: so you could (require :linedit) and then (linedit:install-repl) 2018-01-03T16:48:48Z pjb quit (Ping timeout: 272 seconds) 2018-01-03T16:49:00Z phoe: as long as you don't do stuff like (progn (require :linedit) (linedit:install-repl)) because that will crash 2018-01-03T16:49:43Z jmercouris: jasom: I saw your PR, thank you so much! 2018-01-03T16:49:43Z minion: jmercouris, memo from jasom: https://github.com/crategus/cl-cffi-gtk/pull/56 <-- this fixes the ccl issue; I'll post my synchronous gtk solution later tonight 2018-01-03T16:50:21Z jasom: jmercouris: you were right, as a point of fact, that the ccl crash when not waiting was caused by an upstream bug 2018-01-03T16:52:01Z jmercouris: jasom: Yeah, I had a strong feeling because at that point I was doing nothing non-standard with the code 2018-01-03T16:52:46Z jmercouris: like it would crash on me just starting GTK, not doing any operations 2018-01-03T16:52:56Z jmercouris: I wasn't sure how much was due to my VM setup, SSH X Forwarding, some other config etc 2018-01-03T16:53:43Z jmercouris: jasom: I'm thinking of maybe using Fereda's version since he accepts PRS/ is updating it, what do you think? 2018-01-03T16:53:52Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-03T16:53:59Z jasom: jmercouris: sure, I just googled "cl-cffi-gtk" and made a PR 2018-01-03T16:54:13Z jmercouris: I mean you are correct, that is the original author of it 2018-01-03T16:54:22Z jmercouris: How do I know which version of a lib is on quicklisp? 2018-01-03T16:54:47Z sigjuice: jmercouris you can take a look at the quicklisp-projects repo on github 2018-01-03T16:55:17Z jmercouris: sigjuice: ok, cool, thank you! 2018-01-03T16:55:18Z fikka quit (Ping timeout: 265 seconds) 2018-01-03T16:56:09Z jmercouris: Yeah, ql seems to be pointed to the crategus version 2018-01-03T17:00:36Z sigjuice: phoe yes (progn (require :linedit) ...) does crash. why is that? 2018-01-03T17:00:51Z mfiano: Xach: Do you have any means to test Quicklisp on CMUCL? 2018-01-03T17:02:37Z phoe: sigjuice: let's talk about times in Lisp. 2018-01-03T17:03:04Z knobo2 joined #lisp 2018-01-03T17:03:11Z phoe: simplifying things, there's three times: read-time, compilation-time, execution time. There are some other times as well, but let's skip them for now. 2018-01-03T17:03:22Z sigjuice: ok 2018-01-03T17:03:24Z phoe: during read-time, Lisp reads your data from strings or streams and turns them into objects. 2018-01-03T17:03:44Z phoe: it reads up "(progn (require :linedit)" properly. 2018-01-03T17:04:10Z phoe: then it reads "linedit:install-repl", which means, find me a symbol named "INSTALL-REPL" in package named "LINEDIT". 2018-01-03T17:04:17Z phoe: There's no such package at read-time. 2018-01-03T17:04:24Z phoe: So Lisp signals an error. 2018-01-03T17:04:49Z smurfrobot joined #lisp 2018-01-03T17:04:51Z phoe: It doesn't matter that you had (require :linedit) before. It was only read, but not evaluated. 2018-01-03T17:04:54Z Xach: mfiano: quicklisp the software? or all quicklisp projects? 2018-01-03T17:05:16Z mfiano: Xach: Quicklisp with one specific software 2018-01-03T17:05:31Z phoe: when you split your input into (require :linedit) (linedit:install-repl), Lisp first reads the first form, compiles it, evaluates it. 2018-01-03T17:05:45Z mfiano: I am hitting what appears to be a Quicklisp or ASDF issue with only 1 software 2018-01-03T17:05:50Z Jarwin quit (Ping timeout: 252 seconds) 2018-01-03T17:05:56Z phoe: Then reads the second form - successfully this time, because the first form created the LINEDIT package and all the symbols in it - compiles it, evaluates it. No error. 2018-01-03T17:05:57Z mfiano: and only on CMU 2018-01-03T17:06:23Z phoe: Okay, I'm done. That's the very short and brief introduction to times in Lisp. 2018-01-03T17:06:37Z phoe: *and most possibly incomplete and simplified 2018-01-03T17:06:41Z Xach: mfiano: I don't have cmucl handy at the moment. but in my experience most software is not tested with cmucl and problems can sneak in. 2018-01-03T17:06:44Z mfiano: Xach: https://gist.github.com/mfiano/c443bb674ff6f0e859bb9d6033ab359e 2018-01-03T17:06:47Z sigjuice: phoe: thanks a lot for taking the time. 2018-01-03T17:07:24Z Xach: hmmm 2018-01-03T17:08:09Z orivej quit (Ping timeout: 264 seconds) 2018-01-03T17:08:32Z Xach: mfiano: can you directly load defpackage-plus? 2018-01-03T17:08:42Z jmercouris: phoe: Does this mean that during a package definition, all :use are evaluated? 2018-01-03T17:09:04Z mfiano: Xach: I really haven't tried...this is a remote log from TravisCI that doesn't even get to the loading part. 2018-01-03T17:09:39Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-03T17:10:09Z Xach: ah 2018-01-03T17:10:37Z Xach re-discovers that cmucl doesn't grok ~ in pathnames 2018-01-03T17:12:33Z Xach: mfiano: well I can't reproduce. it loads fine locally with the latest cmucl. 2018-01-03T17:13:05Z mfiano: How odd. Thanks for trying. I'll have to dig deeper 2018-01-03T17:14:25Z phoe: jmercouris: 2018-01-03T17:14:27Z phoe: clhs defpackage 2018-01-03T17:14:27Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_defpkg.htm 2018-01-03T17:15:23Z mfiano: Xach: out of curiousity, can you load gamebox-math.tests? 2018-01-03T17:15:25Z jmercouris: interesting, so use does get executed it seems, unless I don't understand the docs 2018-01-03T17:15:34Z phoe: executed? one second 2018-01-03T17:15:44Z jmercouris: "The order in which they are executed is as follows" "2. :use." 2018-01-03T17:16:05Z phoe: the clauses. 2018-01-03T17:16:10Z phoe: not arguments of the clause. 2018-01-03T17:16:17Z jmercouris: Ah, ok 2018-01-03T17:16:23Z phoe: (defpackage foo (:use (concatenate 'string "COMMON-" "LISP"))) ;=> error, (CONCATENATE 'STRING "COMMON-" "LISP") does not designate a package 2018-01-03T17:16:26Z phoe: so they are NOT evaluated. 2018-01-03T17:16:48Z phoe: so you need to put package designators there, not something that evaluates to package designators. 2018-01-03T17:17:52Z jmercouris: phoe: I wasn't doing that anyways, so I should be good :D 2018-01-03T17:18:23Z jmercouris: So, anyways, my question stkill kind of stands 2018-01-03T17:18:35Z jmercouris: if you have a defpackage, and you :use something, how does it know what symbols exist from that given :use? 2018-01-03T17:19:24Z Bike: what is "it" here? 2018-01-03T17:20:21Z Bike: use is just a list of packages, though. packages have a use-list. when you try to find a symbol in a package, it'll check the use list if it has to, so whatever symbols the used packages define are available, it's not set in stone at defpackage time or anything. 2018-01-03T17:20:35Z Bike: i think. 2018-01-03T17:21:52Z Shinmera: clhs use-package 2018-01-03T17:21:52Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_use_pk.htm 2018-01-03T17:22:35Z Shinmera: defpackage essentially just expands into an eval-when with all clauses and the respective package operations like export, import, use-package, etc. 2018-01-03T17:22:42Z damke_ joined #lisp 2018-01-03T17:23:57Z jmercouris: Bike: "it" being the lisp system 2018-01-03T17:24:12Z jmercouris: I've noticed it doesn't complain about symbols not defined if I :use them in a package 2018-01-03T17:24:38Z Xach: jmercouris: that's because it's just using the symbols for the strings that are their names. 2018-01-03T17:24:52Z Xach: (:use "FOO") and (:use foo) are (usually) equivalent 2018-01-03T17:25:10Z Xach: FOO is not a variable reference because it's not evaluated normally. defpackage is a macro. 2018-01-03T17:25:30Z EvW quit (Ping timeout: 246 seconds) 2018-01-03T17:25:33Z damke quit (Ping timeout: 264 seconds) 2018-01-03T17:26:01Z jmercouris: Ah okay, that makes a lot more sense 2018-01-03T17:26:19Z varjag joined #lisp 2018-01-03T17:26:33Z Xach: i wrote a simplified clone of the package system to understand it better and i am happy to answer questions! 2018-01-03T17:27:18Z Xach: my hope was to write a better tutorial but i haven't done that yet :( 2018-01-03T17:27:26Z Xach: https://github.com/xach/zpackage/blob/master/zpack.lisp is the code 2018-01-03T17:27:33Z jmercouris: There's always tomorrow :) 2018-01-03T17:27:34Z fikka joined #lisp 2018-01-03T17:28:11Z phoe: there, now CFFI's FOREIGN-ARRAY-TO-LISP supports advanced array options 2018-01-03T17:28:17Z damke joined #lisp 2018-01-03T17:28:20Z phoe: such as specialization, displacement and adjustability. 2018-01-03T17:30:29Z dmiles: oh good .. ok so i have this lisp impl i created.. and when i am at startup i have a flag that lets me intern and export new symbols like sys:%foo wi5thout giving an error that %foo does not exist in system .. in cases %foo did exist I export it if the initial bootstrap code used : instead of :: .. al this was of my own design .. but is there some defparameter or some other variable that i could 2018-01-03T17:30:30Z dmiles: update or mimic? 2018-01-03T17:30:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T17:31:21Z spoken-tales joined #lisp 2018-01-03T17:31:37Z warweasle quit (Quit: back later) 2018-01-03T17:31:43Z dmiles: i didnt see anything in readtable or package 2018-01-03T17:32:17Z fikka quit (Ping timeout: 248 seconds) 2018-01-03T17:32:50Z Bike: you can intern symbols whenever, dmiles. or do you mean that you want something like package locks, so that the user can't intern/etc symbols in certain system packages? 2018-01-03T17:33:49Z dmiles: the sys::%foo i support fine.. it interns .. but i wanted a way that the user would already know how to export as well as intern 2018-01-03T17:35:02Z dmiles: https://github.com/TeamSPoon/wam_common_lisp/blob/master/prolog/wam_cl/prologfns.pl#L75 <- here is sone intenral code where i have symbols getting exported 2018-01-03T17:35:52Z dmiles: i sporta expected it would have bene part of the readtable 2018-01-03T17:36:18Z dmiles: as far as an "option" 2018-01-03T17:36:28Z dmiles: even thugh it doent actualyl relate to readtable 2018-01-03T17:36:30Z Bike: why would the readtable even be involved. 2018-01-03T17:36:53Z dmiles: becasue thing like PACKAGE-READCASE are there 2018-01-03T17:37:01Z Bike: You mean readtable-case? 2018-01-03T17:37:08Z dmiles: *nod* right 2018-01-03T17:37:19Z Bike: Which relates to how the reader treats case in symbols, something that intern and find-symbol are completely independent of? 2018-01-03T17:37:46Z dmiles: right the interner would be independant of technically.. 2018-01-03T17:38:19Z dmiles: so i was more asking if anohter impl uses the same hack i do and what they did to support 2018-01-03T17:38:37Z Bike: So there's no reason for the readtable to be involved. 2018-01-03T17:38:43Z fluke` joined #lisp 2018-01-03T17:38:55Z Bike: I'm not sure what you're trying to do. Do you want the reader to see a symbol, intern, and export it? 2018-01-03T17:39:00Z dmiles: correct.. other then the readtable actualyl intially deciding what the string will look like 2018-01-03T17:39:21Z Bike: Yes the readtable controls how the READER gets a string that is passed to intern. Intern doesn't do any case conversions or anything. 2018-01-03T17:40:06Z hhdave quit (Ping timeout: 272 seconds) 2018-01-03T17:40:12Z dmiles: yes i'd like it so the user can tell the reader to see a symbol, intern, and export it 2018-01-03T17:41:05Z Bike: Okay. I don't think anybody does that. Why can't you just specify the package definition with all the exported symbols earlier? 2018-01-03T17:42:41Z dmiles: i can, and i can even have a flag in sys:*export-symbols* 2018-01-03T17:43:07Z Bike: This specification wouldn't involve the reader at all. 2018-01-03T17:43:22Z dmiles: but then i was thinking it be nice to not depend on packagfe locks to decide when i ignore that flag 2018-01-03T17:43:42Z dmiles: i understand.. trhe readtable should have nothing to do with it 2018-01-03T17:43:57Z dmiles: thats what i meant " right the interner would be independant of technically" 2018-01-03T17:44:39Z Bike: This *export-symbols* flag is the one that tells the reader to export symbols sometimes, right? I'm saying you should not have such a flag and the reader should not export symbols. 2018-01-03T17:44:40Z dmiles: and it was very ingnorant i should have mentined the readtable at all 2018-01-03T17:45:03Z dmiles: the reader has nothing to do with it 2018-01-03T17:45:11Z dmiles: why would you think it did? 2018-01-03T17:45:15Z Bike: Okay, so what does *export-symbols* do? 2018-01-03T17:45:29Z dmiles: it tens the intern code to also export 2018-01-03T17:45:39Z dmiles: tells* 2018-01-03T17:45:51Z Bike: There's no need for that either, then. 2018-01-03T17:47:22Z dmiles: eveytime i make a defparameter like *export-symbols* i have to write docs on it.. i am hoping someone lese did this as well and i could use their docs 2018-01-03T17:48:00Z Bike: If you got rid of the flag you wouldn't need to document it. 2018-01-03T17:48:02Z dmiles: or if they had a more eleegant design 2018-01-03T17:48:07Z dmiles: right 2018-01-03T17:48:44Z Bike: So here's what I"m saying. Don't have any flag like that. If you want a symbol to be exported, just export it, like call the cl:export function on it, or if you have defpackage specify it in :export. 2018-01-03T17:49:07Z nika quit (Remote host closed the connection) 2018-01-03T17:49:15Z dmiles: so you are saying the better elegant design would be to yave it set up in defpackage .. right on 2018-01-03T17:49:48Z dmiles: (that is the design that is already expected) 2018-01-03T17:50:33Z jmercouris: jasom: The SBCL performance is so good! 2018-01-03T17:50:44Z nika joined #lisp 2018-01-03T17:51:10Z jmercouris: I think I'll put it as the default in the install guide for Linux 2018-01-03T17:52:56Z smurfrobot joined #lisp 2018-01-03T17:53:19Z m00natic quit (Remote host closed the connection) 2018-01-03T17:56:33Z Khisanth joined #lisp 2018-01-03T17:59:39Z dmiles: Bike: thank you btw 2018-01-03T18:00:24Z ech042 quit (Remote host closed the connection) 2018-01-03T18:01:42Z damke_ joined #lisp 2018-01-03T18:02:00Z pjb` quit (Remote host closed the connection) 2018-01-03T18:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-03T18:07:29Z ryanbw quit (Ping timeout: 268 seconds) 2018-01-03T18:07:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T18:09:57Z ym quit (Ping timeout: 240 seconds) 2018-01-03T18:10:17Z ym joined #lisp 2018-01-03T18:10:32Z EvW joined #lisp 2018-01-03T18:10:47Z damke_ joined #lisp 2018-01-03T18:13:05Z DeadTrickster: jasom, jmercouris lparallel just for promises? 2018-01-03T18:14:19Z Bookimp175 joined #lisp 2018-01-03T18:14:20Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSmtbpk: varjag smurfrobot M ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:25Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSbplxkfh: spoken-tales knobo2 jmercouris ▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:30Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSpnyhh: varjag Khisanth EvW ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:36Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILShgwojzwsj: fluke` Khisanth varjag ▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:40Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSbfpqzei: jmercouris spoken-tales smurfrobot ▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:46Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILShgfcdel: smurfrobot damke_ ym ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:50Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSxnpunnwys: M varjag fluke` ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:14:52Z shifty joined #lisp 2018-01-03T18:14:55Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSlccsywl: varjag knobo2 smurfrobot ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:15:01Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSlaezhs: ym knobo2 EvW ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:15:05Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSnkmusqkan: jmercouris varjag EvW ▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:15:10Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSkkmeadkan: varjag ym jmercouris ▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:15:15Z Bookimp175: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ A BUSY MEETING IS GOING ON NOW IN #/JOIN ITS A JOINT MEETING WITH THE DISCUSSION OF RE-ENSLAVEMENT OF NIGGERS..MESSAGE CHRONO OR VAP0R FOR DETAILSatzvyau: ym Khisanth knobo2 ▄▄▄▄▄▄▄▄▄▄▄▄ 2018-01-03T18:15:20Z Bookimp175 quit (Remote host closed the connection) 2018-01-03T18:15:56Z ChanServ has set mode +o Xach 2018-01-03T18:16:01Z Xach has set mode -o Xach 2018-01-03T18:16:19Z fikka joined #lisp 2018-01-03T18:20:41Z fikka quit (Ping timeout: 260 seconds) 2018-01-03T18:21:03Z _cosmonaut_ quit (Ping timeout: 256 seconds) 2018-01-03T18:23:01Z jmercouris: DeadTrickster: Yea 2018-01-03T18:23:28Z shka joined #lisp 2018-01-03T18:24:02Z jmercouris: Xach: What does mode change -o do? 2018-01-03T18:24:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T18:24:35Z pjb` joined #lisp 2018-01-03T18:27:34Z Shinmera: Remove oper 2018-01-03T18:29:33Z Xach: jmercouris: i was hoping to ban the spammer but I was too late. 2018-01-03T18:29:48Z jmercouris: Ah, I see 2018-01-03T18:29:58Z jmercouris: You know what that text really reminds me of, it sounds like the TempleOS guy 2018-01-03T18:30:17Z jmercouris: He would have the knowledge and the desire to do something like that, maybe it is him 2018-01-03T18:30:47Z dlowe: Let us just ignore it. 2018-01-03T18:31:07Z pjb` quit (Remote host closed the connection) 2018-01-03T18:31:32Z Murii quit (Quit: WeeChat 1.4) 2018-01-03T18:33:59Z damke_ joined #lisp 2018-01-03T18:34:37Z nika quit 2018-01-03T18:36:42Z smurfrobot quit (Remote host closed the connection) 2018-01-03T18:36:47Z pjb` joined #lisp 2018-01-03T18:39:42Z jmercouris: DeadTrickster: Did you get a chance to try the new GTK version? There's a couple features missing yet, like parenscript execution, and callback for "onload" of a webview, but is "kind-of" working 2018-01-03T18:40:46Z knobo2 is now known as knobo 2018-01-03T18:41:21Z knobo: Is there any where I can follow the status of asdf stability/bugs? 2018-01-03T18:41:31Z Shinmera: The asdf-devel mailing list 2018-01-03T18:41:43Z pjb` quit (Ping timeout: 250 seconds) 2018-01-03T18:44:13Z knobo: Anyone knows the status on the bugs in 3.3.1 that breakes many projects? 2018-01-03T18:45:48Z Xach: knobo: There is no bug that breaks many projects. 2018-01-03T18:46:21Z knobo: Ok, I have misunderstood then. 2018-01-03T18:47:00Z knobo: I was thinking of what was mentioned here: http://blog.quicklisp.org/2017/12/december-2017-quicklisp-dist-update-now.html 2018-01-03T18:48:25Z knobo: Is it projects that has not been updated to the new asdf version, then? 2018-01-03T18:48:33Z DeadTrickster: jmercouris, not yet, I will "soon" though. have you tried SBCL? 2018-01-03T18:48:49Z Tko quit (Ping timeout: 256 seconds) 2018-01-03T18:52:03Z dmiles: for my auto-export thing (which i only use for the cold system right) now i swistched over the a primordial **BOOT-STATE**.. but of course the symbol (like before) have to trigger a PACKAGE-ERROR like "Symbol "XXXX" not found in the YYYY package" 2018-01-03T18:53:28Z dmiles: (or the other error like Symbol "XXXX" is not found in YYYY package ) 2018-01-03T18:53:41Z dmiles: oops is not exported 2018-01-03T18:56:12Z orivej joined #lisp 2018-01-03T18:57:28Z jarwin joined #lisp 2018-01-03T18:58:09Z jarwin is now known as Jarwin 2018-01-03T18:58:35Z cgay quit (Ping timeout: 240 seconds) 2018-01-03T18:59:26Z cgay joined #lisp 2018-01-03T19:01:14Z jmercouris: DeadTrickster: Yeah, it works, I changed a bunch of things to make it work per jasoms instruction 2018-01-03T19:01:26Z jmercouris: Well, not a "bunch" of things, more like 2 things 2018-01-03T19:02:43Z Xach: knobo: yes 2018-01-03T19:04:19Z DeadTrickster: awesome, little bit easier to produce executable (at least for me) 2018-01-03T19:04:40Z jmercouris: DeadTrickster: What Distro are you running? 2018-01-03T19:04:55Z DeadTrickster: I have ubuntu and freebsd now 2018-01-03T19:05:17Z DeadTrickster: ubuntu is 17.04 and freebsd is current 12 2018-01-03T19:05:19Z jmercouris: I see, so you know how to make a standalone executable or one that uses shared libraries? 2018-01-03T19:05:27Z DeadTrickster: yes 2018-01-03T19:05:39Z jmercouris: So you know both? 2018-01-03T19:05:45Z DeadTrickster: yes ) 2018-01-03T19:06:01Z jmercouris: Ok, cool, would you mind producing the Ubuntu standalone for the next release? 2018-01-03T19:06:20Z DeadTrickster: yes of course, when? 2018-01-03T19:06:21Z jmercouris: If you don't want to do it, that's of course no problem, I am just asking if you can since I'm a BSD/MacOS user 2018-01-03T19:06:38Z jmercouris: I hope to be done in 1-2 days with everything for an "alpha" for Linux 2018-01-03T19:06:39Z bgardner quit (Ping timeout: 248 seconds) 2018-01-03T19:06:55Z jmercouris: So, I'm not exactly 7 days like I said in the issue on github, but pretty close :D 2018-01-03T19:08:38Z DeadTrickster: just ping me here or on github. see you 2018-01-03T19:08:58Z jmercouris: Ok, will do, thanks 2018-01-03T19:11:06Z fikka joined #lisp 2018-01-03T19:12:02Z pjb` joined #lisp 2018-01-03T19:12:40Z airgapped joined #lisp 2018-01-03T19:13:02Z airgapped quit (Client Quit) 2018-01-03T19:15:02Z __rumbler31: jmercouris: you got a blog? 2018-01-03T19:15:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-03T19:18:05Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-03T19:19:21Z randomstrangerb joined #lisp 2018-01-03T19:20:29Z jmercouris: __rumbler31 No, just a personal website, john.mercouris.online 2018-01-03T19:21:08Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-03T19:21:08Z EvW quit (Ping timeout: 255 seconds) 2018-01-03T19:21:38Z JuanDaugherty: blog - site - space , a bridge too far? 2018-01-03T19:25:48Z cgay quit (Ping timeout: 268 seconds) 2018-01-03T19:26:53Z sigjuice: jmercouris the 'Memory pressure relief' messages are coming from here. https://anonscm.debian.org/git/pkg-webkit/webkit.git/tree/Source/WTF/wtf/MemoryPressureHandler.cpp?h=webkitgtk-2.18#n280 2018-01-03T19:26:58Z EvW1 joined #lisp 2018-01-03T19:27:04Z cgay joined #lisp 2018-01-03T19:28:48Z raynold joined #lisp 2018-01-03T19:29:30Z LocaMocha quit (Ping timeout: 268 seconds) 2018-01-03T19:31:11Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-03T19:31:50Z jmercouris: sigjuice: It doesn't look like anything unusual I guess, do you know under which condition this log is fired off? 2018-01-03T19:32:33Z sigjuice: jmercouris not really, I'm afraid :/ 2018-01-03T19:33:03Z jmercouris: It's possible that it's just a standard debug message do to the way the process is launched 2018-01-03T19:33:21Z gravicappa quit (Ping timeout: 264 seconds) 2018-01-03T19:33:28Z jmercouris: I'll take a look later into cl-webkit and see how the webview is actually instantiated 2018-01-03T19:33:35Z omilu quit (Ping timeout: 256 seconds) 2018-01-03T19:35:59Z sigjuice: also, when the gtk window appears for the first time, it is really small 2018-01-03T19:37:54Z mlau quit (Ping timeout: 272 seconds) 2018-01-03T19:38:18Z jack_rabbit joined #lisp 2018-01-03T19:38:58Z pjb` quit (Remote host closed the connection) 2018-01-03T19:39:08Z sigjuice: I guess that is how the gtk window is created. (make-instance 'gtk:gtk-window ... :default-width 250) 2018-01-03T19:42:37Z random-nick quit (Remote host closed the connection) 2018-01-03T19:44:27Z mlau joined #lisp 2018-01-03T19:45:45Z random-nick joined #lisp 2018-01-03T19:46:08Z trittweiler quit (Ping timeout: 272 seconds) 2018-01-03T19:46:30Z pjb` joined #lisp 2018-01-03T19:49:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T19:49:54Z Jarwin quit (Quit: Night) 2018-01-03T19:50:34Z hiroaki quit (Ping timeout: 272 seconds) 2018-01-03T20:00:31Z orivej quit (Ping timeout: 248 seconds) 2018-01-03T20:03:08Z Cymew joined #lisp 2018-01-03T20:04:29Z Tobbi joined #lisp 2018-01-03T20:05:05Z hiroaki joined #lisp 2018-01-03T20:06:01Z orivej joined #lisp 2018-01-03T20:07:29Z Cymew quit (Ping timeout: 255 seconds) 2018-01-03T20:08:13Z stee_3 joined #lisp 2018-01-03T20:09:07Z fittestbits quit (Ping timeout: 265 seconds) 2018-01-03T20:09:34Z Cymew joined #lisp 2018-01-03T20:10:24Z damke_ joined #lisp 2018-01-03T20:13:51Z python476 joined #lisp 2018-01-03T20:14:14Z Cymew quit (Ping timeout: 255 seconds) 2018-01-03T20:15:39Z Cymew joined #lisp 2018-01-03T20:18:10Z orivej quit (Read error: Connection reset by peer) 2018-01-03T20:18:43Z orivej joined #lisp 2018-01-03T20:19:59Z Cymew quit (Ping timeout: 252 seconds) 2018-01-03T20:24:16Z orivej quit (Quit: No Ping reply in 210 seconds.) 2018-01-03T20:26:05Z fittestbits joined #lisp 2018-01-03T20:27:04Z orivej joined #lisp 2018-01-03T20:29:10Z damke joined #lisp 2018-01-03T20:30:52Z spoken-tales quit (Ping timeout: 265 seconds) 2018-01-03T20:32:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T20:33:01Z orivej quit (Ping timeout: 268 seconds) 2018-01-03T20:33:11Z omilu joined #lisp 2018-01-03T20:37:47Z pjb` quit (Read error: Connection reset by peer) 2018-01-03T20:38:29Z EvW1 quit (Remote host closed the connection) 2018-01-03T20:42:51Z pjb` joined #lisp 2018-01-03T20:44:48Z damke_ joined #lisp 2018-01-03T20:46:44Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-03T20:47:45Z damke quit (Ping timeout: 264 seconds) 2018-01-03T20:48:20Z drcode joined #lisp 2018-01-03T20:49:12Z z3t0 joined #lisp 2018-01-03T20:50:08Z smurfrobot joined #lisp 2018-01-03T20:50:34Z damke joined #lisp 2018-01-03T20:51:10Z pjb` quit (Ping timeout: 252 seconds) 2018-01-03T20:51:19Z bgardner joined #lisp 2018-01-03T20:53:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T20:58:09Z fikka joined #lisp 2018-01-03T20:59:16Z Ardx joined #lisp 2018-01-03T20:59:43Z python476 quit (Ping timeout: 248 seconds) 2018-01-03T21:02:08Z jmercouris: sigjuice: I didn't really notice that I'm on a tiling WM 2018-01-03T21:02:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-03T21:04:01Z jmercouris: I will fix that, thanks! 2018-01-03T21:04:08Z jstypo quit (Remote host closed the connection) 2018-01-03T21:06:56Z z3t0 quit (Remote host closed the connection) 2018-01-03T21:07:30Z z3t0 joined #lisp 2018-01-03T21:07:46Z z3t0 quit (Remote host closed the connection) 2018-01-03T21:07:58Z z3t0 joined #lisp 2018-01-03T21:10:52Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-03T21:13:36Z drcode quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-03T21:15:28Z drcode joined #lisp 2018-01-03T21:18:49Z pjb` joined #lisp 2018-01-03T21:19:15Z damke_ joined #lisp 2018-01-03T21:20:25Z z3t0 quit (Remote host closed the connection) 2018-01-03T21:21:00Z z3t0 joined #lisp 2018-01-03T21:21:19Z scymtym quit (Remote host closed the connection) 2018-01-03T21:21:57Z damke quit (Ping timeout: 264 seconds) 2018-01-03T21:23:30Z pjb` quit (Ping timeout: 246 seconds) 2018-01-03T21:24:54Z jmercouris quit (Remote host closed the connection) 2018-01-03T21:25:08Z zotan quit (Read error: Connection reset by peer) 2018-01-03T21:25:32Z jmercouris joined #lisp 2018-01-03T21:25:33Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-03T21:25:44Z vlatkoB quit (Read error: Connection reset by peer) 2018-01-03T21:27:35Z shka quit (Ping timeout: 240 seconds) 2018-01-03T21:30:07Z jack_rabbit quit (Ping timeout: 248 seconds) 2018-01-03T21:30:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-03T21:30:54Z eudoxia joined #lisp 2018-01-03T21:32:19Z z3t0 joined #lisp 2018-01-03T21:33:08Z ykoda quit (Remote host closed the connection) 2018-01-03T21:33:09Z gtuser quit (Ping timeout: 256 seconds) 2018-01-03T21:33:16Z Ardx: hey 2018-01-03T21:33:19Z knobo quit (Ping timeout: 248 seconds) 2018-01-03T21:34:22Z Ardx: Can anyone direct me to a lisp/scheme that can be used in a proven, robust and modern IDE? These include vscode, visual studio, intellij, atom. Not emacs, or dr racket 2018-01-03T21:35:43Z _death: all of them can be used 2018-01-03T21:35:53Z jmercouris: A IDE does not enable or prevent the usage of a language 2018-01-03T21:36:08Z jmercouris: Also, VSCode, and Atom are not IDEs 2018-01-03T21:37:23Z jmercouris: Visual Studio is used for .net mostly, and Intellij is used basically just for Java, so what are you asking for? 2018-01-03T21:37:27Z Ardx: _death point me to a plugin with syntax highlighting, autocomplete, debugging, and error underlining? 2018-01-03T21:37:50Z jmercouris: Ardx: https://atom.io/packages/atom-slime 2018-01-03T21:38:09Z Ardx: In an IDE that has a file tree, can support multiple tabs, and has a working dark theme? 2018-01-03T21:38:21Z jmercouris: Ardx: Emacs has all of those things 2018-01-03T21:38:22Z _death: Ardx: I use emacs, sorry 2018-01-03T21:38:40Z Ardx: holy moly 2018-01-03T21:38:54Z Ardx: jmercouris that actually looks like something 2018-01-03T21:38:59Z jmercouris: Ardx: Do you think it is just one huge coincidence that we are mostly using Emacs? 2018-01-03T21:39:21Z Ardx: I just hate emacs tbh, tried to use it with clojure for ages and hate all the keyboard commands i need to remember 2018-01-03T21:39:55Z Ardx: Use it if you want, I just want to write lisp in a modern tool 2018-01-03T21:39:56Z jmercouris: There are no keyboard commands you have to remember, if you have vanilla emacs, you can type into it with normal keys, and there is even a menu bar with File-> Save, etc 2018-01-03T21:40:16Z jmercouris: What makes Emacs not modern? 2018-01-03T21:40:31Z jmercouris: The latest release of Emacs was within the past year, and why does modern equate to better? 2018-01-03T21:40:33Z Ardx: things like buffers, and ctrl+c/v not being copy paste 2018-01-03T21:40:58Z jmercouris: Ardx: Except for that Ctrl+C and Ctrl+V can be made as copy/paste keys, and there are Windows versions that have that built in by default 2018-01-03T21:41:17Z aeth: Emacs is a lot more modern when (1) you turn off tool-bar-mode and menu-bar-mode and (2) you give it a dark theme and (3) you shrink the font 2018-01-03T21:41:18Z jmercouris: Buffers are effectively tabs 2018-01-03T21:41:26Z aeth: you also need to use the graphical, not in-terminal emacs 2018-01-03T21:41:34Z smurfrobot quit (Remote host closed the connection) 2018-01-03T21:42:22Z Ardx: I like having drag drop panes that show me file tree, document tabs, code, menu with debugging options etc 2018-01-03T21:42:30Z _death: https://i.imgur.com/YWYcb3a.png emacs is a modern os 2018-01-03T21:42:41Z jmercouris: Ardx: You haven't really described anything Emacs can't do 2018-01-03T21:42:42Z jack_rabbit joined #lisp 2018-01-03T21:42:55Z Ardx: _death yeah thats the uglist thing Ive ever seen 2018-01-03T21:42:59Z jmercouris: Ardx: If you just don't feel like learning it, that's fine, but you can't argue that emacs is less capable 2018-01-03T21:43:10Z Ardx: Its not just about function 2018-01-03T21:43:30Z Ardx: look at vscode/subline/atom/visual studio/intellij etc all have a similiar layout 2018-01-03T21:43:36Z Ardx: completely departed from emacs 2018-01-03T21:43:57Z jmercouris: Ardx: Does that mean they are all correct? 2018-01-03T21:43:58Z _death: Ardx: if a baby sees his mother first, she's also the ugliest thing yet 2018-01-03T21:44:01Z jmercouris: That's a fallacy 2018-01-03T21:44:08Z Xof quit (Ping timeout: 252 seconds) 2018-01-03T21:44:14Z Ardx: not here to learn keyboard shortcuts and how to hide everything away, just want to edit lisp in a regular enviroment that I work in all day too 2018-01-03T21:44:28Z Ardx: to that end, thanks for the atom plugin link will check it out! 2018-01-03T21:44:41Z jmercouris: Ardx: So you are saying you are not interested in becoming better/faster? 2018-01-03T21:45:26Z Ardx: not sure where this is going now 2018-01-03T21:45:29Z jmercouris: Ardx: Not all interfaces have to be so strange looking: https://imgur.com/a/LhCA6 2018-01-03T21:45:49Z Ardx: lol 2018-01-03T21:45:54Z jmercouris: Ardx: I'm just suggesting keep an open mind, it is not a coincidence that the best developers are using heavily modified emacs and vi 2018-01-03T21:45:57Z Ardx: how do i set breakpoints in that? 2018-01-03T21:46:11Z jmercouris: I have removed the gutters on mine, but normally you can double click 2018-01-03T21:46:19Z __rumbler31: don't you click on the line on the margin to set breakpoints? 2018-01-03T21:46:31Z Ardx: best devs?? lisp isnt used anywhere? 2018-01-03T21:46:34Z jmercouris: I have it set to something like C-b b 2018-01-03T21:47:03Z Ardx: Different minds I guess, I prefer my IDE as visual as possible 2018-01-03T21:47:06Z jmercouris: Ardx: The inventor of ruby used emacs, and credits a lot his success to that 2018-01-03T21:47:11Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-03T21:47:30Z __rumbler31: Ardx: what do you normally do? 2018-01-03T21:47:36Z Ardx: Man I know a lot of ruby devs that hate the lang 2018-01-03T21:47:44Z jmercouris: Ardx: I would say you rather prefer your editor as simple as possible, and making all decisions for you, and that's fine, but you won't score any points by criticizing emacs (unless of course your criticisms are accurate) 2018-01-03T21:47:59Z Ardx: c# + visual studio in my day job. Along with sql, js, web frontend etc 2018-01-03T21:48:32Z TCZ joined #lisp 2018-01-03T21:49:26Z aeth: Ardx: The problem is that every language that has an IDE has a different best IDE. And IDEs make a huge difference. C# in Emacs isn't a good experience, just like Common Lisp in Visual Studio isn't a good experience. The recommended IDE for CL is SLIME, which does many cool things. There are ports of SLIME outside of Emacs (e.g. vim), but they're not as featureful at the moment. 2018-01-03T21:49:39Z hiroaki joined #lisp 2018-01-03T21:50:00Z aeth: Emacs is both a text editor and a platform, and it happens to be the platform for the Common Lisp IDE. 2018-01-03T21:50:01Z TCZ quit (Client Quit) 2018-01-03T21:51:07Z Ardx: all languages have the same core concepts though: a set of files, code to syntax highlight, autocompletion on type, error underlining, a repl, and a compilation step 2018-01-03T21:51:08Z rme: And that is, IMO, somewhat unfortunate. Emacs and SLIME do a lot, but you can write CL using any tool you like. 2018-01-03T21:51:45Z Ardx: Thats why things like the language service exist, and how a vscode/sublime can suport a lot of different languages 2018-01-03T21:51:47Z aeth: Ardx: Yes, all languages have the same core concepts, but they all tend to have a different "best" IDE. That's definitely unfortunate. 2018-01-03T21:51:52Z rme: But your editor has to know how to indent CL properly. 2018-01-03T21:51:59Z Ardx: ^ and a formatter 2018-01-03T21:52:02Z rme: practically speaking, that is. 2018-01-03T21:52:32Z aeth: Ardx: There is a server that CL can speak, used by SLIME and other IDEs. It's called swank. https://github.com/slime/slime/blob/master/swank.lisp 2018-01-03T21:52:34Z fikka joined #lisp 2018-01-03T21:52:45Z _death: Ardx: this is wrong, and if you want to learn why, you need to suspend your disbelief and pick the environment that tends to be used by practitioners of a language 2018-01-03T21:52:59Z aeth: Ardx: The problem is that people hav eto support swank, and I don't think Microsoft (creators of Visual Studio) have an interest in CL. 2018-01-03T21:53:05Z aeth: s/hav eto/have to/ 2018-01-03T21:54:25Z Ardx: Already said Ive tried emacs, was for quite a while too 2018-01-03T21:54:27Z aeth: CL is a fairly unique language, so converting it to something designed for a C# or Java workflow is probably not going to work. Common Lisp is unlike almost every other language because it's based on an interactive image. Smalltalk is also like that, and Smalltalk is the only other language I know like that. 2018-01-03T21:54:35Z Ardx: just doesnt live up to other editors like vs 2018-01-03T21:54:54Z aeth: Smalltalk is probably the only language more interactive than CL (it did it first, and it did it better) 2018-01-03T21:54:58Z jmercouris: Ardx: How long did you use Emacs? 2018-01-03T21:55:04Z Ardx: 3-4 months 2018-01-03T21:55:08Z jmercouris: Ardx: What did you use it for? What does your configuration look like? 2018-01-03T21:55:24Z jmercouris: Ardx: Did you try something like spacemacs? That seems to cater to the Atom type crowd 2018-01-03T21:55:39Z jmercouris: Ardx: http://spacemacs.org/ 2018-01-03T21:55:56Z jmercouris: You can't tell me the aesthetics of that look bad, though I don't even see why that should be an issue 2018-01-03T21:55:57Z Ardx: Yeah thats the one I used 2018-01-03T21:56:04Z rme left #lisp 2018-01-03T21:56:26Z jmercouris: At the end of the day, the choice is yours, but I cannot in good conscience reccommend another platform/editor 2018-01-03T21:56:33Z Ardx: Keyboard shortcuts for every little thing 2018-01-03T21:56:50Z jmercouris: Yeah buddy, we aren't programming with Wacom tablets believe it or not 2018-01-03T21:57:07Z Ardx: So you cant use a mouse? 2018-01-03T21:57:17Z _death: why would a programmer want to use a mouse 2018-01-03T21:57:20Z fikka quit (Ping timeout: 252 seconds) 2018-01-03T21:57:21Z jmercouris: Why should I? Am I programming in scratch? 2018-01-03T21:57:23Z cess11: rodents are slow 2018-01-03T21:57:27Z p_l: Ardx: FWIW, I seem to recall some work for VSCode 2018-01-03T21:57:32Z p_l: not sure how current it is 2018-01-03T21:57:41Z random-nick: if you don't like keyboard shortcuts then you can always execute a command by name using M-x 2018-01-03T21:57:47Z _death: do you use an onscreen keyboard 2018-01-03T21:57:48Z p_l: Also, not sure what's the level of structural editing for VSCode 2018-01-03T21:57:48Z Ardx: Heres the modern approach: Have menus , buttons etc interactive things. Also allow keyboard shortcuts. voila 2018-01-03T21:58:02Z Ardx: random-nick so I have to type more things? lol 2018-01-03T21:58:04Z jmercouris: Ardx: That's just the thing though, emacs DOES come with a menu bar and buttons if you want 2018-01-03T21:58:07Z p_l: Ardx: Emacs had interactive menus since I first booted it 2018-01-03T21:58:10Z Ardx: p_l sadly everything seems to be outdated 2018-01-03T21:58:16Z eschatologist quit (Quit: ZNC 1.6.5+deb2build2 - http://znc.in) 2018-01-03T21:58:26Z random-nick: Ardx: well, that seems to be what you want, since using the mouse is just extra work 2018-01-03T21:58:29Z jmercouris: Ardx: What exactly is outdated? 2018-01-03T21:58:46Z jmercouris: I'm at a loss as to whether you are trolling or not, if you are, you did an excellent job, because this whole time I've been taking you seriously :D 2018-01-03T21:58:48Z p_l: Ardx: most editors don't provide enough stuff to implement comparable interfaces, or just require too much work (Eclipse) 2018-01-03T21:58:48Z phoe: this discussion sounds like #lispcafe 2018-01-03T21:58:49Z eschatologist joined #lisp 2018-01-03T21:59:03Z p_l: Ardx: that said, I do seem to recall some pretty recent Atom and VSCode integration work 2018-01-03T21:59:13Z phoe: since it's about if emacs is outdated or not, and certainly doesn't concern itself directly with Common Lisp 2018-01-03T21:59:19Z fluke` quit (Ping timeout: 265 seconds) 2018-01-03T21:59:32Z jmercouris: phoe: Well, the conversation is about the best Lisp Editor, it's ALMOST offtopic, but not quite 2018-01-03T21:59:36Z aeth: The real problem Common Lisp has is that its unique characteristics (shared with one of its main inspirations, Smalltalk) really works best with its own enviornment. And that environment doesn't exist. If you've looked into Smalltalks, you've probably noticed that they tend to come with IDEs because that's a big part of the Smalltalk experience. GNU Emacs is old, and it uses Emacs Lisp, which is basically Lisp stepping in a time machine bac 2018-01-03T21:59:55Z aeth: Lisp stepping in a time machine back 30+ years. But it's close enough, so people use it. 2018-01-03T22:00:18Z cess11: Ardx: try www.picolisp.com. 2018-01-03T22:00:36Z cess11: no need for an IDE, it's too small for those 2018-01-03T22:00:40Z aeth: But if you really get used to the Emacs+SLIME workflow, it provides a glimpse into what could have been, if there was more development effort in that direction. An experience you don't really get elsewhere, even though GNU Emacs really isn't perfect 2018-01-03T22:00:45Z Ardx: jmercouris this https://static.thegeekstuff.com/wp-content/uploads/2010/05/emacs-editor-gui.png vs this https://i.stack.imgur.com/Ne3qd.png 2018-01-03T22:00:52Z Ardx: no trolling hah 2018-01-03T22:01:19Z Ardx: Just because emacs come with buttons doesnt make it better, though tbf spacemacs seemed to hide them from me too 2018-01-03T22:02:09Z jmercouris: aeth: Have you seen: https://github.com/cxxxr/lem? 2018-01-03T22:03:00Z _death: aeth: this is also wrong.. realize that Emacs Lisp is developed and gains more features every day, unlike Common Lisp which is stable and standardized.. there are IDEs for Common Lisp, like LispWorks and Allegro.. (there was that Cusp thingy some years ago) 2018-01-03T22:03:59Z aeth: _death: IDEs that cost hundreds/thousands of dollars in 2017 might as well be considered non-existant for most people. 2018-01-03T22:04:39Z _death: aeth: he can get the free version to learn if he doesn't want to use emacs 2018-01-03T22:05:05Z __rumbler31: tbf the money spent on developing vs is enormous, and the whole vs ecosystem does cost thousands to truly leverage 2018-01-03T22:05:13Z aeth: _death: Emacs Lisp was made intentionally archaic, e.g. dynamic scoping. RMS was an old Lisper. He was aware of the future of Lisp and rejected it. Emacs Lisp still gains features because it's so far behind Common Lisp and Scheme. 2018-01-03T22:05:31Z cess11: pretty sure Allegro has a express version 2018-01-03T22:05:31Z _death: aeth: if his aim is to actually learn lisp, which is not sufficiently proved imho 2018-01-03T22:05:32Z Ardx: have you tried the free versio of lispworks? 2018-01-03T22:05:38Z __rumbler31: ms just subsidizes the costs of giving away a free version of their editor since they need to provide a polished experience in order to drive users/devs to their platform 2018-01-03T22:05:41Z Ardx: This sums it up: "There is a time limit of 5 hours for each session, after which LispWorks Personal exits, possibly without saving " 2018-01-03T22:06:07Z __rumbler31: there is no such thing for lisp, so allegro/LW ides for a couple hundred bucks seem out of place 2018-01-03T22:06:22Z _death: aeth: you know you can enable lexical scoping by default nowadays, right? 2018-01-03T22:06:39Z aeth: __rumbler31: Microsoft killed a lot of markets like the commercial web browser market and the commercial IDE market (although the latter has somewhat made a comeback in recent years). 2018-01-03T22:07:01Z __rumbler31: oh I know! I'm not saying its a good thing 2018-01-03T22:08:23Z __rumbler31: Ardx: the value proposition for emacs is thus: this tool might be clunky at first, but its so configurable that you end up making a custom fit glove over the course of your career 2018-01-03T22:09:13Z _death: Ardx: seems workable for learning the language 2018-01-03T22:09:21Z spoken-tales joined #lisp 2018-01-03T22:09:43Z aeth: _death: Afaik, Emacs Lisp can now sort of emulate Common Lisp, as quite possibly the slowest Common Lisp implementation out there, because it's emulating Common Lisp. 2018-01-03T22:09:52Z _death: Ardx: if you're allergic to the free, unlimited, hackable and customizable lisp env.. 2018-01-03T22:09:54Z __rumbler31: since we edit text as a regular part of our work, once you can create modes that distill your editing down to your other mental models (like browsing between forms), you get to leverage your knowledge in a new domain, which is powerful 2018-01-03T22:09:58Z aeth: _death: So, all flaws are overcome with patches and turing completeness over time. 2018-01-03T22:10:42Z JonSmith quit (Remote host closed the connection) 2018-01-03T22:11:06Z JonSmith joined #lisp 2018-01-03T22:11:16Z aeth: __rumbler31: Emacs is a good example of why defaults matter. Default Emacs is terrible, but every Emacs user doesn't realize this because Emacs users have a mandatory 100+ line .emacs file and, these days, probably at least a dozen packages from M-x package-list-packages 2018-01-03T22:11:18Z hhdave joined #lisp 2018-01-03T22:11:19Z jasom: Ardx: SLIME is a proven, robust and nodern IDE 2018-01-03T22:11:20Z __rumbler31: I imagine one uses menus to discover what an interface can do. If it never changes, eventually the most common commands will be memorized as key combinations anyways. So imagine that your interface no longer EVER changes (like emacs) what you are left with after several years of use is exactly the environment you need 2018-01-03T22:11:51Z _death: aeth: not claiming it's more performant, or that it should be used for general purpose programming.. just that it's not stuck in the past as you described it 2018-01-03T22:12:00Z z3t0 quit (Remote host closed the connection) 2018-01-03T22:12:00Z aeth: __rumbler31: Emacs is definitely not designed for a good first impression, though 2018-01-03T22:12:20Z pjb` joined #lisp 2018-01-03T22:12:24Z jmercouris: They can't just change the defaults though without breaking everyone's config 2018-01-03T22:12:28Z aeth: _death: It's still stuck in the past. It's more modern features bolted onto a Lisp that was outdated at the start in its design. 2018-01-03T22:12:33Z jmercouris: So they are kind of locked in 2018-01-03T22:12:48Z jamtho_ joined #lisp 2018-01-03T22:12:59Z jmercouris: Unless they introduce some sort of "compatibility" layer or something I don't know 2018-01-03T22:13:06Z __rumbler31: aeth: yes, although I would say that sometimes with long enough timelines, getting the defaults right can be hard. IIR the most popular editing constructs like copy/paste existed in emacs and vi before they became known as copy and paste and associated with C-v. C-c etc 2018-01-03T22:13:10Z _death: aeth: fine.. believe what you want.. me, I try to learn from the changes people (Lisp hackers, after all) make to it.. 2018-01-03T22:14:11Z aeth: _death: All I know is that the style of CL I write is essentially impossible in Emacs Lisp, and even if it isn't, it wouldn't be fast at all. 2018-01-03T22:14:20Z aeth: And Emacs Lisp has had decades to catch up at this point. 2018-01-03T22:15:27Z BitPuffin|osx quit (Ping timeout: 248 seconds) 2018-01-03T22:15:49Z weltung joined #lisp 2018-01-03T22:16:02Z Jesin quit (Ping timeout: 252 seconds) 2018-01-03T22:16:19Z jasom: Ardx: and by that I mean 80% of why I use common lisp over other tools is that SLIME is the best development environment I've ever used, and lighttyears ahead of any freely available one. 2018-01-03T22:16:26Z _death: aeth: may want to read the current elisp manual sometime then 2018-01-03T22:16:35Z aeth: jmercouris: That's what they're doing. They're switching everything over to Guile (???) with a compatibility layer. Which is strange since elisp is almost CL-compatible and GNU has not one, but two CLs. 2018-01-03T22:16:57Z __rumbler31: to finish my point, your emacs will never change. VS will change, while that timeline is covered in years, I don't care to keep chasing down where vs decided to hide that feature under whatever menu. 2018-01-03T22:16:59Z aeth: (GNU also has two other Schemes: Kawa and MIT) 2018-01-03T22:17:37Z pjb` quit (Ping timeout: 255 seconds) 2018-01-03T22:17:55Z aeth: I suspect if Emacs picked CL, they could have made the transition 10+ years ago instead of still having a work-in-progress Guile port. 2018-01-03T22:19:12Z jmercouris: aeth: Yeah, the day Guile arrives, pigs will fly 2018-01-03T22:20:19Z aeth: jmercouris: I believe I read an FSF or GNU article about how Guile was going to become the standard GNU scripting language... and that article was from the 90s. 2018-01-03T22:20:54Z JonSmith quit (Remote host closed the connection) 2018-01-03T22:21:02Z z3t0 joined #lisp 2018-01-03T22:21:15Z weltung quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-03T22:21:26Z aeth: The whole implementation-in-C, scripting-in-interpreted-Lisp approach is flawed imo. Just writing the whole thing in SBCL will probably as a whole be faster than mixing very fast with slow. 2018-01-03T22:21:57Z reh joined #lisp 2018-01-03T22:22:09Z aeth: Especially if it's as script-driven as Emacs. 2018-01-03T22:22:19Z jasom: is gnucash the only program that adopted it wholesale? 2018-01-03T22:22:25Z _death: sure, that's one thing that separates the boy languages from the men languages.. the former are written in some other language.. 2018-01-03T22:22:30Z aeth: jasom: There are a few places. GIMP maybe? 2018-01-03T22:22:41Z drdo: aeth: it very much is 2018-01-03T22:22:44Z wxie joined #lisp 2018-01-03T22:23:13Z p_l: Ardx: https://atom.io/packages/atom-slime might be of interest to you, it's afaik "still usable" 2018-01-03T22:23:25Z drdo: And it is especially bad when they invent their own crappy "scripting language" 2018-01-03T22:23:27Z jasom: to be fair, IMO cmucl was not ready for primetime on commodity hardware of the 90s 2018-01-03T22:23:34Z jasom: and sbcl didn't exist 2018-01-03T22:23:44Z jasom: and clisp was not a performance demon 2018-01-03T22:24:36Z p_l: Emacs current form predates clisp 2018-01-03T22:24:40Z aeth: jasom: Yeah. We finally have the fast implementations and fast hardware to do things properly today. A lot of strange decisions made 30 years ago were for performance issues that no longer matter, but we're stuck with those decisions, unfortunately. 2018-01-03T22:25:04Z hhdave quit (Read error: Connection reset by peer) 2018-01-03T22:25:15Z p_l: aeth: a bit of the problem is that GNU Emacs harks in its history to before Common Lisp and evolved separately 2018-01-03T22:25:22Z p_l: as for Guile extensions 2018-01-03T22:25:28Z _death: jasom: if rms wanted to pick the CL route, a GNU CL would've been developed.. gcl/clisp came afterwards 2018-01-03T22:25:30Z p_l: GNU make is one of the programs that adopted it 2018-01-03T22:26:18Z jasom: p_l: GNU Emacs was post CLtL1, right? 2018-01-03T22:27:05Z aeth: Yeah, Emacs's history goes back a long way. GNU Emacs's tutorial is actually mostly compatible with the tutorial for the original (not in Lisp) Emacs. I don't know if the tutorial was modified from the original Emacs or backported from GNU Emacs with minor changes made. https://github.com/PDP-10/its/blob/master/src/emacs/teach.1 2018-01-03T22:27:08Z random-nick: also, RMS prefers Scheme to CL 2018-01-03T22:27:10Z p_l: jasom: its lisp started before CLtL1 2018-01-03T22:27:23Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-03T22:27:47Z p_l: jasom: the GNU branding might have happened after CLtL1, but the implementation is older 2018-01-03T22:28:19Z _death: random-nick: why do you think that? 2018-01-03T22:28:23Z reh quit (Quit: Updating details, brb) 2018-01-03T22:28:32Z weltung joined #lisp 2018-01-03T22:28:32Z jasom: And CLISP is older than Guile, but was not licensed under GPL until about the same time that Guile was released 2018-01-03T22:29:05Z JonSmith joined #lisp 2018-01-03T22:29:17Z aeth: Early GNU Emacs is still inferior to Lisp Machine Lisp, though. And RMS was aware of that. His name is on the later manuals. 2018-01-03T22:29:37Z p_l: CLISP is one of the old cases of "drive-by GPL viral attack" ;) 2018-01-03T22:29:53Z aeth: s/GNU Emacs/Emacs Lisp/ 2018-01-03T22:30:12Z jasom: Don't link with readline, or your entire program becomes a derivitive work of readline... 2018-01-03T22:30:15Z p_l: GNU Emacs harks back to 1981 and Gosling Emacs 2018-01-03T22:30:44Z jasom: oh, CLtL was 1984, that's later than I thought 2018-01-03T22:31:01Z p_l: jasom: it's interpretation that is arguably thrown out today (case in point: Illumos and KVM, Linux and AFS/ZFS) 2018-01-03T22:31:05Z Cymew joined #lisp 2018-01-03T22:31:17Z random-nick: _death: I am not sure where I've heard that, but you can always ask him about that using email 2018-01-03T22:31:42Z _death: random-nick: sure.. I've not seen any evidence for that though 2018-01-03T22:31:50Z hhdave joined #lisp 2018-01-03T22:32:14Z random-nick: well, you can send a mail to rms@gnu.org and he will probably respond in up to 2 days 2018-01-03T22:32:29Z _death: random-nick: it's not that important to me ;) 2018-01-03T22:35:05Z hiroaki quit (Ping timeout: 265 seconds) 2018-01-03T22:35:35Z Cymew quit (Ping timeout: 240 seconds) 2018-01-03T22:37:56Z __rumbler31 quit (Ping timeout: 260 seconds) 2018-01-03T22:38:46Z Ardx: well the atom lisp plugin is super nice, uses slime in the background too so finally I have all the features of a modern IDE with the power of lisp language. Sweet 2018-01-03T22:39:11Z Ardx: ciao 2018-01-03T22:39:16Z Ardx quit (Quit: Leaving) 2018-01-03T22:40:24Z Shinmera: All of the features, such as using a tonne of memory :^) 2018-01-03T22:41:23Z _death: a javascript editor.. 2018-01-03T22:41:51Z aeth: Well, to be fair, Emacs bloated 10x since the "Eight Megabytes and Constantly Swapping" joke. I now open a fresh emacs to 81.5 MB RAM usage. 2018-01-03T22:42:06Z smurfrobot joined #lisp 2018-01-03T22:42:19Z aeth: So much bloat! 2018-01-03T22:42:35Z fikka joined #lisp 2018-01-03T22:43:24Z p_l: ~240 MB here used by emacs 2018-01-03T22:43:38Z aeth: yeah, it's easy to get it above 200 2018-01-03T22:43:47Z p_l: 3 days, 6 hours 2018-01-03T22:45:34Z _death: just think, when you want to hack your own package or the editor's or someone else's, you need to write javascript :( 2018-01-03T22:45:37Z Shinmera: Atom uses more than that memory just after starting up and not doing anything. 2018-01-03T22:45:58Z Shinmera: Fresh instance, around 400MB RES. 2018-01-03T22:46:13Z Shinmera: Anyway, sorry for the o/t 2018-01-03T22:46:24Z aeth: 400 seems pretty low for what it is 2018-01-03T22:46:53Z aeth: What do Common Lisp editors start at? SBCL should give it about 95 to start with. 2018-01-03T22:46:55Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-03T22:47:09Z aeth: (And, yes, other Common Lisps will be better with RAM) 2018-01-03T22:49:04Z pjb` joined #lisp 2018-01-03T22:51:05Z hhdave quit (Ping timeout: 240 seconds) 2018-01-03T22:57:17Z wxie quit (Remote host closed the connection) 2018-01-03T22:57:43Z nirved quit (Quit: Leaving) 2018-01-03T23:01:14Z hhdave joined #lisp 2018-01-03T23:01:51Z varjag quit (Ping timeout: 240 seconds) 2018-01-03T23:05:46Z hhdave quit (Client Quit) 2018-01-03T23:07:34Z pjb` quit (Ping timeout: 255 seconds) 2018-01-03T23:09:22Z damke_ joined #lisp 2018-01-03T23:10:03Z dmiles quit (Ping timeout: 256 seconds) 2018-01-03T23:10:32Z JonSmith quit (Remote host closed the connection) 2018-01-03T23:13:00Z makomo: jmercouris: Ardx: Did you try something like spacemacs? That seems to cater to the Atom type crowd 2018-01-03T23:13:11Z makomo: what makes you say so? 2018-01-03T23:13:45Z makomo: i'm using spacemacs myself and don't like atom at all :D 2018-01-03T23:14:17Z dmiles joined #lisp 2018-01-03T23:14:23Z p_l: makomo: he quit, and apparently used spacemacs 2018-01-03T23:14:32Z p_l: gave him atom-slime 2018-01-03T23:14:51Z p_l: Spacemacs caters more to ViM/Mac crowd :) 2018-01-03T23:15:02Z JonSmith joined #lisp 2018-01-03T23:15:12Z makomo: p_l: i know Ardx quit, but i was replying to jmercouris who is still here 2018-01-03T23:15:43Z makomo: p_l: i agree with the vim part, not sure about the mac part :D 2018-01-03T23:16:00Z eudoxia quit (Quit: Leaving) 2018-01-03T23:16:58Z p_l: makomo: the mac keyboard seems to favour vimmers :P 2018-01-03T23:17:42Z makomo: meh, i don't like mac/apple either so :-) 2018-01-03T23:17:44Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-03T23:17:46Z makomo: but i do like modal editing/vim's keybinds 2018-01-03T23:18:13Z makomo: it's an amazing thing tbh, one of the greatest contributions vim (vi) made 2018-01-03T23:18:51Z makomo: i really like the philosophy of having the keybinds of vim and extensibility of emacs 2018-01-03T23:19:06Z makomo: i.e. combine both of the two editors' best features to get something amazing 2018-01-03T23:20:02Z JonSmith quit (Remote host closed the connection) 2018-01-03T23:20:20Z pjb` joined #lisp 2018-01-03T23:20:21Z Kaisyu joined #lisp 2018-01-03T23:22:08Z mishoo quit (Ping timeout: 248 seconds) 2018-01-03T23:23:44Z JonSmith joined #lisp 2018-01-03T23:24:16Z jstypo joined #lisp 2018-01-03T23:24:59Z Bike quit (Ping timeout: 260 seconds) 2018-01-03T23:27:04Z random-nick quit (Remote host closed the connection) 2018-01-03T23:28:31Z spoken-tales quit (Ping timeout: 248 seconds) 2018-01-03T23:33:20Z jstypo quit (Read error: Connection reset by peer) 2018-01-03T23:34:00Z fluke` joined #lisp 2018-01-03T23:34:57Z jmercouris: makomo: I was saying the people who like a pre-built config would be more likely to be atom users 2018-01-03T23:35:51Z jmercouris: makomo: Nothing wrong with evil mode, but spacemacs makes 100% of decisions for you, and I find that people who use spacemacs don't deviate from that a lot, it's not a bad thing, it's just a different way of doing things 2018-01-03T23:36:26Z p_l: jmercouris: it's less "100% of decisions" and more "customizing spacemacs is an extra level of work" 2018-01-03T23:36:48Z p_l: and more related to how, for example, most people don't change basic emacs keybinds either 2018-01-03T23:37:08Z jmercouris: Well, I try not to change the core ones, I just add to them so that I can still use vanilla emacs 2018-01-03T23:37:09Z p_l: even when they have PDF-generating literate configs like my old one 2018-01-03T23:37:26Z jmercouris: nothing terrible about c-n, c-p, c-x c-f, though I'll usually use s-f for projectile instead etc 2018-01-03T23:37:43Z p_l: jmercouris: so on top of already complex beast (Emacs) you add essentially a whole application (spacemacs) which has its own approach to configuration logic 2018-01-03T23:37:54Z p_l: not many people share their modifications yet 2018-01-03T23:38:07Z jmercouris: yeah the "layers" idea, idk, not sure that was really necessary 2018-01-03T23:39:52Z shifty quit (Ping timeout: 268 seconds) 2018-01-03T23:42:46Z rpg joined #lisp 2018-01-03T23:43:11Z smurfrobot joined #lisp 2018-01-03T23:43:37Z p_l: well, I find it quite interesting, just didn't get around to setting myself up, because the defaults support CL and Org quite well 2018-01-03T23:44:01Z pjb` quit (Ping timeout: 255 seconds) 2018-01-03T23:45:03Z JonSmith quit (Remote host closed the connection) 2018-01-03T23:46:00Z JonSmith joined #lisp 2018-01-03T23:47:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-03T23:47:50Z JonSmith quit (Remote host closed the connection) 2018-01-03T23:48:09Z JonSmith joined #lisp 2018-01-03T23:49:33Z jstypo joined #lisp 2018-01-03T23:50:37Z whoman joined #lisp 2018-01-03T23:53:05Z Shinmera: I'm still waiting on people to give feedback on Portacle's key set and help document. 2018-01-03T23:53:15Z Shinmera: Haven't heard a squeak about that from anyone 2018-01-03T23:58:28Z rumbler31 quit (Remote host closed the connection) 2018-01-03T23:58:44Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-03T23:58:47Z cgay quit (Ping timeout: 256 seconds) 2018-01-03T23:58:49Z spoken-tales joined #lisp 2018-01-04T00:00:31Z jmercouris: Shinmera: Have you created a survey? 2018-01-04T00:00:39Z cgay joined #lisp 2018-01-04T00:00:42Z p_l: Shinmera: projects like portacle are IMO done of the hardest to get such things for 2018-01-04T00:00:43Z jmercouris: I basically have never gotten feedback without explictly asking users 2018-01-04T00:01:07Z jmercouris: portacle is great btw, I think it's a great concept for new users 2018-01-04T00:01:16Z p_l: Many of the more knowledgeable people tend to have their idiosyncratic ways of setting up 2018-01-04T00:01:28Z Shinmera: jmercouris: I have not, no. There's currently more pressing matters. 2018-01-04T00:02:09Z Shinmera: p_l: Yes. I expect most people to just drop it without a word if they don't like it. That's one of my "fears" about all projects I have. 2018-01-04T00:02:46Z Shinmera: For Portacle (and most things, really) I don't even know how many people use it, let alone how many of those are beginners. 2018-01-04T00:03:23Z jmercouris: Shinmera: This is not just a "fear" this is a reality, if people don't like a piece of software they'll just loook for another instead of leaving feedback 2018-01-04T00:03:44Z Shinmera: I know, what I meant is that I fear most people will react that way, rather than a minority. 2018-01-04T00:04:05Z Shinmera: As in, I fear my efforts are going to waste without me knowing about it. 2018-01-04T00:04:11Z jmercouris: Ah, maybe they are 2018-01-04T00:04:19Z jmercouris: THat's the challenge with any business and/or project 2018-01-04T00:04:41Z jmercouris: There's a number of ways to figure out if your efforts are not wasted though 2018-01-04T00:04:57Z p_l: Shinmera: I think some work on getting Portacle in front of users is needed, not because of anything you do, but because gigamonkeys.com/book still gets people to look at Lisp in a Box 2018-01-04T00:05:12Z jmercouris: you could do a bunch of user studies, individually interviewing programmers to see if there is a need for such a tool, you could do test balloon posts on media platforms and see how people react to them, surveys you submit to a mailing list, etc 2018-01-04T00:05:33Z prometheus_falli joined #lisp 2018-01-04T00:05:38Z jmercouris: If you believe you've made a good piece of software, and no doubt you have, the second part that is necessary is marketing 2018-01-04T00:05:47Z Shinmera: p_l: Yeah. I've also seen a couple of posts on reddit where people suggest some complicated manual setup rather than just linking to Portacle, so it's still obscure even among people already familiar with lisp and willing to help. 2018-01-04T00:06:07Z p_l: Right 2018-01-04T00:06:18Z p_l: Who owns lisp.com 2018-01-04T00:06:20Z p_l: ? 2018-01-04T00:06:24Z jmercouris: Shinmera: If your interested in marketing, there's a lot of good resources on /r/startups 2018-01-04T00:06:27Z Shinmera: cl foundation, I believe 2018-01-04T00:06:45Z Shinmera: jmercouris: I'm not. Marketing is one thing I loathe to think about. 2018-01-04T00:07:13Z Shinmera: Generally I don't like to put myself or my things out there. 2018-01-04T00:07:23Z jmercouris: Shinmera: Well, like it or not, it is necessary 2018-01-04T00:07:33Z jmercouris: it is a shame that you produce so many packages that are not well known, because they are quite useful 2018-01-04T00:07:40Z Shinmera: :shrug: it's necessary for some goals. 2018-01-04T00:08:10Z Shinmera: Reforming the lisp community or whatnot isn't one of my goals. I made Portacle primarily for myself :^) 2018-01-04T00:08:22Z jmercouris: I don't know what your goals are, but I think if you are writing software that you hope other people will find useful, it follows that you'd want as many people as possible to benefit from those pieces of software 2018-01-04T00:08:45Z jmercouris: and how can they benefit if they do not know? 2018-01-04T00:08:48Z Shinmera: Eh, it's more that I hope if someone finds it they won't tink it's a piece of shit 2018-01-04T00:08:55Z Shinmera: *think 2018-01-04T00:09:03Z jmercouris: you are not trying to sell them some useless bs, but you can provide tangible value to their lives by informing them of products that you make that they may be interested in 2018-01-04T00:09:18Z jmercouris: Shinmera: Well, at least one person thinks your software isn't shit, and that's me 2018-01-04T00:09:26Z phoe: (incf *) 2018-01-04T00:09:28Z Shinmera: Great to know! :) 2018-01-04T00:10:11Z safe joined #lisp 2018-01-04T00:10:17Z Shinmera: Anyway, I'm aware marketing and all that can be beneficial for the target audience as well, it's just really not my deal. If someone else wants to do that, I don't mind, as long as I deem the thing being advertised as "ready". 2018-01-04T00:10:50Z Shinmera: I'll just continue on my (not so) merry way hammering out software, whether people use it or not. 2018-01-04T00:11:03Z prometheus_falli quit (Remote host closed the connection) 2018-01-04T00:11:35Z prometheus_falli joined #lisp 2018-01-04T00:11:55Z Shinmera: And currently the next step on that way is to snooze. Good night, everyone. 2018-01-04T00:12:26Z spoken-tales quit (Remote host closed the connection) 2018-01-04T00:13:01Z spoken-tales joined #lisp 2018-01-04T00:13:52Z mikecheck joined #lisp 2018-01-04T00:23:47Z aeth: How does Portacle differ from Roswell? I use Roswell to test my code on a bunch of implementations I wouldn't otherwise have easy access to 2018-01-04T00:24:18Z aeth: Roswell seems to be useful for testing, even automated testing 2018-01-04T00:24:34Z brendyn joined #lisp 2018-01-04T00:26:33Z cgay quit (Ping timeout: 256 seconds) 2018-01-04T00:27:16Z aeth: Ah, it looks like Portacle only has SBCL 2018-01-04T00:28:15Z cgay joined #lisp 2018-01-04T00:32:34Z rumbler31 joined #lisp 2018-01-04T00:34:14Z JuanDaugherty joined #lisp 2018-01-04T00:36:31Z damke joined #lisp 2018-01-04T00:38:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T00:39:59Z mfiano: The difference is Portacle is an Emacs distribution and roswell is an implementation manager. Not much overlap there 2018-01-04T00:41:20Z pierpa joined #lisp 2018-01-04T00:43:59Z smurfrobot joined #lisp 2018-01-04T00:48:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-04T00:49:13Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-04T00:50:24Z z3t0 quit (Remote host closed the connection) 2018-01-04T00:55:35Z spoken-tales quit (Remote host closed the connection) 2018-01-04T00:56:00Z spoken-tales joined #lisp 2018-01-04T00:56:07Z smurfrobot joined #lisp 2018-01-04T00:57:58Z varjag joined #lisp 2018-01-04T00:59:33Z z3t0 joined #lisp 2018-01-04T01:00:09Z varjag quit (Remote host closed the connection) 2018-01-04T01:00:18Z varjag joined #lisp 2018-01-04T01:00:31Z conceivably joined #lisp 2018-01-04T01:02:09Z brendyn quit (Ping timeout: 264 seconds) 2018-01-04T01:02:09Z theBlackDragon quit (Ping timeout: 264 seconds) 2018-01-04T01:03:35Z theBlackDragon joined #lisp 2018-01-04T01:05:03Z varjag quit (Ping timeout: 248 seconds) 2018-01-04T01:07:08Z z3t0 quit (Remote host closed the connection) 2018-01-04T01:07:31Z igemnace joined #lisp 2018-01-04T01:07:57Z theBlackDragon quit (Ping timeout: 240 seconds) 2018-01-04T01:10:11Z conceivably quit (Ping timeout: 260 seconds) 2018-01-04T01:14:45Z lololol joined #lisp 2018-01-04T01:14:46Z z3t0 joined #lisp 2018-01-04T01:14:46Z z3t0 quit (Remote host closed the connection) 2018-01-04T01:14:46Z z3t0 joined #lisp 2018-01-04T01:14:46Z theBlackDragon joined #lisp 2018-01-04T01:14:47Z lololol quit (Client Quit) 2018-01-04T01:14:47Z conceiva` joined #lisp 2018-01-04T01:14:47Z dxtr quit (Ping timeout: 276 seconds) 2018-01-04T01:14:48Z lxpz quit (Ping timeout: 240 seconds) 2018-01-04T01:14:48Z dxtr_ joined #lisp 2018-01-04T01:14:48Z dxtr_ quit (Changing host) 2018-01-04T01:14:48Z dxtr_ joined #lisp 2018-01-04T01:15:12Z conceiva` quit (Remote host closed the connection) 2018-01-04T01:16:04Z lxpz joined #lisp 2018-01-04T01:16:05Z smurfrobot quit (Remote host closed the connection) 2018-01-04T01:17:11Z spacepluk quit (Ping timeout: 260 seconds) 2018-01-04T01:18:21Z zotan_ quit (Ping timeout: 260 seconds) 2018-01-04T01:19:47Z zotan joined #lisp 2018-01-04T01:20:47Z spacepluk joined #lisp 2018-01-04T01:22:12Z smurfrobot joined #lisp 2018-01-04T01:22:59Z brendyn joined #lisp 2018-01-04T01:27:27Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-04T01:30:27Z smurfrobot joined #lisp 2018-01-04T01:33:57Z makomo quit (Ping timeout: 268 seconds) 2018-01-04T01:34:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-04T01:36:21Z markong quit (Ping timeout: 264 seconds) 2018-01-04T01:37:59Z spoken-tales quit (Remote host closed the connection) 2018-01-04T01:38:23Z spoken-tales joined #lisp 2018-01-04T01:42:02Z spoken-tales quit (Remote host closed the connection) 2018-01-04T01:42:35Z spoken-tales joined #lisp 2018-01-04T01:43:28Z smurfrobot joined #lisp 2018-01-04T01:52:43Z rme joined #lisp 2018-01-04T02:00:13Z FreeBirdLjj joined #lisp 2018-01-04T02:01:47Z smurfrobot quit (Remote host closed the connection) 2018-01-04T02:05:35Z z3t0 quit (Remote host closed the connection) 2018-01-04T02:06:18Z z3t0 joined #lisp 2018-01-04T02:08:02Z safe quit (Quit: Leaving) 2018-01-04T02:09:20Z stee_3 quit (Quit: stee_3) 2018-01-04T02:09:23Z d4ryus1 joined #lisp 2018-01-04T02:12:31Z d4ryus quit (Ping timeout: 256 seconds) 2018-01-04T02:13:24Z stee joined #lisp 2018-01-04T02:15:06Z Arcaelyx_ joined #lisp 2018-01-04T02:17:10Z stee is now known as stee_ 2018-01-04T02:18:17Z Arcaelyx quit (Ping timeout: 255 seconds) 2018-01-04T02:18:20Z z3t0 quit (Remote host closed the connection) 2018-01-04T02:18:34Z stee_ is now known as stee_3 2018-01-04T02:20:43Z z3t0 joined #lisp 2018-01-04T02:25:33Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-04T02:29:43Z fikka joined #lisp 2018-01-04T02:35:14Z hexfive quit (Quit: WeeChat 1.9.1) 2018-01-04T02:35:21Z fikka quit (Ping timeout: 260 seconds) 2018-01-04T02:37:33Z asarch joined #lisp 2018-01-04T02:40:13Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-04T02:44:13Z jamtho_ quit (Quit: Leaving) 2018-01-04T02:44:20Z FreeBirdLjj joined #lisp 2018-01-04T02:55:35Z shifty joined #lisp 2018-01-04T02:57:35Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-04T02:58:32Z FreeBirdLjj joined #lisp 2018-01-04T03:01:21Z damke_ joined #lisp 2018-01-04T03:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-04T03:08:28Z z3t0 joined #lisp 2018-01-04T03:12:37Z jmercouris quit (Remote host closed the connection) 2018-01-04T03:12:57Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-04T03:15:57Z slyrus quit (Ping timeout: 240 seconds) 2018-01-04T03:15:59Z jmercouris joined #lisp 2018-01-04T03:16:36Z jmercouris: I'm using cl-webkit, and I want to pass a function to the callback, but apparently you are supposed to pass a SYSTEM-AREA-POINTER : https://gist.github.com/91d471ea63c8f601178bdfb2a1955493 2018-01-04T03:16:39Z jmercouris: any ideas on what this is? 2018-01-04T03:16:51Z jmercouris: I've never heard of such a thin 2018-01-04T03:17:02Z rpg: Is that the thing SBCL uses as a pointer? 2018-01-04T03:17:39Z jmercouris: that's what googling yielded, yea 2018-01-04T03:18:05Z rpg: Honestly, I read a bunch of stuff about SAPs, but never knew what it stood for! 2018-01-04T03:18:07Z pillton: It is not something created using cffi:defcallback? (https://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dCallbacks.html#Tutorial_002dCallbacks) 2018-01-04T03:19:03Z jmercouris: pillton: That looks promising, let me try putting that in that place 2018-01-04T03:22:25Z ahungry joined #lisp 2018-01-04T03:22:31Z jmercouris: the defcallback doesn't have to be a top level form does it? 2018-01-04T03:23:06Z pillton: I don't know. I only know of it. I have never used it. 2018-01-04T03:24:09Z fikka joined #lisp 2018-01-04T03:24:09Z throwprans joined #lisp 2018-01-04T03:24:13Z throwprans: Hello 2018-01-04T03:24:18Z throwprans: Is PCL open source? 2018-01-04T03:24:23Z throwprans: Can you suggest improvements? 2018-01-04T03:24:34Z jmercouris: PCL is a book, did you try contacting the author? 2018-01-04T03:25:19Z throwprans: Well, there is many a book that are "authored" out in the wild. 2018-01-04T03:25:21Z rpg: why would a web package need a SAP? 2018-01-04T03:25:33Z throwprans: Full with "web based" source control and what not. 2018-01-04T03:25:45Z jmercouris: rpg: javascript is executed asynchronously and upon completion a callback is fired, the webkit api is in C 2018-01-04T03:25:55Z jmercouris: or rather the WebkitGTK+ API is in C 2018-01-04T03:25:58Z rpg: jmercouris: Oh, that makes sense. 2018-01-04T03:26:14Z throwprans: rpg: example https://github.com/realworldocaml/book 2018-01-04T03:26:31Z jmercouris: So this is my first time touching any CFFI stuff, and I'm having a right challenge with it 2018-01-04T03:26:46Z rpg: jmercouris: Seems like that's just the sort of thing that a CL library should wrap up and hide away from you! 2018-01-04T03:27:15Z jmercouris: rpg: Seems like, but this, like cl-cffi-gtk is as thin of a layer as possible 2018-01-04T03:27:31Z jmercouris: the author does provide a macro called define-g-async-ready-callback, not sure what to does, could be what I need though 2018-01-04T03:27:38Z rpg: jmercouris: I'm a big fan of as thick a layer as possible! ;-) 2018-01-04T03:27:42Z jmercouris: s/to/that 2018-01-04T03:28:04Z jmercouris: rpg: Me too, I've developed a healthy distaste for gtk implementation details :D 2018-01-04T03:28:58Z rpg: I understand why it's so, but I'm not excited about libraries that are usable ... if only you know how to use the original C++, C, or Objective C API!1 2018-01-04T03:29:03Z fikka quit (Ping timeout: 248 seconds) 2018-01-04T03:29:49Z quazimodo joined #lisp 2018-01-04T03:30:24Z throwprans: All abstractions are leaky. 2018-01-04T03:30:33Z throwprans: But a good fat layer on top always helps, still. 2018-01-04T03:30:58Z z3t0 joined #lisp 2018-01-04T03:31:50Z rpg: I mean, to be fair, we're a small community, which means we don't have the cycles to support lots of thick APIs. 2018-01-04T03:32:17Z rpg: I do understand that, and don't mean to insult the people doing the good work. Just wishing.... 2018-01-04T03:32:42Z jmercouris: It is what it is, I just wish I was a better C Programmer 2018-01-04T03:34:54Z throwprans: on another topic, reading PCL, it goes "At least one of Common Lisp's original designers hated it. LOOP's detractors complain that its syntax is totally un-Lispy (in other words, not enough parentheses)" 2018-01-04T03:35:09Z throwprans: (lol "not enough parentheses") 2018-01-04T03:35:27Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-04T03:35:39Z rpg: throwprans: You triggered the trap! This is where I start ranting about how much better it is to use ITERATE than LOOP! ;-) 2018-01-04T03:36:54Z throwprans: So you're going to iterate that idea in a never ending loop? 2018-01-04T03:37:32Z rpg: seriously, for a number of reasons, I encourage people to use ITERATE. It's not just that "it's more lispy," LOOP is a not-so-good domain specific language. ITERATE gives you all the power, but in a way that fits better. 2018-01-04T03:37:52Z throwprans: I am only learning. So I keep what you said in mind. 2018-01-04T03:38:01Z throwprans: Until I learn to use Iterate and see how I feel about the whole thing. 2018-01-04T03:38:12Z throwprans: So far I really dig the "lisp-way" there is defs something to it. 2018-01-04T03:38:32Z rpg: throwprans: You should probably just leave LOOP and ITERATE alone for a while, and stick to the core of the language. 2018-01-04T03:39:01Z throwprans: Well, learning about Macros, it says it is important to understand loops and other control structures. 2018-01-04T03:39:07Z throwprans: Or so PCL claims. 2018-01-04T03:39:27Z jmercouris: Eventually you'll come across other code, and lot of people use Loop, so you should understand it 2018-01-04T03:40:20Z rpg: jmercouris is right, but still not a fan. We turned into an ITERATE shop. Once you've read a couple of LOOPs with IF-THEN-ELSE-ENDIF in them, you'll know why! 2018-01-04T03:41:10Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-04T03:41:24Z pjb joined #lisp 2018-01-04T03:41:31Z throwprans: But this is a thing of beauty though: (loop for x from 1 to 10 summing (expt x 2)) ==> 385 2018-01-04T03:41:38Z throwprans: Show me that with a do or iterate please :) 2018-01-04T03:41:44Z jmercouris: This is the macro I was saying I found https://gist.github.com/35966c2230d4683174aa1a3605319c42 2018-01-04T03:42:08Z aeth: throwprans: that's actually not efficient. You want something like series, which will ideally use the mathematical identity instead of actually doing the unnecessary loop 2018-01-04T03:42:35Z throwprans: Judging from what I know so far, I think I am gonna like loop, I am very much a man of pragmatism, dogma is no good. 2018-01-04T03:42:40Z rpg: throwprans: (iter (for x from 1 to 10) (summing (expt x 2))) 2018-01-04T03:42:41Z pierpa: I have almost never seen DO in real code 2018-01-04T03:42:44Z aeth: Actually is there a macro that knows the identity? 2018-01-04T03:42:48Z aeth: https://en.wikipedia.org/wiki/Summation#Identities 2018-01-04T03:43:12Z throwprans: rpg: That is actually nice. 2018-01-04T03:43:24Z throwprans: I like it as much as the do example. 2018-01-04T03:43:25Z aeth: pierpa: DO is literally just LET where the bindings have an optional increment, and then with a termination step before the body. 2018-01-04T03:43:39Z rpg: throwprans: The person who did ITERATE wanted to keep all the power of LOOP, only without the totally different syntax. 2018-01-04T03:43:46Z pierpa: I know what it is, still nobody uses it. 2018-01-04T03:43:56Z throwprans: rpg: is it part of ANSI Lisp? 2018-01-04T03:43:59Z aeth: A lot of people can't even read it, which is strange, because they probably can read let 2018-01-04T03:44:09Z throwprans: ANSI Common Lisp, that is. 2018-01-04T03:44:30Z rpg: throwprans: No, it's a library. 2018-01-04T03:44:34Z jmercouris: Apparently, defcallback should be a top level form 2018-01-04T03:44:36Z jmercouris: Interesting 2018-01-04T03:44:52Z throwprans: rpg: If it is so bloody good, why isn't standardized? 2018-01-04T03:45:07Z rpg: aeth: I find DO very hard to read -- there isn't enough structure to it for me to easily extract the return values, in particular. 2018-01-04T03:45:12Z pierpa: because it was written after the standard 2018-01-04T03:45:30Z rpg: throwprans: the CL standard is, alas, dead, and will never be revised. There's lots of history about why that is the case. 2018-01-04T03:45:53Z throwprans: So, CL as a portable language is frozen? 2018-01-04T03:46:07Z aeth: rpg: yeah, do probably would have been better with three clauses, since it sticks in the return value(s) in the same section as the terminating condition, but then that adds an extra thing that's not always used 2018-01-04T03:46:25Z jmercouris: rpg: Never say never https://www.youtube.com/watch?v=_Z5-P9v3F8w 2018-01-04T03:46:48Z aeth: throwprans: (1) The standard is never going to be updated even though it's incomplete. (2) Don't put in the standard what can be put in a library. 2018-01-04T03:46:59Z cibs quit (Remote host closed the connection) 2018-01-04T03:47:02Z throwprans: How is the things in Scheme in regards to DO/LOOP/ITER? 2018-01-04T03:47:12Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-04T03:47:14Z aeth: Even loop probably shouldn't be in the language. You can already do everything loop can do without loop, although it might not be as clean, especially collect 2018-01-04T03:47:15Z throwprans: aeth: 2 No. 2018-01-04T03:47:37Z throwprans: aeth: I strongly believe a powerful language has a complete "standard library" even if the language is light. 2018-01-04T03:47:56Z throwprans: But then again, is the standard library covered in ANSI Common Lisp Standard? 2018-01-04T03:48:32Z throwprans: With that being said, I don't know enough lisp to make a fair judgement. 2018-01-04T03:48:40Z throwprans: So I will go back to studying. 2018-01-04T03:48:48Z throwprans: It was a helpful conversation though. :) 2018-01-04T03:49:20Z aeth: throwprans: The de facto standard is the Common Lisp Hyperspec, a web version of the ANSI Standard that looks like it was released with web 0.4 2018-01-04T03:49:25Z sonologico quit (Ping timeout: 256 seconds) 2018-01-04T03:49:25Z jmercouris: I have this terrible bug in nEXT, I can kill a tab with youtube, and it will keep playing the song 2018-01-04T03:49:36Z aeth: http://www.lispworks.com/documentation/HyperSpec/Front/index.htm 2018-01-04T03:49:46Z jmercouris: somehow it doesn't want to release the resource, so now I'm stuck listening to this justin bieber song :\ 2018-01-04T03:49:48Z throwprans: Okay... just reading some more, loop seems to be it's own language. 2018-01-04T03:49:58Z throwprans: So I can see why it doesn't belong in lisp. 2018-01-04T03:50:01Z throwprans: (loop for i below 10 and a = 0 then b and b = 1 then (+ b a) finally (return a)) 2018-01-04T03:50:06Z throwprans: That doesn't read like lisp to me at all. 2018-01-04T03:50:18Z aeth: Loop is essentially a mix between a mini ALGOL-style language and list comprehensions 2018-01-04T03:50:34Z throwprans: still a handy "macro", if it was one. 2018-01-04T03:50:40Z jmercouris: It just started a new justin bieber song :'( what did I do to deserve this 2018-01-04T03:50:44Z aeth: (loop for i from 0 below 10 collect i) 2018-01-04T03:50:46Z throwprans: But I think the criticism is fair. 2018-01-04T03:51:15Z aeth: Simple loops are readable, although you might need to look some stuff up 2018-01-04T03:51:25Z aeth: The loops some people put together though... might as well be regular expressions 2018-01-04T03:52:01Z throwprans: loop isn't lispy enough. The PCL is unfair in making it an issue with "parentheses" joke. 2018-01-04T03:52:56Z throwprans: rpg: So would like to join the club. How do I install this iter library? 2018-01-04T03:53:05Z throwprans: Speaking of which, how do you manage deps in lisp? 2018-01-04T03:53:24Z jmercouris: throwprans: dependencies are usually managed by a system definition file (asd) 2018-01-04T03:53:58Z jmercouris: throwprans: https://common-lisp.net/project/asdf/ 2018-01-04T03:54:04Z aeth: throwprans: There are three layers. CL itself comes with packages. These are essentially just namespaces for symbols. There are third party systems built on top of this. The overwhelming winner is ASDF, which has a concept called systems, defined in .asd files. 2018-01-04T03:54:20Z rpg: throwprans: Sorry -- I have to go AFK right now. The system definition capability that jmercouris refers to is ASDF, and the easiest way for now to install libraries is to grab Quicklisp. 2018-01-04T03:54:26Z rpg: I'll probably be around tomorrow... 2018-01-04T03:54:39Z aeth: Dependencies are then managed through a "package manager" (although that name is inaccurate because it's a system manager) called Quicklisp, which works on projects, which are basically a set of systems 2018-01-04T03:55:05Z throwprans: I know of quicklisp, I had to install it to get vlime (vim + sbcl integration) working. 2018-01-04T03:55:10Z throwprans: So I will have a good look. 2018-01-04T03:55:14Z throwprans: rpg: catch you around. 2018-01-04T03:55:28Z throwprans: jmercouris: Thanks. reading through. 2018-01-04T03:55:55Z jmercouris: throwprans: Here's a trivial example: https://github.com/nEXT-Browser/nEXT/blob/master/next/next.asd 2018-01-04T03:56:06Z jmercouris: You see I define a system called :next 2018-01-04T03:56:39Z jmercouris: if I say something like (ql:quickload :next), and this system definition file is located within my local projects dir, it will load all dependencies listed 2018-01-04T03:57:12Z jmercouris: so it will quickload :cl-strings, :cl-string-match, etc, which are also defined with ASD files, and so on and so forth until your dependencies are resolved 2018-01-04T03:57:13Z throwprans: I see. 2018-01-04T03:57:27Z throwprans: I think I will have to play around with for a bit before I grok it. 2018-01-04T03:57:46Z jmercouris: Yeah, but once you do, you'll see that you don't need to tuoch 99% of the spec, so try not to feel too overwhelmed 2018-01-04T03:57:49Z aeth: Packages do not necessarily have to correspond to systems, but they probably should to keep things simple. 2018-01-04T03:58:33Z aeth: Or, at the very least, there should be a main package with the same name as the system, even if you have other ones 2018-01-04T03:59:18Z jmercouris: throwprans: Packages are defined using defpackage http://www.lispworks.com/documentation/HyperSpec/Body/m_defpkg.htm 2018-01-04T03:59:29Z throwprans: Anyone from gigamonkeys.com/ around? PCL book could really use some padding. 2018-01-04T03:59:51Z jmercouris: throwprans: You won't find the author here, it is not an open source project 2018-01-04T03:59:58Z jmercouris: just contact them with any suggestions you may have 2018-01-04T04:00:07Z throwprans: jmercouris: Alright, will do. 2018-01-04T04:00:12Z throwprans: For now, a userscript should do. 2018-01-04T04:00:32Z rme: PCL is a book first and a website second. 2018-01-04T04:00:41Z aeth: There are two styles for defining packages. The majority style is to have a package.lisp per directory (so usually just one, if it's just in one src directory or just all at the top level directory). The minority style is to have a package definition at the top of every file, and have one package per file. 2018-01-04T04:00:53Z z3t0 joined #lisp 2018-01-04T04:00:54Z aeth: The latter makes things look a lot like Python or Java. 2018-01-04T04:01:09Z jmercouris: aeth: I've never seen a one package per file definition, why would someone do that? 2018-01-04T04:01:24Z aeth: jmercouris: It's an easy way to avoid name conflicts, for one 2018-01-04T04:01:43Z aeth: Frequently, you can only safely :use one thing other than :cl before you hit a name conflict 2018-01-04T04:02:26Z jmercouris: Hm, that's true, I prefer to have the full name though package-name:function because it allows me to identify code not native to my package 2018-01-04T04:02:42Z jmercouris: I might forget which functions I've written/have not written 2018-01-04T04:05:46Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-04T04:06:06Z aeth: I only use prefixes for huge packages that are clearly designed to be used that way, like cl-opengl (in that case, the gl: or %gl: prefix) 2018-01-04T04:06:23Z jmercouris: Can someone explain the warnings I hget when I define a cffi callback: https://gist.github.com/f44d31f5b2195018cd23319eaa4d4675 2018-01-04T04:06:47Z jmercouris: it doesn't make sense that I get undefined variable: CALLYBACKY, when I've literally just defined it above 2018-01-04T04:08:25Z jmercouris: When I eval it via slime-eval-region it'll show callybacky in the message buffer, so it must be fine, but then it says "callybacky" unbound, YET it autocompletes within slime-company, what is going on here 2018-01-04T04:09:32Z FreeBirdLjj joined #lisp 2018-01-04T04:10:22Z malice quit (Remote host closed the connection) 2018-01-04T04:10:22Z Karl_Dscc quit (Remote host closed the connection) 2018-01-04T04:12:34Z spoken-tales quit (Remote host closed the connection) 2018-01-04T04:12:36Z scymtym joined #lisp 2018-01-04T04:13:09Z spoken-tales joined #lisp 2018-01-04T04:13:13Z throwprans quit (Quit: Page closed) 2018-01-04T04:13:30Z jmercouris: apparently you have to say (cffi:get-callback 'symbol) 2018-01-04T04:13:49Z spoken-tales left #lisp 2018-01-04T04:14:04Z jmercouris: I somehow didn't realize that from the example here: https://common-lisp.net/project/cffi/manual/html_node/defcallback.html 2018-01-04T04:18:12Z jmercouris: IT WORKED! Sure it crashes because my callback has the wrong args or something, but my callback was invoked! 2018-01-04T04:18:26Z jmercouris: We need a celebration bot on this channel 2018-01-04T04:18:59Z nika joined #lisp 2018-01-04T04:19:21Z ahungry quit (Remote host closed the connection) 2018-01-04T04:21:47Z jmercouris: I've gone through so many minion advice, and none of them are even slightly positive, I feel like I should program a new one called "friendly minion" that says friendly and nice things 2018-01-04T04:26:57Z dddddd quit (Remote host closed the connection) 2018-01-04T04:27:46Z beach: Good morning everyone! 2018-01-04T04:28:44Z test1600 joined #lisp 2018-01-04T04:29:17Z jmercouris: good morning 2018-01-04T04:35:31Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-04T04:36:26Z z3t0 joined #lisp 2018-01-04T04:40:25Z FreeBirdLjj joined #lisp 2018-01-04T04:40:57Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-04T04:49:32Z schoppenhauer quit (Ping timeout: 272 seconds) 2018-01-04T04:51:03Z schoppenhauer joined #lisp 2018-01-04T04:53:39Z pierpa quit (Quit: Page closed) 2018-01-04T04:55:12Z zacts quit (Quit: WeeChat 1.9.1) 2018-01-04T04:58:27Z zacts joined #lisp 2018-01-04T05:05:28Z sigjuice: morning! 2018-01-04T05:07:22Z nowhere_man quit (Remote host closed the connection) 2018-01-04T05:08:37Z nowhere_man joined #lisp 2018-01-04T05:09:56Z shka joined #lisp 2018-01-04T05:10:10Z ninegrid joined #lisp 2018-01-04T05:12:06Z fikka joined #lisp 2018-01-04T05:15:55Z smurfrobot joined #lisp 2018-01-04T05:16:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-04T05:20:00Z turkja joined #lisp 2018-01-04T05:20:26Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-04T05:22:06Z gravicappa joined #lisp 2018-01-04T05:23:44Z z3t0 joined #lisp 2018-01-04T05:23:45Z mikecheck left #lisp 2018-01-04T05:23:47Z safe joined #lisp 2018-01-04T05:28:01Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-04T05:30:25Z z3t0 joined #lisp 2018-01-04T05:34:56Z z3t0 quit (Ping timeout: 252 seconds) 2018-01-04T05:36:11Z sonologico joined #lisp 2018-01-04T05:42:03Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-04T05:46:14Z FreeBirdLjj joined #lisp 2018-01-04T05:47:39Z jmercouris: Is any of the ASDF metadata like author or license used anywhere? 2018-01-04T05:54:51Z jmercouris quit (Ping timeout: 260 seconds) 2018-01-04T05:59:18Z milanj quit (Quit: This computer has gone to sleep) 2018-01-04T05:59:23Z smurfrobot joined #lisp 2018-01-04T06:00:28Z damke joined #lisp 2018-01-04T06:02:45Z damke_ quit (Ping timeout: 265 seconds) 2018-01-04T06:03:17Z FreeBirdLjj quit (Read error: Connection timed out) 2018-01-04T06:04:03Z knobo joined #lisp 2018-01-04T06:04:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-04T06:07:38Z FreeBirdLjj joined #lisp 2018-01-04T06:09:53Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-04T06:13:14Z smurfrobot joined #lisp 2018-01-04T06:15:12Z z3t0 joined #lisp 2018-01-04T06:15:50Z orivej joined #lisp 2018-01-04T06:16:40Z Zhivago: There are some sites which crawl projects -- I presume it might be used by those. 2018-01-04T06:17:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-04T06:19:29Z z3t0 quit (Ping timeout: 252 seconds) 2018-01-04T06:21:19Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-04T06:25:11Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-04T06:27:55Z cibs joined #lisp 2018-01-04T06:29:02Z FreeBirdLjj joined #lisp 2018-01-04T06:30:27Z z3t0 joined #lisp 2018-01-04T06:35:48Z smurfrobot joined #lisp 2018-01-04T06:37:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-04T06:38:28Z LocaMocha joined #lisp 2018-01-04T06:38:50Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-04T06:38:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-04T06:40:31Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-04T06:40:33Z vtomole joined #lisp 2018-01-04T06:41:36Z mlau quit (Ping timeout: 248 seconds) 2018-01-04T06:42:14Z z3t0 quit (Remote host closed the connection) 2018-01-04T06:42:59Z igemnace joined #lisp 2018-01-04T06:46:17Z smokeink joined #lisp 2018-01-04T06:46:34Z mishoo joined #lisp 2018-01-04T06:52:27Z knobo quit (Ping timeout: 240 seconds) 2018-01-04T06:57:27Z mlau joined #lisp 2018-01-04T07:00:23Z fikka joined #lisp 2018-01-04T07:03:38Z hiroaki joined #lisp 2018-01-04T07:05:08Z fikka quit (Ping timeout: 252 seconds) 2018-01-04T07:05:08Z scymtym quit (Ping timeout: 252 seconds) 2018-01-04T07:09:00Z asarch quit (Quit: Leaving) 2018-01-04T07:10:04Z pfdietz quit 2018-01-04T07:12:18Z dec0n joined #lisp 2018-01-04T07:16:03Z FreeBirdLjj joined #lisp 2018-01-04T07:18:36Z mlau quit (Quit: Lost terminal) 2018-01-04T07:19:43Z hajovonta joined #lisp 2018-01-04T07:20:38Z ryanbw joined #lisp 2018-01-04T07:23:19Z vtomole quit (Ping timeout: 260 seconds) 2018-01-04T07:24:42Z hajovonta quit (Quit: hajovonta) 2018-01-04T07:26:26Z hajovonta joined #lisp 2018-01-04T07:28:16Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-04T07:31:52Z knobo joined #lisp 2018-01-04T07:32:38Z FreeBirdLjj quit (Ping timeout: 252 seconds) 2018-01-04T07:36:53Z FreeBirdLjj joined #lisp 2018-01-04T07:43:27Z mishoo quit (Ping timeout: 256 seconds) 2018-01-04T07:43:50Z orivej joined #lisp 2018-01-04T07:43:58Z damke_ joined #lisp 2018-01-04T07:45:41Z milanj joined #lisp 2018-01-04T07:45:57Z damke quit (Ping timeout: 264 seconds) 2018-01-04T07:49:26Z rippa joined #lisp 2018-01-04T07:51:57Z varjag joined #lisp 2018-01-04T07:54:09Z FreeBirdLjj quit (Read error: Connection timed out) 2018-01-04T07:54:47Z fikka joined #lisp 2018-01-04T07:54:53Z no_bobby joined #lisp 2018-01-04T07:55:11Z hyero quit (Ping timeout: 240 seconds) 2018-01-04T07:55:17Z mint quit (Read error: Connection reset by peer) 2018-01-04T07:55:33Z orivej quit (Ping timeout: 264 seconds) 2018-01-04T07:57:18Z jackdaniel: license is useful when you traverse dependency tree and see, what is a combined work license 2018-01-04T07:58:15Z FreeBirdLjj joined #lisp 2018-01-04T07:58:27Z Cymew joined #lisp 2018-01-04T07:59:35Z fikka quit (Ping timeout: 252 seconds) 2018-01-04T08:01:37Z mishoo joined #lisp 2018-01-04T08:02:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T08:02:36Z damke_ joined #lisp 2018-01-04T08:04:33Z damke joined #lisp 2018-01-04T08:06:23Z mishoo quit (Ping timeout: 248 seconds) 2018-01-04T08:06:55Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-04T08:08:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T08:08:12Z python476 joined #lisp 2018-01-04T08:11:12Z FreeBirdLjj joined #lisp 2018-01-04T08:12:39Z orivej joined #lisp 2018-01-04T08:13:37Z damke_ joined #lisp 2018-01-04T08:14:45Z damke quit (Ping timeout: 264 seconds) 2018-01-04T08:15:31Z damke joined #lisp 2018-01-04T08:15:39Z scymtym joined #lisp 2018-01-04T08:17:26Z python476 quit (Read error: Connection reset by peer) 2018-01-04T08:18:00Z damke_ quit (Ping timeout: 246 seconds) 2018-01-04T08:18:00Z dddddd joined #lisp 2018-01-04T08:18:31Z damke_ joined #lisp 2018-01-04T08:19:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-04T08:21:21Z damke quit (Ping timeout: 264 seconds) 2018-01-04T08:21:48Z damke joined #lisp 2018-01-04T08:22:00Z SqREL joined #lisp 2018-01-04T08:23:00Z smurfrobot joined #lisp 2018-01-04T08:23:16Z rumbler31 joined #lisp 2018-01-04T08:24:31Z fikka joined #lisp 2018-01-04T08:24:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T08:25:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-04T08:25:55Z JuanDaugherty joined #lisp 2018-01-04T08:26:08Z shka quit (Ping timeout: 248 seconds) 2018-01-04T08:27:19Z sigjuice: is there a package that provides a portable getenv function? 2018-01-04T08:27:27Z Shinmera: uiop 2018-01-04T08:28:16Z sigjuice: Shinmera thanks! 2018-01-04T08:29:09Z damke quit (Ping timeout: 264 seconds) 2018-01-04T08:31:59Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-04T08:32:39Z sigjuice: hey I was just checkout out Portacle a couple of hours ago. I noticed there were a couple of .git directories in the distribution. Is that intentional? 2018-01-04T08:32:45Z FreeBirdLjj joined #lisp 2018-01-04T08:33:50Z mishoo joined #lisp 2018-01-04T08:34:15Z damke joined #lisp 2018-01-04T08:38:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-04T08:38:33Z damke_ joined #lisp 2018-01-04T08:38:44Z safe quit (Read error: Connection reset by peer) 2018-01-04T08:39:10Z JonSmith quit (Remote host closed the connection) 2018-01-04T08:39:41Z fikka joined #lisp 2018-01-04T08:41:45Z damke quit (Ping timeout: 264 seconds) 2018-01-04T08:45:19Z mishoo quit (Ping timeout: 248 seconds) 2018-01-04T08:47:11Z Shinmera: Yes 2018-01-04T08:47:51Z Shinmera: It's how I deliver updates that aren't binary. 2018-01-04T08:48:55Z orivej quit (Ping timeout: 252 seconds) 2018-01-04T08:49:51Z Shinmera: Binary upgrades are another feature currently missing from Portacle 2018-01-04T08:52:51Z sigjuice: binary updates is probably a tough problem 2018-01-04T08:53:22Z Shinmera: The basic idea is just to download the latest archive from github and automatically extract it over the existing installation. 2018-01-04T08:53:37Z Shinmera: Things get a bit complicated when you consider Windows though since you can't overwrite a running binary there, so 2018-01-04T08:56:05Z orivej joined #lisp 2018-01-04T08:59:31Z sigjuice: Updating binaries that are being used: this is something I never really understood. I have seen really weird inexplicable stuff even on Linux. 2018-01-04T09:00:19Z Shinmera: Well, something has to be running the update process, you know 2018-01-04T09:01:06Z damke joined #lisp 2018-01-04T09:02:53Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-04T09:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T09:04:05Z quazimodo joined #lisp 2018-01-04T09:05:07Z damke_ joined #lisp 2018-01-04T09:07:33Z damke quit (Ping timeout: 264 seconds) 2018-01-04T09:07:35Z hhdave joined #lisp 2018-01-04T09:12:23Z z0d quit (Remote host closed the connection) 2018-01-04T09:14:27Z makomo joined #lisp 2018-01-04T09:16:04Z mishoo joined #lisp 2018-01-04T09:16:36Z d4ryus1 is now known as d4ryus 2018-01-04T09:21:03Z aeth quit (Ping timeout: 248 seconds) 2018-01-04T09:21:57Z rumbler31 quit (Ping timeout: 264 seconds) 2018-01-04T09:22:28Z z0d joined #lisp 2018-01-04T09:24:29Z FreeBirdLjj joined #lisp 2018-01-04T09:25:37Z rumbler31 joined #lisp 2018-01-04T09:26:51Z aeth joined #lisp 2018-01-04T09:26:59Z Murii joined #lisp 2018-01-04T09:30:40Z damke_ quit (Read error: Connection reset by peer) 2018-01-04T09:30:53Z osune_: do i understand it correct that cl:decode-universal-time returns the timezone UTC offset inversed (multiplicated with -1)? E.g. I'm in UTC+1 , but the function returns -1 . If so, does somebody know the reasoning behind that? And while we are at it, what is the prefered / recommended calendar library for cl? 2018-01-04T09:31:18Z damke_ joined #lisp 2018-01-04T09:32:05Z Shinmera: clhs glossary/time zone 2018-01-04T09:32:05Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_t.htm#time_zone 2018-01-04T09:32:26Z Shinmera: As for libs, local-time is about the best you'll get. 2018-01-04T09:33:23Z rumbler31 quit (Ping timeout: 265 seconds) 2018-01-04T09:34:21Z osune_: thx I took a look at http://www.lispworks.com/documentation/HyperSpec/Body/25_ad.htm but missed to look at the glossary 2018-01-04T09:36:31Z osune_: Shinmera: but the glossary just states "that's how it is" , is there a known reason `why` that is? I mean it seems counter intuitive for the use cases I can think of. 2018-01-04T09:37:12Z rumbler31 joined #lisp 2018-01-04T09:38:20Z Shinmera: Probably previous implementations' behaviour 2018-01-04T09:38:29Z Shinmera: Or rather, CL predecessors' behaviour 2018-01-04T09:39:17Z Shinmera: There's nothing about the direction of the TZ value in the issues, so that's the best guess I have. 2018-01-04T09:39:38Z JonSmith joined #lisp 2018-01-04T09:41:24Z osune_: hm, I would lie saying that this is an answer that satisfies me. But I guess it has to. Thanks 2018-01-04T09:41:45Z smokeink quit (Ping timeout: 264 seconds) 2018-01-04T09:42:14Z Arcaelyx_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-04T09:42:21Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-04T09:43:20Z hiroaki quit (Ping timeout: 255 seconds) 2018-01-04T09:44:00Z Shinmera: Another way to look at it is that the TZ is the difference between local time and UTC. 2018-01-04T09:44:09Z hhdave quit (Ping timeout: 256 seconds) 2018-01-04T09:44:21Z JonSmith quit (Ping timeout: 250 seconds) 2018-01-04T09:44:41Z rumbler31 quit (Ping timeout: 260 seconds) 2018-01-04T09:45:04Z rumbler31 joined #lisp 2018-01-04T09:45:57Z FreeBirdLjj joined #lisp 2018-01-04T09:47:15Z osune_: I guess you can look at it that way, and maybe I didn't had enough exposure to TZ problems to appreciate it. But apart from your guess (inheritance) there seems no valid reason why one would choose to implement it that way, or at least expose this implementation detail it to the user 2018-01-04T09:47:41Z Shinmera: What do you mean, "expose that detail" 2018-01-04T09:48:52Z Zhivago: Is it describing what it did to a local time to produce a universal time? 2018-01-04T09:50:36Z smurfrobot joined #lisp 2018-01-04T09:52:09Z osune_: I mean: assuming that there is no benefit for solving specific problems by working with (- TZ), I assume that there are other reasons to use (- TZ) internaly. But as there are no specific problems which benefit from (- TZ) it doesn't make sense to expose this detail to the user. (decode-universal-time) could just return (- (- TZ)) and work with (- TZ) internal. 2018-01-04T09:52:31Z osune_: Zhivago: I'm not sure what you are asking ? 2018-01-04T09:53:24Z Shinmera: When you need to be compatible with existing systems you don't have a choice. 2018-01-04T09:53:53Z Shinmera: A lot of things in CL aren't there because that's what they thought was cool and great to have, but it's there because of the constraints under which CL was formed. 2018-01-04T09:54:41Z gravicappa quit (Ping timeout: 268 seconds) 2018-01-04T09:55:09Z osune_: Shinmera: sure that's a valid reason, which I'm not arguing. That's why I said "I take it as an answer". But this just propagates the question to "why did one existing system initially choose to behave like that" 2018-01-04T09:55:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-04T09:55:33Z Shinmera: You're going to have to hit the history books for that. 2018-01-04T09:55:59Z Shinmera: Either way, as I said, seeing the TZ as the difference between local time and UTC (thus being "inverted") seems like a reasonable way to do things to me. 2018-01-04T09:56:00Z osune_: Hoped I could cheat this time ;) 2018-01-04T09:57:21Z rumbler31 quit (Ping timeout: 250 seconds) 2018-01-04T09:59:16Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-04T10:02:57Z FreeBirdLjj joined #lisp 2018-01-04T10:04:19Z beach: I vividly remember having a hard time getting used to the current convention. 2018-01-04T10:04:39Z osune_: beach: can you expand on that? 2018-01-04T10:05:30Z beach: At the time, I just thought that east of UTC should be negative. 2018-01-04T10:05:41Z beach: It is just a convention, after all. 2018-01-04T10:06:05Z Shinmera: Just a matter of whether you think of things going from UTC or to UTC. 2018-01-04T10:06:14Z beach: It is not "intuitive" either way. It is all about being used to one or the other. 2018-01-04T10:07:06Z osune_: Sure it is just that. But I was not aware that "East to UTC is negative" was ever a wide spread convention. 2018-01-04T10:08:10Z beach: Possibly. But it is possible that there didn't used to be a convention at all, so Lisp implementers had to pick one. 2018-01-04T10:10:05Z dddddd quit (Remote host closed the connection) 2018-01-04T10:11:25Z smurfrobot joined #lisp 2018-01-04T10:11:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-04T10:13:29Z osune_: I'm reading up on the history of time zones atm and acording to wikipedia "By 1929, most major countries had adopted hourly time zones [with reference to GMT]. Nepal was the last country to adopt a standard offset , shifting slightly to UTC+5:45 in 1986" https://en.wikipedia.org/wiki/Time_zone#Worldwide_time_zones Currently I'm looking through the different ISO standards for time zones and dates / time 2018-01-04T10:16:01Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-04T10:16:17Z beach: You might try to look at the Maclisp manual and see whether the convention was the same as in Common Lisp. If so, Shinmera is very likely right in that the Lisp function existed before the current convention was established. 2018-01-04T10:18:48Z vlatkoB joined #lisp 2018-01-04T10:19:23Z osune_: beach: thanks i'll have a look. It seems the first standard regarding representation of local time differentials was ISO4031 from 1978 , which was superseeded in 1988 by ISO8601. Unfortunately I don't find a public version of ISO4031. So it seems Shinmera is right with his guess. 2018-01-04T10:25:56Z nika quit 2018-01-04T10:26:00Z damke joined #lisp 2018-01-04T10:28:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T10:31:32Z osune_: The MacLisp Reference Manual by Moon (1974) doesn't seem to even know about time zones :/ 2018-01-04T10:33:19Z smurfrobot joined #lisp 2018-01-04T10:35:04Z Shinmera: More innocent times :) 2018-01-04T10:35:08Z FreeBirdLjj joined #lisp 2018-01-04T10:35:34Z _cosmonaut_ joined #lisp 2018-01-04T10:36:31Z osune_: I have a friend searching for the ISO 4031 standard, maybe I'll find the "horrible" truth there :D 2018-01-04T10:36:57Z SqREL quit (Ping timeout: 264 seconds) 2018-01-04T10:37:32Z aeth: ISO 8601, one of the best standards, and the only one I know by number. 2018-01-04T10:37:39Z SqREL joined #lisp 2018-01-04T10:37:59Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-04T10:39:40Z FreeBirdLjj quit (Ping timeout: 255 seconds) 2018-01-04T10:43:34Z smurfrobot joined #lisp 2018-01-04T10:45:05Z aeth: It's not just the negation, the actual timezone information itself is different iirc. ISO 8601 encodes DST directly in its UTC offset. CL can thus given a different UTC offest than Unix's (or is it just GNU's?) "date -Isecond" 2018-01-04T10:45:22Z nicdev quit (Remote host closed the connection) 2018-01-04T10:45:43Z aeth: e.g. NYC is -04:00 during DST in ISO 8601 and is always +5 in CL afaik 2018-01-04T10:45:51Z fikka quit (Ping timeout: 248 seconds) 2018-01-04T10:46:18Z aeth: If I converted it correctly: (- (- hour-offset (if dstp 1 0))) 2018-01-04T10:46:54Z Shinmera: I really hate the thing about changing TZs with the DST, so I prefer CL in that regard 2018-01-04T10:48:11Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-04T10:49:50Z gravicappa joined #lisp 2018-01-04T10:50:05Z rumbler31 joined #lisp 2018-01-04T10:51:52Z osune_: yep that is a nice touch 2018-01-04T10:51:56Z FreeBirdLjj joined #lisp 2018-01-04T10:53:44Z jarwin joined #lisp 2018-01-04T10:53:50Z jarwin is now known as Jarwin 2018-01-04T10:53:55Z Jarwin quit (Client Quit) 2018-01-04T10:54:04Z jarwin joined #lisp 2018-01-04T10:54:07Z test1600 quit (Quit: Leaving) 2018-01-04T10:54:08Z jarwin is now known as Jarwin 2018-01-04T10:54:21Z osune_: Well no luck: my friend says the truth hidden in ISO 4031 is so horrible that he has no access via the university he is working at. I'm assuming it contains eldritch type horrors which are better left untouched. 2018-01-04T10:55:06Z aeth: Turns out that that conspiracy theory about someone just making up hundreds of years of history was true and is incoded in ISO 4031? Incredible! 2018-01-04T10:55:30Z orivej quit (Ping timeout: 246 seconds) 2018-01-04T10:55:49Z aeth: s/incoded/encoded/ 2018-01-04T10:56:47Z naturalog quit (Remote host closed the connection) 2018-01-04T10:56:54Z osune_: Illig was right all the time ! 2018-01-04T10:57:13Z orivej joined #lisp 2018-01-04T11:01:06Z damke_ joined #lisp 2018-01-04T11:03:03Z oleo quit (Remote host closed the connection) 2018-01-04T11:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-04T11:03:33Z oleo joined #lisp 2018-01-04T11:03:49Z ykoda joined #lisp 2018-01-04T11:05:11Z orivej quit (Ping timeout: 260 seconds) 2018-01-04T11:07:22Z fikka joined #lisp 2018-01-04T11:09:53Z orivej joined #lisp 2018-01-04T11:10:24Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-04T11:17:09Z angavrilov joined #lisp 2018-01-04T11:22:33Z m00natic joined #lisp 2018-01-04T11:23:51Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-01-04T11:24:57Z orivej joined #lisp 2018-01-04T11:25:34Z osune_: aeth: wait a sec . You said "Its not just the negation". I didn't read ISO 8601 , but your sentence implies that there it is stated something like "as it is known, in the west of Greenwhich the offset is positive in the east it's negative. But for what ever reason we negate the offset". Or do I missunderstood ? 2018-01-04T11:27:07Z osune_: s/do/did 2018-01-04T11:28:29Z osune_: or did your statement refer to the differences between CL and the standard? 2018-01-04T11:29:45Z quazimodo quit (Ping timeout: 264 seconds) 2018-01-04T11:30:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-04T11:34:08Z versatile joined #lisp 2018-01-04T11:34:38Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-04T11:34:55Z FreeBirdLjj joined #lisp 2018-01-04T11:36:24Z Murii quit (Quit: WeeChat 1.4) 2018-01-04T11:37:04Z versatile is now known as Murii 2018-01-04T11:40:49Z JonSmith joined #lisp 2018-01-04T11:44:23Z smurfrobot joined #lisp 2018-01-04T11:45:54Z JonSmith quit (Ping timeout: 246 seconds) 2018-01-04T11:46:32Z markong joined #lisp 2018-01-04T11:48:53Z smurfrobot quit (Ping timeout: 255 seconds) 2018-01-04T11:54:15Z wxie joined #lisp 2018-01-04T11:54:37Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-04T11:54:47Z smurfrobot joined #lisp 2018-01-04T11:54:59Z pjb: aeth: (- (- a b)) = (- b a) 2018-01-04T11:57:40Z wxie quit (Client Quit) 2018-01-04T12:02:20Z spacepluk quit (Quit: ZNC - http://znc.in) 2018-01-04T12:02:38Z vlatkoB quit (Remote host closed the connection) 2018-01-04T12:03:20Z rumbler31 joined #lisp 2018-01-04T12:03:53Z vlatkoB joined #lisp 2018-01-04T12:06:05Z spacepluk joined #lisp 2018-01-04T12:06:23Z Murii quit (Ping timeout: 248 seconds) 2018-01-04T12:06:35Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-04T12:07:57Z davsebamse quit (Ping timeout: 240 seconds) 2018-01-04T12:08:09Z rumbler3_ joined #lisp 2018-01-04T12:08:29Z jfb4 joined #lisp 2018-01-04T12:09:07Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-04T12:15:54Z mishoo quit (Quit: (save-lisp-and-die)) 2018-01-04T12:16:02Z davsebamse joined #lisp 2018-01-04T12:16:47Z smurfrobot quit (Remote host closed the connection) 2018-01-04T12:20:01Z mishoo joined #lisp 2018-01-04T12:21:32Z smurfrobot joined #lisp 2018-01-04T12:24:27Z Karl_Dscc joined #lisp 2018-01-04T12:26:39Z fortitude quit (Ping timeout: 248 seconds) 2018-01-04T12:29:31Z Kevslinger joined #lisp 2018-01-04T12:29:41Z random-nick joined #lisp 2018-01-04T12:30:08Z makomo_ joined #lisp 2018-01-04T12:32:19Z Jarwin quit (Quit: WeeChat 1.9.1) 2018-01-04T12:32:27Z makomo quit (Ping timeout: 240 seconds) 2018-01-04T12:34:59Z marcux joined #lisp 2018-01-04T12:40:53Z smokeink joined #lisp 2018-01-04T12:46:51Z aoh_ is now known as aoh 2018-01-04T12:47:12Z eviltofu joined #lisp 2018-01-04T12:47:33Z aoh quit (Changing host) 2018-01-04T12:47:34Z aoh joined #lisp 2018-01-04T12:47:40Z eviltofu: Heyo! How does one invoke the debugger in emacs for SBCL? 2018-01-04T12:48:00Z eviltofu: I would like to see the state of some variables. 2018-01-04T12:48:21Z nirved joined #lisp 2018-01-04T12:49:00Z Shinmera: clhs break 2018-01-04T12:49:00Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_break.htm 2018-01-04T12:49:09Z smurfrobot quit (Remote host closed the connection) 2018-01-04T12:49:16Z Tobbi joined #lisp 2018-01-04T12:58:33Z ikki joined #lisp 2018-01-04T12:58:57Z no_bobby quit (Ping timeout: 240 seconds) 2018-01-04T13:00:21Z rpg joined #lisp 2018-01-04T13:01:42Z igemnace quit (Ping timeout: 265 seconds) 2018-01-04T13:03:28Z random-nick quit (Remote host closed the connection) 2018-01-04T13:03:50Z wxie joined #lisp 2018-01-04T13:04:33Z myrkraverk quit (Ping timeout: 264 seconds) 2018-01-04T13:05:54Z random-nick joined #lisp 2018-01-04T13:13:08Z pjb: eviltofu: the function to see to see the state of some variables is: PRINT 2018-01-04T13:13:48Z hajovonta: or just type the variable name in the repl 2018-01-04T13:14:00Z Shinmera: hajovonta: I presume he meant lexical variables. 2018-01-04T13:14:36Z hajovonta: yeah and it may not invoke the debugger. except when it's undefined 2018-01-04T13:15:13Z Shinmera: "it"? 2018-01-04T13:15:49Z p_l: if someone has L-bus Symbolics in need of parts, there are boards for $200 on sale https://www.ebay.com/sch/71271.1417/m.html?_nkw=&_armrs=1&_ipg=&_from= 2018-01-04T13:19:27Z igemnace joined #lisp 2018-01-04T13:22:58Z kajo quit (Ping timeout: 265 seconds) 2018-01-04T13:28:37Z smurfrobot joined #lisp 2018-01-04T13:29:10Z no_bobby joined #lisp 2018-01-04T13:29:37Z wxie quit (Remote host closed the connection) 2018-01-04T13:33:21Z zooey quit (Remote host closed the connection) 2018-01-04T13:33:21Z prometheus_falli quit (Read error: Connection reset by peer) 2018-01-04T13:33:49Z no_bobby quit (Ping timeout: 252 seconds) 2018-01-04T13:34:44Z zooey joined #lisp 2018-01-04T13:35:29Z shifty quit (Ping timeout: 248 seconds) 2018-01-04T13:36:00Z prometheus_falli joined #lisp 2018-01-04T13:36:50Z raynold quit (Quit: Connection closed for inactivity) 2018-01-04T13:42:13Z smokeink quit (Remote host closed the connection) 2018-01-04T13:44:29Z eviltofu: So when I insert a (break) into my code, I run it; when the debugger shows up. I type print "var name"? 2018-01-04T13:45:36Z marcux quit (Ping timeout: 260 seconds) 2018-01-04T13:46:40Z Shinmera: You can just hit return on the stack frame and it'll show you the lexical variables it knows about 2018-01-04T13:47:03Z Shinmera: ones it does not show won't be available anyway because they've been compiled away. 2018-01-04T13:53:11Z smurfrobot quit (Remote host closed the connection) 2018-01-04T13:55:05Z brendyn quit (Ping timeout: 240 seconds) 2018-01-04T13:57:58Z Shinmera: In other news, Colleen can now provide lookup similar to specbot for most of my libraries and projects. 2018-01-04T13:58:16Z Shinmera: Colleen: look up 3d-vectors vunit 2018-01-04T13:58:16Z Colleen: Function 3d-vectors:vunit https://shinmera.github.io/3d-vectors#FUNCTION%203D-VECTORS%3AVUNIT 2018-01-04T13:58:52Z Shinmera: Colleen: radiance 2.5 2018-01-04T13:58:52Z Colleen: Unknown command. Possible matches: 8, say, roll, set, mop, get, reload, ramble, login, grant, 2018-01-04T13:58:57Z Shinmera: Colleen: look up radiance 2.5 2018-01-04T13:58:58Z Colleen: 2.5 database https://shirakumo.github.io/radiance#2.5_database 2018-01-04T13:59:02Z Shinmera: There we go. 2018-01-04T13:59:13Z smokeink joined #lisp 2018-01-04T14:04:08Z orivej joined #lisp 2018-01-04T14:05:57Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-04T14:07:30Z myrkraverk joined #lisp 2018-01-04T14:09:24Z Murii joined #lisp 2018-01-04T14:16:03Z smurfrobot joined #lisp 2018-01-04T14:22:42Z oystewh quit (Read error: Connection reset by peer) 2018-01-04T14:23:22Z eviltofu: what is the stack frame? 2018-01-04T14:23:29Z Bike joined #lisp 2018-01-04T14:23:58Z Shinmera: The backtrace in sldb is composed of stack frames 2018-01-04T14:24:12Z beach: eviltofu: Are you using SLIME? 2018-01-04T14:25:27Z beach: eviltofu: When the execution stops because of the BREAK, you will see a window with one line for each currently active stack frame. If you put your cursor at the beginning of such a line and hit return, you should see the lexical variables that are still live. 2018-01-04T14:25:58Z beach: eviltofu: All that assumes that you compiled your program with a high value for DEBUG. 2018-01-04T14:26:28Z Shinmera: Or just the unit that you're breaking in. You can use C-u C-c C-c to compile a block with high debug. 2018-01-04T14:26:47Z eviltofu: I see restarts and backtrace 2018-01-04T14:27:00Z beach: The backtrace is the list of stack frames. 2018-01-04T14:27:08Z sigjuice quit (Ping timeout: 272 seconds) 2018-01-04T14:27:18Z eviltofu: ok so I highlight it and hit return 2018-01-04T14:27:41Z beach: You just put the Emacs point at the beginning of the line and hit return. 2018-01-04T14:27:43Z eviltofu: Thank you I see it now 2018-01-04T14:27:45Z beach: No hightlight. 2018-01-04T14:27:48Z beach: highlight. 2018-01-04T14:29:05Z smokeink quit (Ping timeout: 240 seconds) 2018-01-04T14:29:09Z eviltofu: ok I can see my object, the hash table inside it 2018-01-04T14:29:12Z eviltofu: thats great 2018-01-04T14:29:17Z sigjuice joined #lisp 2018-01-04T14:29:22Z eviltofu: Thanks 2018-01-04T14:29:40Z Shinmera: You can also inspect the values by clicking on them or moving the cursor to them and hitting return 2018-01-04T14:31:18Z Shinmera: (just clicking on a frame will also expand it btw) 2018-01-04T14:31:23Z eviltofu: Yes this is much better than printing the object 2018-01-04T14:32:05Z Shinmera: For values on the repl you can also easily inspect the last one with slime using M-x slime-inspect * RET 2018-01-04T14:32:48Z Shinmera: (you can substitute any other form the value of which to inspect for *, too) 2018-01-04T14:33:30Z eviltofu: C-c C-v tab 2018-01-04T14:36:09Z makomo_ is now known as makomo 2018-01-04T14:40:17Z eviltofu: ok so unrelated emacs question: can I ask here? 2018-01-04T14:41:00Z poly joined #lisp 2018-01-04T14:41:37Z poly left #lisp 2018-01-04T14:43:15Z hjudt_ left #lisp 2018-01-04T14:43:21Z ikki quit (Ping timeout: 260 seconds) 2018-01-04T14:43:33Z JonSmith joined #lisp 2018-01-04T14:43:40Z Xach: No 2018-01-04T14:43:48Z Xach: This is a channel for Common Lisp 2018-01-04T14:47:44Z varjagg joined #lisp 2018-01-04T14:48:02Z kolko quit (Ping timeout: 272 seconds) 2018-01-04T14:48:21Z JonSmith quit (Ping timeout: 264 seconds) 2018-01-04T14:49:16Z asarch joined #lisp 2018-01-04T14:50:30Z eviltofu quit (Quit: Page closed) 2018-01-04T14:53:15Z smurfrobot quit (Remote host closed the connection) 2018-01-04T14:53:47Z hjudt joined #lisp 2018-01-04T14:57:37Z rumbler3_ quit (Remote host closed the connection) 2018-01-04T14:59:47Z fikka quit (Ping timeout: 252 seconds) 2018-01-04T15:01:16Z eviltofu joined #lisp 2018-01-04T15:04:26Z LiamH joined #lisp 2018-01-04T15:07:29Z smurfrobot joined #lisp 2018-01-04T15:09:44Z jackdaniel: eviltofu: try on #emacs 2018-01-04T15:13:29Z pjb quit (Remote host closed the connection) 2018-01-04T15:13:39Z Karl_Dscc quit (Remote host closed the connection) 2018-01-04T15:16:50Z smurfrobot quit (Ping timeout: 252 seconds) 2018-01-04T15:19:59Z knobo quit (Ping timeout: 248 seconds) 2018-01-04T15:24:04Z malice joined #lisp 2018-01-04T15:27:16Z smurfrobot joined #lisp 2018-01-04T15:28:04Z eviltofu quit (Ping timeout: 260 seconds) 2018-01-04T15:28:10Z fikka joined #lisp 2018-01-04T15:30:05Z varjagg quit (Ping timeout: 265 seconds) 2018-01-04T15:31:10Z markong quit (Quit: Konversation terminated!) 2018-01-04T15:31:23Z markong joined #lisp 2018-01-04T15:33:53Z fikka quit (Ping timeout: 252 seconds) 2018-01-04T15:36:59Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-04T15:37:17Z lroca joined #lisp 2018-01-04T15:37:51Z scymtym quit (Ping timeout: 240 seconds) 2018-01-04T15:39:36Z malice: Anyone knows drakma? Can I somehow check headers of the request sent by http-request? I'm interested in headers created when using cookies. 2018-01-04T15:39:58Z Shinmera: I believe the manual shows a way that prints the sent data 2018-01-04T15:40:46Z malice: I'll check that. Thanks! 2018-01-04T15:41:12Z fikka joined #lisp 2018-01-04T15:47:54Z Xach: malice: sometimes i use nc on localhost to see. 2018-01-04T15:47:59Z dddddd joined #lisp 2018-01-04T15:54:39Z hajovonta quit (Remote host closed the connection) 2018-01-04T15:55:13Z rumbler31 joined #lisp 2018-01-04T15:55:33Z mishoo quit (Ping timeout: 263 seconds) 2018-01-04T15:55:34Z JonSmith joined #lisp 2018-01-04T15:57:19Z python476 joined #lisp 2018-01-04T15:59:20Z dec0n quit (Read error: Connection reset by peer) 2018-01-04T16:02:30Z smurfrobot quit (Remote host closed the connection) 2018-01-04T16:02:42Z Cymew quit (Remote host closed the connection) 2018-01-04T16:02:54Z rpg joined #lisp 2018-01-04T16:08:57Z Cymew joined #lisp 2018-01-04T16:11:01Z smurfrobot joined #lisp 2018-01-04T16:12:33Z Achylles joined #lisp 2018-01-04T16:12:46Z KZiemian joined #lisp 2018-01-04T16:13:35Z Cymew quit (Ping timeout: 265 seconds) 2018-01-04T16:13:38Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-04T16:14:59Z Cymew joined #lisp 2018-01-04T16:15:11Z rpg joined #lisp 2018-01-04T16:15:26Z smurfrobot quit (Remote host closed the connection) 2018-01-04T16:15:39Z smurfrobot joined #lisp 2018-01-04T16:19:32Z Cymew quit (Ping timeout: 252 seconds) 2018-01-04T16:20:31Z python476 quit (Remote host closed the connection) 2018-01-04T16:21:02Z Cymew joined #lisp 2018-01-04T16:21:06Z hhdave joined #lisp 2018-01-04T16:21:24Z malice: Xach: I will check that out too 2018-01-04T16:21:33Z malice: Though now I leave. Thanks Shinmera, it was in manual after all 2018-01-04T16:21:47Z malice quit (Remote host closed the connection) 2018-01-04T16:25:35Z Cymew quit (Ping timeout: 248 seconds) 2018-01-04T16:30:09Z smurfrobot quit (Remote host closed the connection) 2018-01-04T16:30:31Z smurfrobot joined #lisp 2018-01-04T16:36:57Z SaganMan joined #lisp 2018-01-04T16:38:24Z mishoo joined #lisp 2018-01-04T16:38:44Z pjb` joined #lisp 2018-01-04T16:40:32Z ikki joined #lisp 2018-01-04T16:40:57Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-04T16:41:17Z dieggsy joined #lisp 2018-01-04T16:41:32Z FreeBirdLjj joined #lisp 2018-01-04T16:42:04Z knobo joined #lisp 2018-01-04T16:42:07Z hexfive joined #lisp 2018-01-04T16:43:56Z SqREL quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-04T16:44:45Z damke joined #lisp 2018-01-04T16:45:31Z pjb`` joined #lisp 2018-01-04T16:46:37Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-04T16:47:25Z KZiemian quit (Quit: Page closed) 2018-01-04T16:47:41Z pjb` quit (Ping timeout: 255 seconds) 2018-01-04T16:47:45Z damke_ quit (Ping timeout: 265 seconds) 2018-01-04T16:49:46Z smurfrobot quit (Remote host closed the connection) 2018-01-04T16:53:33Z pjb`` quit (Ping timeout: 246 seconds) 2018-01-04T16:55:19Z Jesin joined #lisp 2018-01-04T16:55:47Z smurfrobot joined #lisp 2018-01-04T16:56:08Z zooey quit (Remote host closed the connection) 2018-01-04T16:56:16Z scymtym joined #lisp 2018-01-04T16:57:02Z zooey joined #lisp 2018-01-04T16:57:47Z pjb`` joined #lisp 2018-01-04T16:58:41Z turkja quit (Ping timeout: 260 seconds) 2018-01-04T17:00:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-04T17:02:11Z pjb`` quit (Ping timeout: 240 seconds) 2018-01-04T17:04:19Z dieggsy quit (Remote host closed the connection) 2018-01-04T17:05:01Z fikka quit (Ping timeout: 256 seconds) 2018-01-04T17:05:31Z Arcaelyx joined #lisp 2018-01-04T17:05:47Z nowhere_man joined #lisp 2018-01-04T17:05:49Z dieggsy joined #lisp 2018-01-04T17:06:02Z smurfrobot joined #lisp 2018-01-04T17:08:49Z pjb`` joined #lisp 2018-01-04T17:14:08Z pjb`` quit (Ping timeout: 276 seconds) 2018-01-04T17:14:24Z damke_ joined #lisp 2018-01-04T17:14:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-04T17:15:58Z pjb`` joined #lisp 2018-01-04T17:17:09Z damke quit (Ping timeout: 264 seconds) 2018-01-04T17:17:17Z fikka joined #lisp 2018-01-04T17:20:37Z pjb`` quit (Ping timeout: 255 seconds) 2018-01-04T17:22:17Z pjb`` joined #lisp 2018-01-04T17:25:26Z warweasle joined #lisp 2018-01-04T17:27:05Z pjb`` quit (Ping timeout: 240 seconds) 2018-01-04T17:28:24Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2018-01-04T17:31:30Z Tobbi quit (Remote host closed the connection) 2018-01-04T17:31:39Z dieggsy quit (Remote host closed the connection) 2018-01-04T17:32:34Z EvilTofu joined #lisp 2018-01-04T17:33:11Z Tobbi joined #lisp 2018-01-04T17:33:35Z pjb`` joined #lisp 2018-01-04T17:34:04Z EvilTofu quit (Client Quit) 2018-01-04T17:34:27Z gravicappa quit (Ping timeout: 240 seconds) 2018-01-04T17:38:32Z pjb`` quit (Ping timeout: 255 seconds) 2018-01-04T17:41:19Z troydm joined #lisp 2018-01-04T17:42:41Z zooey quit (Remote host closed the connection) 2018-01-04T17:44:01Z fikka quit (Ping timeout: 248 seconds) 2018-01-04T17:45:08Z SqREL joined #lisp 2018-01-04T17:45:11Z SqREL quit (Client Quit) 2018-01-04T17:45:47Z m00natic quit (Remote host closed the connection) 2018-01-04T17:46:03Z pjb`` joined #lisp 2018-01-04T17:46:06Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-04T17:46:07Z hhdave quit (Ping timeout: 248 seconds) 2018-01-04T17:48:06Z zooey joined #lisp 2018-01-04T17:49:23Z rpg joined #lisp 2018-01-04T17:49:42Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-01-04T17:50:49Z orivej joined #lisp 2018-01-04T17:51:57Z pjb`` quit (Remote host closed the connection) 2018-01-04T17:52:46Z Tobbi quit (Remote host closed the connection) 2018-01-04T17:55:42Z Tobbi joined #lisp 2018-01-04T17:57:15Z smurfrobot joined #lisp 2018-01-04T18:03:08Z smurfrobot quit (Remote host closed the connection) 2018-01-04T18:06:17Z FreeBirdLjj joined #lisp 2018-01-04T18:06:38Z alandipert quit (Quit: Ping timeout (120 seconds)) 2018-01-04T18:06:43Z pjb`` joined #lisp 2018-01-04T18:06:47Z knobo quit (Ping timeout: 268 seconds) 2018-01-04T18:07:04Z alandipert joined #lisp 2018-01-04T18:08:22Z knobo joined #lisp 2018-01-04T18:12:41Z shka joined #lisp 2018-01-04T18:14:12Z Tobbi quit (Remote host closed the connection) 2018-01-04T18:14:17Z junxit joined #lisp 2018-01-04T18:15:21Z pjb`` quit (Remote host closed the connection) 2018-01-04T18:16:33Z Tobbi joined #lisp 2018-01-04T18:16:50Z junxit: I'm using drakma to connect to several APIs, and one of them is coming back with "error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version" ... I have a call that works in curl from the command line (MacOSX), but doesn't work from drakma ...other API calls to different sites work fine. I'm not sure what the next step in troubleshooting is, any suggestions? 2018-01-04T18:17:46Z pjb`` joined #lisp 2018-01-04T18:18:08Z lroca quit (Ping timeout: 248 seconds) 2018-01-04T18:20:14Z SaganMan quit (Quit: oyasumi) 2018-01-04T18:27:11Z _cosmonaut_ quit (Ping timeout: 256 seconds) 2018-01-04T18:27:19Z pjb`` quit (Remote host closed the connection) 2018-01-04T18:28:44Z EvW joined #lisp 2018-01-04T18:30:19Z pjb`` joined #lisp 2018-01-04T18:31:51Z razzy: does anyone know about #ocp-storage open computing project? 2018-01-04T18:32:13Z razzy: sorry moving to lispcafe :] 2018-01-04T18:35:14Z raynold joined #lisp 2018-01-04T18:35:19Z pjb`` quit (Ping timeout: 255 seconds) 2018-01-04T18:36:05Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-04T18:37:45Z smurfrobot joined #lisp 2018-01-04T18:38:55Z smurfrobot quit (Remote host closed the connection) 2018-01-04T18:39:34Z rpg: junxit: Just from reading that, I wonder if Drakma is doing the authentication wrong. It looks like maybe you're using TLS and you have the wrong version? 2018-01-04T18:39:47Z rpg knows nothing about TLS or its versions 2018-01-04T18:40:20Z junxit: yeah, but I'm not finding how to change/force that ... it's weird that it is only the one site that does it. 2018-01-04T18:40:53Z junxit: I tested it on a remote linux box, and it works. It also has always worked in the past *sigh* 2018-01-04T18:40:55Z varjagg joined #lisp 2018-01-04T18:41:06Z rpg: junxit: You probably need to figure out first if it's an error in Drakma, or an error in the remote site. 2018-01-04T18:41:49Z junxit: I tested the same call using curl from the command line (outside of lisp) and it works. 2018-01-04T18:42:12Z Xach: junxit: does it work if you use dexador? that's an alternative to drakma 2018-01-04T18:42:21Z Xach: I'm just curious - feel free not to try 2018-01-04T18:42:25Z lroca joined #lisp 2018-01-04T18:42:42Z junxit: but drakma is working for other sites .. I'll give it a try 2018-01-04T18:44:16Z rpg: junxit: All the run with curl tells you is that curl and the remote site are compatible. Unless you know how curl's behavior differs from Drakma's behavior, you are not much further along (except that you know that the remote site isn't just plain broken). 2018-01-04T18:44:28Z FreeBirdLjj joined #lisp 2018-01-04T18:45:00Z cibs quit (Quit: Lost terminal) 2018-01-04T18:45:05Z rpg: A good start in debugging might be to look at curl's command-line options and see if there's some auth setting that will make curl *also* break. That might help narrow things down. Or you get into Drakma and start tracing things. Or both 2018-01-04T18:45:29Z lroca quit (Remote host closed the connection) 2018-01-04T18:45:42Z damke joined #lisp 2018-01-04T18:46:11Z lroca joined #lisp 2018-01-04T18:46:35Z junxit: hmm ... dexador throws the same cl+ssl error 2018-01-04T18:46:55Z asarch: Is there any extension to Common Lisp to do presentations a la Racket? 2018-01-04T18:48:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T18:49:34Z tomlukeywood joined #lisp 2018-01-04T18:50:12Z tomlukeywood: how would i initialise all the elements of an array with a value in common lisp? 2018-01-04T18:50:53Z rumbler31: junxit: are the problematic apis public? 2018-01-04T18:51:47Z lroca quit (Quit: lroca) 2018-01-04T18:52:15Z junxit: yeah, they're Jira APIs and it seems to be a problem with my laptop as it works on a remote linux box 2018-01-04T18:52:50Z junxit: maybe cl+ssl issue on macos or something 2018-01-04T18:53:23Z pjb`` joined #lisp 2018-01-04T18:53:39Z junxit: both drakma and dexador throw the same SSL error `A failure in the SSL library occurred on handle # (return code: 1). 2018-01-04T18:53:39Z junxit: SSL error queue: 2018-01-04T18:53:39Z junxit: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version` 2018-01-04T18:54:36Z lroca joined #lisp 2018-01-04T18:54:39Z rumbler31: https://github.com/crystal-lang/crystal/issues/4618 2018-01-04T18:54:51Z rumbler31: junxit: looks like you're not the only one 2018-01-04T18:55:19Z rumbler31: is your curl from macports/homebrew? 2018-01-04T18:55:42Z dieggsy joined #lisp 2018-01-04T18:55:56Z orivej quit (Ping timeout: 255 seconds) 2018-01-04T18:57:00Z junxit: @tomlukeywood use :initial-element or :initial-contents ... :initial-element sets all elements to the same value, :initial-contents you have to specify a value for every element in the array 2018-01-04T18:57:14Z tomlukeywood: thanks 2018-01-04T18:57:50Z dieggsy quit (Remote host closed the connection) 2018-01-04T18:57:58Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-04T18:59:12Z arbv quit (Ping timeout: 268 seconds) 2018-01-04T18:59:50Z orivej joined #lisp 2018-01-04T19:00:08Z junxit: @rumbler31 new laptop, so not using macports/homebrew .. openssl and curl seem to be stock 2018-01-04T19:00:08Z arbv joined #lisp 2018-01-04T19:00:23Z junxit: openssl version -> OpenSSL 0.9.8zh 14 Jan 2016 2018-01-04T19:00:23Z junxit: 2018-01-04T19:00:35Z warweasle quit (Quit: If I do some work I might not be bored.) 2018-01-04T19:00:41Z lroca is now known as _roca 2018-01-04T19:00:45Z pjb`` quit (Remote host closed the connection) 2018-01-04T19:00:46Z pjb``` joined #lisp 2018-01-04T19:00:55Z rumbler31: can you replicate the error with the method in the issue? 2018-01-04T19:01:48Z domovod joined #lisp 2018-01-04T19:02:56Z junxit: yep, 1795:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/ssl/s23_lib.c:185: 2018-01-04T19:05:09Z junxit: well, not exactly the same error, but seems close enough 2018-01-04T19:07:28Z junxit: I've been putting off an update to Xcode, I'll update and see. If not, I'll install the homebrew version of openssl 2018-01-04T19:07:28Z pjb```` joined #lisp 2018-01-04T19:08:02Z norserob quit (Read error: Connection reset by peer) 2018-01-04T19:08:51Z junxit: also, the same openssl command connects to the other sites that *are* working. I'm going to guess that they updated the Jira server over the holiday, and it introduced an incompatibility 2018-01-04T19:09:41Z norserob joined #lisp 2018-01-04T19:09:51Z pjb``` quit (Ping timeout: 250 seconds) 2018-01-04T19:10:50Z junxit: thanks much, @rpg @rumbler31 and @Xach 2018-01-04T19:11:33Z rumbler31: gl! 2018-01-04T19:11:50Z tomlukeywood: i am trying to give constants as parameters to (make-array) however i get an error when doing so. what is the correct way? 2018-01-04T19:11:51Z tomlukeywood: https://hastebin.com/isejaqorud.lisp 2018-01-04T19:13:40Z pjb```` quit (Remote host closed the connection) 2018-01-04T19:14:01Z orivej quit (Ping timeout: 255 seconds) 2018-01-04T19:14:11Z pjb````` joined #lisp 2018-01-04T19:15:04Z Xach: tomlukeywood: '(foo bar) evaluates is a list of two symbols. (list foo bar) will evaluate to a list of the value of two variables, FOO and BAR. 2018-01-04T19:15:17Z Xach: You want the latter. 2018-01-04T19:15:20Z tomlukeywood: thanks 2018-01-04T19:15:22Z junxit: ^^ that ... beat me to it 2018-01-04T19:15:49Z Xach: tomlukeywood: also, it's good to syntactically mark constants so they don't clash with other bindings. 2018-01-04T19:16:10Z tomlukeywood: what do you mean like myprogram-rows? 2018-01-04T19:16:34Z Xach: tomlukeywood: In CL I often see constants marked with crosses, like +rows+ and +columns+ 2018-01-04T19:17:03Z tomlukeywood: ok will do 2018-01-04T19:17:11Z fikka joined #lisp 2018-01-04T19:17:39Z pjb````` quit (Remote host closed the connection) 2018-01-04T19:18:58Z rpg: I think Robert Strandh has a lisp style guide somewhere on the web that covers this sort of thing. It was very good, I thought. 2018-01-04T19:19:16Z orivej joined #lisp 2018-01-04T19:21:11Z tomlukeywood: rpg: this? https://github.com/robert-strandh/CL-reference 2018-01-04T19:21:42Z rpg: No: I was talking about a style manual, not a language manual. 2018-01-04T19:22:05Z nipav joined #lisp 2018-01-04T19:22:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-04T19:23:12Z rpg: Google's is here https://google.github.io/styleguide/lispguide.xml (haven't read it) 2018-01-04T19:24:03Z rpg: maybe I'm mis-remembering. 2018-01-04T19:25:12Z pjb````` joined #lisp 2018-01-04T19:26:04Z rpg_ joined #lisp 2018-01-04T19:26:35Z rpg_: Actually, Robert Strandh's style guide is a PDF. 2018-01-04T19:26:46Z nipav quit (Quit: leaving) 2018-01-04T19:28:35Z LocaMocha quit (Ping timeout: 240 seconds) 2018-01-04T19:28:44Z rpg quit (Ping timeout: 252 seconds) 2018-01-04T19:29:19Z rpg_: I can't find it any more. If he's around, and doesn't object, I'd be happy to share it. 2018-01-04T19:29:41Z rpg_ is now known as rpg 2018-01-04T19:35:57Z megalography quit (Ping timeout: 240 seconds) 2018-01-04T19:36:44Z random-nick quit (Remote host closed the connection) 2018-01-04T19:42:05Z shka: rpg: there are latex pdfs 2018-01-04T19:42:09Z shka: *sources 2018-01-04T19:42:20Z rpg: shka: Oh, where are they? 2018-01-04T19:42:28Z shka: one second! 2018-01-04T19:45:07Z python476 joined #lisp 2018-01-04T19:46:58Z shka: rpg: i can't find it, i can swear it used to be in the SICL, though… 2018-01-04T19:47:00Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-04T19:47:02Z shka: i will check git history 2018-01-04T19:48:08Z shka: yeah 2018-01-04T19:48:12Z shka: rpg: \chapter{General \commonlisp{} style guide} 2018-01-04T19:48:49Z shka: rpg: here it is https://github.com/robert-strandh/SICL/blob/master/Specification/chap-general-coding-style.tex 2018-01-04T19:52:04Z Achylles quit (Remote host closed the connection) 2018-01-04T19:54:50Z phoe: github should auto-render TeX files in its preview, or at least offer it as an option. 2018-01-04T19:55:33Z fiddlerwoaroof: loop is lispy because a lisp is fundamentally just a way to write a bunch of domain specific languages to solve your problems in :) 2018-01-04T19:59:15Z phoe: LISP actually stands for Language Idiom Subdomain Protocol, which is a set of rules for developing custom DSLs to resolve particular classes of problems. 2018-01-04T19:59:36Z phoe: 2018-01-04T19:59:55Z warweasle joined #lisp 2018-01-04T20:01:28Z damke_ joined #lisp 2018-01-04T20:01:52Z nowhereman joined #lisp 2018-01-04T20:03:43Z nowhere_man quit (Ping timeout: 248 seconds) 2018-01-04T20:03:51Z asarch quit (Quit: Leaving) 2018-01-04T20:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-04T20:07:29Z jmercouris joined #lisp 2018-01-04T20:08:35Z phoe: gah, I want to sit down and work on the UltraSpec. real life knows different though and keeps on throwing health/family/various other real life issues at me. I don't expect to be able to sit down and focus on it for the next 2+ months. 2018-01-04T20:08:52Z phoe: and I God damn want to lead this projet to a successful end. 2018-01-04T20:08:55Z jmercouris: phoe: It's okay, it isn't urgent 2018-01-04T20:08:56Z pjb````` quit (Remote host closed the connection) 2018-01-04T20:09:11Z jmercouris: Whether it gets down now, or never, is okay, don't stress out about it 2018-01-04T20:09:17Z Shinmera: I don't think he thinks it's urgent, he just wants to work on it. 2018-01-04T20:09:33Z Shinmera: Similar to how I want to do pretty much anything except study for upcoming exams 2018-01-04T20:09:40Z jmercouris: Ah, I know that feeling 2018-01-04T20:09:44Z phoe: jmercouris: I'm just freaking sorry to let down all the people who offer me support at the moment and tell them that I'm not yet ready to lead the way. 2018-01-04T20:10:13Z jmercouris: phoe: Yeah, I can understand that, but it's okay, we are all human, with likely similar issues 2018-01-04T20:10:28Z jmercouris: phoe: If they are good people, they will understand 2018-01-04T20:10:32Z jmercouris: If they are not, then fuck them 2018-01-04T20:10:55Z phoe: I did a crapload of work converting things to DokuWiki and this work is right now pretty much useless for further work because I'm the only person around here right now who knows the details of DokuWiki format that I chose and the kinks and culprits of the current files. 2018-01-04T20:11:37Z phoe: I screwed up by that, I should have started from the beginning with distributed knowledge instead of knowledge that's stuck in my head and I have no time to sit down and utilize it. 2018-01-04T20:11:47Z jmercouris: Next time you'll do better 2018-01-04T20:12:00Z phoe: well, shit. the only excuse I have is, all things take their time in the land of Lisp. 2018-01-04T20:12:11Z jmercouris: I think it's a good thing to share your experience, because maybe someone reading this channel log will avoid the same 2018-01-04T20:12:33Z jmercouris: All things take time in life, it is not a race 2018-01-04T20:12:59Z random-nick joined #lisp 2018-01-04T20:13:22Z rpg: Is there anything like a PATHNAME-DESIGNATOR-P function? Kind of hate to keep writing (or (stringp x) (pathnamep x)) 2018-01-04T20:14:04Z Shinmera: Why would you need to do that anyway 2018-01-04T20:14:21Z jasom: can't pandoc output DokuWiki? 2018-01-04T20:14:23Z Shinmera: All pathname functions take designators already so if something falls outside of that it'll error. 2018-01-04T20:14:37Z jmercouris: I didn't think try-catch was a lispy way of doing things 2018-01-04T20:14:59Z rpg: Shinmera: I have something like the case in CFFI -- I want to be able to supply an s-expression that evaluates to a pathname, in place of a pathname. 2018-01-04T20:15:10Z phoe: rpg: define your custom type PATHNAME-DESIGNATOR and use this. 2018-01-04T20:15:14Z jasom: jmercouris: handler-case is perfectly lispy 2018-01-04T20:15:18Z Shinmera: rpg: I don't understand 2018-01-04T20:15:43Z rpg: So it's (if (typep x '(or string pathname)) x (eval x)) 2018-01-04T20:16:03Z phoe: rpg: it's pointless 2018-01-04T20:16:09Z phoe: this is equivalent to X 2018-01-04T20:16:18Z rpg: phoe: not if X is quoted 2018-01-04T20:16:20Z phoe: suh I mean, (eval X) 2018-01-04T20:16:23Z Shinmera: Strings and pathnames evaluate to themselves 2018-01-04T20:16:27Z phoe: ^ 2018-01-04T20:16:32Z rpg: OK, good point. 2018-01-04T20:16:36Z jmercouris: jasom: Hey jasom, I was wondering, would you like to be mentioned in the release credits? 2018-01-04T20:16:43Z Shinmera: And the next question is: why are you using eval? 2018-01-04T20:17:12Z jasom: jmercouris: doesn't matter either way to me 2018-01-04T20:17:40Z jmercouris: Ok, cool, then I will probably mention you 2018-01-04T20:17:44Z jasom: jmercouris: thanks 2018-01-04T20:17:45Z rpg: Shinmera: I'm running experiments, and I want to dump a *portable* file designator into the output. E.g., I want the experiment file to report that the data was in (asdf:system-relative-pathname "experiments" "datafile1") 2018-01-04T20:18:04Z pjb````` joined #lisp 2018-01-04T20:18:04Z pjb````` quit (Remote host closed the connection) 2018-01-04T20:18:25Z rpg: So I have a table of file designators that are s-expressions that can be printed into the script and then get evaluated to point to real files. 2018-01-04T20:19:03Z Shinmera: That tells me nothing about why you think you need to use eval? 2018-01-04T20:19:17Z shka: you shall not use eval! 2018-01-04T20:19:30Z shka: protect him from evil! 2018-01-04T20:19:52Z rpg: Shinmera: those expressions are quoted (so they can be echoed). 2018-01-04T20:19:52Z _death: and live apply ever after 2018-01-04T20:19:58Z shka: :D 2018-01-04T20:20:24Z rpg: The quoted s-expressions are portable designators. Namestrings are not 2018-01-04T20:20:27Z shka: rpg: why not program custom writer and reader? 2018-01-04T20:20:47Z rpg: This isn't a reader/writer problem. 2018-01-04T20:20:55Z Shinmera: rpg: Use a macro that emits a quoted and unquoted version. One for printing, the other for the value. 2018-01-04T20:21:20Z Shinmera: rpg: I still don't quite understand though-- what pathname do you want to output? The one in which your experiment resides or? 2018-01-04T20:21:31Z rpg: Shinmera: that just moves the EVAL somewhere else! 2018-01-04T20:21:39Z Shinmera: No? 2018-01-04T20:21:58Z jmercouris: Can anyone please help with a CFFI issue I'm having, getting the return back from a function: https://gist.github.com/875972985687a4d9d0f4afb80cb77975 2018-01-04T20:22:05Z jmercouris: I'm simply trying to print it to console 2018-01-04T20:22:23Z rpg: Shinmera: I want to emit into a transcript file the *portable* file designator (the asdf:system-relative-pathname expression), so that the experiments can be replicated, but I need to evaluate them to actually get the data to process. 2018-01-04T20:22:39Z rpg: I could spend an hour futzing around or type "EVAL". 2018-01-04T20:22:43Z jmercouris: Within my callback, "callbacky" I'm trying to get the value of: webkit-javascript-result-get-value 2018-01-04T20:22:57Z Shinmera: (defmacro foo (expr) `(list :value ,expr :expr ',expr)) ; (foo (make-pathname :name "a")) => (:value "a" :expr (make-pathname :name "a")) 2018-01-04T20:23:00Z Xach: rpg: If it were me, I'd store the arguments to asdf:system-relative-pathname and apply them later. I would not use eval. 2018-01-04T20:23:51Z Shinmera: Err, :value #p"a", but you get the idea 2018-01-04T20:24:51Z rpg: If this was more than a one off, I think you two would be right, but since it's a one off -- and not exposed to anyone to be a security threat -- these solutions smell like over-thinking. 2018-01-04T20:24:54Z ykoda quit (Remote host closed the connection) 2018-01-04T20:25:19Z Shinmera: It's more about learning how to think properly. 2018-01-04T20:25:24Z Xach: but then what's the fun of irc :~( 2018-01-04T20:25:46Z jasom: jmercouris: that's printing a pointer 2018-01-04T20:25:59Z rpg: Shinmera: I know how to do this if I'm going to do it right, but there's also an issue of knowing what's the proper cost-benefit tradeoff. 2018-01-04T20:26:18Z Shinmera: I've yet to encounter a problem that I could solve significantly faster with eval. 2018-01-04T20:26:41Z shka: hehe 2018-01-04T20:26:50Z jasom: jmercouris: also if you named it scratchy.lisp instead of scratch.txt gist would syntax highlight it 2018-01-04T20:27:03Z shka: i will remember this quote "It's more about learning how to think properly." 2018-01-04T20:27:20Z shka: i will use in some dystopian s-f novel :D 2018-01-04T20:28:03Z Shinmera: shka: I'll want at least 90% of the profits off of that novel as royalties for that sentence. 2018-01-04T20:28:04Z jasom: jmercouris: reading the webkit docs, you get a pointer to a JSValue, the address of that pointer appears to be #X7FFFF002C830 2018-01-04T20:28:20Z Shinmera: shka: Just to keep things nicely meta-dystopian 2018-01-04T20:29:08Z shka: will do 2018-01-04T20:29:21Z jmercouris: jasom: I'll name em better in the future :D 2018-01-04T20:29:23Z jmercouris: I didn't know that 2018-01-04T20:29:45Z jmercouris: jasom: Right, but given that pointer, how do I get that value at that pointer in lisp? 2018-01-04T20:29:57Z jasom: jmercouris: https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-run-javascript-finish 2018-01-04T20:29:59Z jmercouris: can I not just pass it to cffi:convert-from-foreign? 2018-01-04T20:30:17Z jasom: jmercouris: no, because you don't know what it is yet 2018-01-04T20:30:27Z jasom: you need to do the equivalent of the C code at the link I just posted 2018-01-04T20:30:38Z jasom: that decodes it as a string or prints a warning 2018-01-04T20:30:49Z jasom: if you don't know the type then you'll have to handle all the possible JS values 2018-01-04T20:31:14Z jasom: it's probably worthwhile to write a function to convert a JSValueRef to a lisp value, but you need to deal with NaN and Infinity that don't exist in lisp 2018-01-04T20:31:18Z jmercouris: But if you look on line number 19 you'll see webkit-javascript-result-get-value 2018-01-04T20:31:31Z jasom: jmercouris: that gives you a JSValueRef 2018-01-04T20:31:46Z jasom: it could be an array an object a string &ct. 2018-01-04T20:31:50Z Bike: most implementations use ieee floats i think, yhou just don't usually get a hold of them 2018-01-04T20:31:55Z jasom: any value representable in javascript 2018-01-04T20:31:56Z z3t0 joined #lisp 2018-01-04T20:32:10Z rpg: Xach, Shinmera: I think there's a temptation to try to always to The Right Thing, but it's important also not to confuse production code with a utility script. 2018-01-04T20:32:48Z Shinmera: rpg: You can do whatever you want, naturally, but I can also criticise you for it. Your choice whether you want to let that bother you :) 2018-01-04T20:32:55Z jmercouris: jasom: So I need to make a JSValueRef? 2018-01-04T20:33:05Z jmercouris: This is really confusing me trying to go back and forth between the languages 2018-01-04T20:33:16Z jasom: jmercouris: no, result-get-value gives you a JSValueRef 2018-01-04T20:33:21Z jstypo quit (Ping timeout: 264 seconds) 2018-01-04T20:33:24Z Bike: jmercouris: the c code here checks whether value (the result from webkit_javascript_result_get_value) is a javascript string, and if it is, makes a c string with its data. you'd have to do similarly. 2018-01-04T20:33:25Z jasom: jmercouris: you now need to decode that into something lisp can use 2018-01-04T20:33:26Z rpg: Shinmera: I concede that you are correct in the general principle. 2018-01-04T20:33:48Z jmercouris: Bike: So in my code example I posted, I just want to assume for now that the result is a string 2018-01-04T20:34:01Z jmercouris: Obviously I should check to see that it is an error and not a string 2018-01-04T20:34:03Z Bike: you still have to do JSValueToStringCopy or whatever, apparently 2018-01-04T20:34:12Z jmercouris: but why would cffi:convert-from-foreign not work? 2018-01-04T20:34:18Z Bike: because JSValueRefs are not strings 2018-01-04T20:34:21Z Bike: they are JSValueRefs 2018-01-04T20:34:24Z jmercouris: Ah shit, I didn't see that 2018-01-04T20:34:30Z Bike: any javascript value 2018-01-04T20:34:31Z Shinmera: IF you don't need to keep value identity you could just serialise to JSON and parse that lisp native, and back. 2018-01-04T20:34:33Z jasom: and JSValueRefs might *hold* strings but they aren't strings themselves 2018-01-04T20:34:46Z jstypo joined #lisp 2018-01-04T20:34:49Z jmercouris: jasom: that's the key part I was missing in my head 2018-01-04T20:35:28Z jmercouris: What an absolutely insane API 2018-01-04T20:35:31Z jmercouris: let me give it a try now 2018-01-04T20:35:52Z jmercouris: Thanks for catching that 2018-01-04T20:35:59Z phoe: my instincts tell me that if something is named *Ref, then it is a reference 2018-01-04T20:36:11Z Bike: how else would it work? if it can return any javascript value there has to be some kind of type information, it couldn't just be a c string 2018-01-04T20:36:18Z phoe: so you need to somehow get the object that it references 2018-01-04T20:36:26Z phoe: dereference it, in other words 2018-01-04T20:36:28Z jmercouris: Bike: It should ALWAYS return a string, because all javascript values may be represented by JSON 2018-01-04T20:36:35Z Shinmera: Not true, actually 2018-01-04T20:36:40Z jasom: jmercouris: no they can't 2018-01-04T20:36:45Z jasom: jmercouris: functions can't 2018-01-04T20:36:55Z Bike: that's like having a lisp system where everything was printed to string before being passed around 2018-01-04T20:36:59Z Bike: i'm not a fan 2018-01-04T20:36:59Z jmercouris: Okay, but how would one even use a javascript function returned in C? 2018-01-04T20:37:07Z Bike: call it, presumably 2018-01-04T20:37:13Z Shinmera: Or pass it as an argument somewhere 2018-01-04T20:37:16Z Bike: and what if it was a number? you want to parse it again? 2018-01-04T20:37:16Z jmercouris: How could you invoke from a C context? 2018-01-04T20:37:19Z jasom: jmercouris: you would pass it in as an argument to a function 2018-01-04T20:37:25Z Bike: some kind of JSCallFunction function, i guess 2018-01-04T20:37:36Z jmercouris: Okay, that's a use case, I concede :D 2018-01-04T20:37:47Z jmercouris: The Cocoa API is just so different I expect only a string 2018-01-04T20:38:02Z jasom: I *cannot* find the docs for JSValueRef anywhere 2018-01-04T20:39:12Z jasom: I found the apple version in ObjC though .... 2018-01-04T20:39:21Z jasom: https://developer.apple.com/documentation/javascriptcore/jsvalueref.h 2018-01-04T20:39:41Z pjb````` joined #lisp 2018-01-04T20:39:53Z jasom: I'm guessing the interface is similar 2018-01-04T20:39:57Z z3t0 quit (Quit: Leaving...) 2018-01-04T20:42:02Z python476 quit (Read error: Connection reset by peer) 2018-01-04T20:42:21Z ryanbw quit (Ping timeout: 264 seconds) 2018-01-04T20:43:52Z jasom just asked on #webkitgtk+ 2018-01-04T20:44:57Z jmercouris: Ok, great 2018-01-04T20:44:59Z pjb````` quit (Remote host closed the connection) 2018-01-04T20:45:02Z jmercouris: I'm looking through cl-webkit as well 2018-01-04T20:46:57Z pjb````` joined #lisp 2018-01-04T20:47:31Z warweasle quit (Quit: Fly, you fools...but come grab me first!) 2018-01-04T20:49:08Z osune joined #lisp 2018-01-04T20:53:54Z jmercouris: Is there some sort of thing like sldb-eval-with-break, so I don't have to change the function and re-eval it with a break inside? 2018-01-04T20:54:12Z Bike: what would that do? 2018-01-04T20:54:16Z jmercouris: Better yet, is there a good guide someone may reccomend for debugging with slime? 2018-01-04T20:54:25Z jmercouris: Bike: I want to start a function and go through it form by form 2018-01-04T20:54:32Z jmercouris: examining values of things 2018-01-04T20:54:33Z aeth: osune_: I was refering to the difference between CL and ISO 8601. 2018-01-04T20:54:35Z Bike: oh, stepping then. 2018-01-04T20:54:45Z Bike: (i have no advice on that) 2018-01-04T20:54:50Z jasom: jmercouris: sbcl does have a stepper, I think you need to compile with a high level of debug for it to be useful though 2018-01-04T20:54:55Z jasom hasn't really used it 2018-01-04T20:55:15Z jmercouris: Hmm, okay, I see, yeah, debugging style isn't a very lispy way of dev I guess 2018-01-04T20:55:27Z jmercouris: There seem to be few faculties for support it and they are implementation dependent 2018-01-04T20:55:28Z jasom: jmercouris: it is, it's just stepping isn't that common 2018-01-04T20:55:41Z jmercouris: That's what I mean, like step through debugging 2018-01-04T20:55:41Z jasom: debugging in C is implementation dependent as well ;) 2018-01-04T20:56:17Z Shinmera: clhs step 2018-01-04T20:56:17Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_step.htm 2018-01-04T20:56:37Z Karl_Dscc joined #lisp 2018-01-04T20:57:04Z Shinmera: SBCL's trace can also cause a break 2018-01-04T20:57:12Z Shinmera: so you can use that to avoid recompiling the function 2018-01-04T20:58:40Z QualityAddict quit (Remote host closed the connection) 2018-01-04T21:00:00Z jmercouris: Okay, thank you 2018-01-04T21:00:14Z QualityAddict joined #lisp 2018-01-04T21:00:21Z orivej quit (Ping timeout: 264 seconds) 2018-01-04T21:01:48Z aeth: jasom: on the other hand, debugging in languages that only have one implementation is portable across all implementations 2018-01-04T21:02:30Z omilu quit (Ping timeout: 260 seconds) 2018-01-04T21:03:19Z phoe: aeth: ...by definition, yeah 2018-01-04T21:04:09Z jmercouris: jasom: So if you look in the C code you'll see I need to invoke JSValueToStringCopy, but this isn't provided by cl-webkit, how might I go about calling it? Do I have to do something like (cffi:defcfun "JSValueToStringCopy" :string) string-result (context JSGlobalContextRef) (value :pointer) ())? 2018-01-04T21:04:49Z jmercouris: How do I even know which library provides JSValueToStringCopy as in their example? 2018-01-04T21:05:28Z fikka joined #lisp 2018-01-04T21:07:54Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-04T21:07:58Z dxtr_ is now known as dxtr 2018-01-04T21:09:50Z pjb````` quit (Read error: Connection reset by peer) 2018-01-04T21:09:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-04T21:12:42Z orivej joined #lisp 2018-01-04T21:16:53Z fikka joined #lisp 2018-01-04T21:27:43Z rpg: Stepping is definitely available in Allegro, but only for code that's interpreted, not compiled, IIRC (may have improved -- don't use it much) 2018-01-04T21:27:47Z vlatkoB quit (Remote host closed the connection) 2018-01-04T21:29:41Z pjb````` joined #lisp 2018-01-04T21:31:23Z fikka quit (Ping timeout: 252 seconds) 2018-01-04T21:32:12Z tomlukeywood quit (Quit: Leaving.) 2018-01-04T21:36:05Z pjb````` quit (Ping timeout: 276 seconds) 2018-01-04T21:37:04Z rpg quit (Ping timeout: 268 seconds) 2018-01-04T21:37:26Z orivej quit (Ping timeout: 252 seconds) 2018-01-04T21:42:03Z pjb````` joined #lisp 2018-01-04T21:42:59Z fikka joined #lisp 2018-01-04T21:46:31Z pjb````` quit (Ping timeout: 240 seconds) 2018-01-04T21:48:14Z junxit quit (Remote host closed the connection) 2018-01-04T21:50:16Z jasom: jmercouris: the defcfun ought to work, assuming it's linked in somewhere; I haven't heard back yet from the webkit gtk channel yet 2018-01-04T21:51:28Z orivej joined #lisp 2018-01-04T21:53:30Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-04T21:53:58Z pjb````` joined #lisp 2018-01-04T21:55:11Z shka quit (Ping timeout: 248 seconds) 2018-01-04T21:56:59Z shifty779 joined #lisp 2018-01-04T21:57:37Z Murii quit (Quit: WeeChat 1.4) 2018-01-04T21:59:27Z pjb````` quit (Ping timeout: 246 seconds) 2018-01-04T22:05:57Z nowhereman quit (Ping timeout: 240 seconds) 2018-01-04T22:06:19Z nowhereman joined #lisp 2018-01-04T22:08:08Z osune: I do (funcall fn arg) but fn can have [0-n] arguments what is the idomatic way to declare a fn with zero arguments? I'm undecided between &rest and a declare / ignore 2018-01-04T22:08:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-04T22:09:18Z osune: s/idomatic/idiomatic/ 2018-01-04T22:09:25Z Bike: declare? 2018-01-04T22:09:33Z Bike: you just give it a nil lambda list. (defun foo () ...) 2018-01-04T22:09:35Z Bike: (funcall fn) 2018-01-04T22:11:45Z orivej quit (Ping timeout: 248 seconds) 2018-01-04T22:12:01Z phoe: wait, [0-n] arguments? what do you mean? 2018-01-04T22:12:16Z phoe: you don't know the arity of the function that you receive? the FN? 2018-01-04T22:12:41Z osune: yes 2018-01-04T22:12:51Z phoe: then how are you going to call it? 2018-01-04T22:12:52Z Bike: so what are you "declaring"? 2018-01-04T22:13:04Z phoe: you can't call a function whose arity you don't know 2018-01-04T22:13:11Z phoe: because you don't know how many arguments it will need. 2018-01-04T22:14:02Z phoe: I mean, you can always try, but Lisp is going to throw errors at you every time your Russian roulette doesn't work your way. 2018-01-04T22:14:20Z mint joined #lisp 2018-01-04T22:14:27Z osune: ok let me backpaddle a bit, because maybe i ask the wrong question and my problem is more my design 2018-01-04T22:14:48Z rpg joined #lisp 2018-01-04T22:15:47Z Shinmera: phoe: ;) (defun call-anything (fn) (let (a) (loop (ignore-errors (return (apply fn a))) (push 0 a)))) 2018-01-04T22:16:17Z phoe: Shinmera: ...I thought that not using IGNORE-ERRORS was implied 2018-01-04T22:16:40Z Shinmera: The ridiculous part of this isn't the ignore-errors 2018-01-04T22:16:47Z phoe: yes, correct 2018-01-04T22:17:00Z phoe: but there's more than one ridiculous part in it anyway 2018-01-04T22:17:35Z phoe: you just go (fn) (fn 0) (fn 0 0) ... until you hopefully get a result 2018-01-04T22:17:47Z phoe: which you won't if FN wants a string for example 2018-01-04T22:18:03Z phoe: you'll just loop until you hit CALL-ARGUMENTS-LIMIT or you run out of memory 2018-01-04T22:18:09Z osune: I parse user input for a chatbot via cl-pprce. assume the commands "/echo foo" and "/ping". One takes a parameter the other doesn't. I split the string into the command and the argument parts. So i have a special case that my functions only take zero or one parameter. The function itself tries to parse the complete argument string. 2018-01-04T22:18:31Z phoe: so your function accepts exactly one argument, the complete argument string. 2018-01-04T22:18:47Z phoe: so you know the arity of your function. 2018-01-04T22:18:59Z brendyn joined #lisp 2018-01-04T22:19:20Z pjb````` joined #lisp 2018-01-04T22:19:22Z phoe: in one case you have ("/echo" "foo"), in the other case ("/ping" "") or ("/ping" NIL) depending on how you want to put it. 2018-01-04T22:20:56Z phoe: I wouldn't define functions with DEFUN for this though. my style, at least, would be to make an EQUAL-tested hash-table, and (setf (gethash "echo" hash-table) (lambda (arg-string) ...)) 2018-01-04T22:20:56Z osune: yes. thats exactly my result after the first parse. Now i could do a (if arg (funcall fn arg) (funcall fn)) 2018-01-04T22:21:16Z phoe: I wouldn't do this. 2018-01-04T22:21:39Z phoe: I'd rather do, for PING, an explicit (declare (ignore arg)). 2018-01-04T22:21:48Z phoe: this way, all of your functions are of arity 1, which simplifies things. 2018-01-04T22:22:23Z phoe: or rather, if you want PING to explicitly NOT want an argument, you can (lambda (arg) (when arg (error ...)) ...) 2018-01-04T22:22:39Z osune: I can see why lambda is a question of style and viable but having a named function helps a bit with debugging 2018-01-04T22:22:50Z pjb````` quit (Remote host closed the connection) 2018-01-04T22:22:52Z phoe: or something else. so PING returns "wrong syntax: use /PING without an argument" or something. 2018-01-04T22:23:08Z phoe: yes, that is correct. again, this would be just my style. 2018-01-04T22:23:25Z osune: well exactly what you are suggesting is what I'm doing currently: (defun ping (arg) (declare (ignore arg) "pong")) 2018-01-04T22:23:43Z phoe: yep, that is how I'd do it. 2018-01-04T22:24:27Z phoe: but then again, other people might have more valuable insight on the matter, so don't limit yourself to just my ideas. 2018-01-04T22:24:28Z pjb````` joined #lisp 2018-01-04T22:24:30Z Shinmera: What I would do is handle the arglist parsing in a common place, define each command as a native lisp function, and then just apply the function to the arglist, reporting errors to the user. 2018-01-04T22:25:05Z Shinmera: Though actually what i would do is use an existing library like Maiden to do all of that for me :^) 2018-01-04T22:25:21Z osune: so I wondered if (defun ping (&rest) "pong) would be more idiomatic 2018-01-04T22:26:21Z osune: Shinmera: I heartly accept the shameless plug ;) 2018-01-04T22:27:31Z osune: But this is kinda a pet project to prepare myself for a reimplementation of a scheme midi sequencer , so I'll tinker a bit more and then take a look at it 2018-01-04T22:28:20Z osune: s/sequencer/controller/ 2018-01-04T22:29:15Z Shinmera: osune: Anyway, something like this is what I would do: (defun ping () (reply "pong")) (defun handle-command (string) (let ((args (split string " "))) (apply (find-symbol (string-upcase (first args))) (rest args)))) 2018-01-04T22:29:40Z osune: and as long I as cannot wrap my head around CFFI (libevdev/jack) I keep myself busy and keep learning 2018-01-04T22:29:41Z Shinmera: I say "something" since you probably want to throw your command functions either into a separate namespace entirely (preferable) or into their own package 2018-01-04T22:30:02Z phoe: osune: lone (&rest) in lambda list isn't valid 2018-01-04T22:30:27Z Arcaelyx_ joined #lisp 2018-01-04T22:30:28Z orivej joined #lisp 2018-01-04T22:30:44Z osune: phoe: sorry meant (&rest r) 2018-01-04T22:31:02Z phoe: osune: then you need to ignore R 2018-01-04T22:31:12Z phoe: and we're back at the beginning 2018-01-04T22:31:14Z pjb````` quit (Remote host closed the connection) 2018-01-04T22:31:28Z phoe: except now your function accepts any arguments and ignores them 2018-01-04T22:31:59Z Arcaelyx quit (Ping timeout: 276 seconds) 2018-01-04T22:32:00Z wxie joined #lisp 2018-01-04T22:32:04Z osune: phoe: but is this better? for a function which doesn't know how it will be called? 2018-01-04T22:33:16Z osune: Shinmera: hm never played with find-symbol. I use a hash-table with :test 'equal to store the functions 2018-01-04T22:33:16Z phoe: osune: I would call it bad design to unnecessarily create functions that don't know how many arguments they will accept 2018-01-04T22:33:33Z Shinmera: osune: That works too 2018-01-04T22:33:52Z osune: so now I'm at the beginning it seems :D 2018-01-04T22:34:01Z phoe: but then again, depends on if you want things like "/ping foo bar baz quux fred" to work just like "/ping" would 2018-01-04T22:34:51Z makomo: Shinmera: what do you think about CLON for argparsing? 2018-01-04T22:35:22Z makomo: or Clon* perhaps 2018-01-04T22:35:28Z osune: well I think that is the real question ... should study maiden sooner than thought 2018-01-04T22:35:43Z omilu joined #lisp 2018-01-04T22:36:04Z Shinmera: makomo: I've never used it, but it looked overly complicated to me and like it tried to do too much. When I needed command line arg parsing I used Fare's command-line-arguments lib 2018-01-04T22:36:10Z phoe: CLON is a mammoth. Which has its upsides and downsides. I settled for Fare's command-line-arguments instead. 2018-01-04T22:36:36Z makomo: hah 2018-01-04T22:36:47Z makomo: it does look complicated i guess, but that's only because argparsing is complicated imo :-) 2018-01-04T22:36:55Z Shinmera: makomo: Why are you asking me in specific, though? 2018-01-04T22:37:09Z Shinmera: I'm not in the habit of writing command line programs 2018-01-04T22:37:19Z osune: are both pure CL implementations ? 2018-01-04T22:37:19Z jmercouris: jasom: That's the challenge I guess :D 2018-01-04T22:37:26Z makomo: Shinmera: oh, only because i saw you talking about argparsing and mentioning libraries 2018-01-04T22:37:35Z makomo: osune: Clon is 2018-01-04T22:37:46Z Shinmera: makomo: What we were talking about is for a different kind of argparsing 2018-01-04T22:37:51Z makomo: fare's is as well i guess 2018-01-04T22:38:07Z osune: so can I throw unix-opts in the ring? 2018-01-04T22:38:17Z phoe: makomo: this discussion with osune is more about parsing function args inside Lisp, not on the boundary between Lisp and the OS 2018-01-04T22:38:17Z attila_lendvai joined #lisp 2018-01-04T22:38:17Z attila_lendvai quit (Changing host) 2018-01-04T22:38:17Z attila_lendvai joined #lisp 2018-01-04T22:38:19Z Xach: there are at least 6 libraries for the purpose 2018-01-04T22:38:21Z makomo: Shinmera: oh lol, i haven't read the whole thing actually, only your last couple of posts 2018-01-04T22:38:26Z makomo: ahhh 2018-01-04T22:38:31Z makomo: nevermind then :-) 2018-01-04T22:39:15Z Shinmera: Arg parsing in Maiden is handled by this lil' piece of beauty: https://github.com/Shirakumo/maiden/blob/master/agents/commands/parsing.lisp 2018-01-04T22:40:42Z makomo: > ;; Remove inner cones 2018-01-04T22:40:45Z makomo: is cones a plural of cons :D 2018-01-04T22:40:52Z osune: Ok lets say "/ping foo" is a no go. An error will be generated and returned to the user. What's the lisp way to call my two functions with stepping the least toes of good Common Lisp style ? *takes a look at the link 2018-01-04T22:40:57Z Shinmera: makomo: Typos are a thing 2018-01-04T22:41:13Z makomo: Shinmera: shame, i thought you made it up :-) 2018-01-04T22:43:00Z Shinmera: osune: Calling a function with the wrong number of arguments causes an error. Your function may also error for other intended or unintended reasons. Therefore you need to catch all errors to report to the user anyway. 2018-01-04T22:43:02Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-04T22:43:47Z osune: Shinmera: that's why I came up with (declare (ignore ...)) in the first place 2018-01-04T22:43:58Z Shinmera: I don't follow 2018-01-04T22:44:45Z megalography joined #lisp 2018-01-04T22:46:07Z osune: I'll be back with a gist 2018-01-04T22:54:15Z LiamH quit (Quit: Leaving.) 2018-01-04T22:55:29Z osune: I see currently these options and I'm unsure which is the "best" or if I'm completely wrong: https://gist.github.com/osune/88f900b70c8083457816d3ca834b2cf3 2018-01-04T22:55:55Z jmercouris: jasom: The only thing I can find is that same JS core stuff by apple like you found; https://developer.apple.com/documentation/javascriptcore 2018-01-04T22:56:45Z rumbler31 quit (Ping timeout: 264 seconds) 2018-01-04T22:57:33Z random-nick quit (Remote host closed the connection) 2018-01-04T22:58:19Z wxie quit (Remote host closed the connection) 2018-01-04T22:59:48Z jmercouris: jasom: There's like nobody on #WebkitGTK+ 2018-01-04T23:00:19Z knobo quit (Ping timeout: 268 seconds) 2018-01-04T23:00:38Z random-nick joined #lisp 2018-01-04T23:01:02Z pjb````` joined #lisp 2018-01-04T23:03:31Z mejja joined #lisp 2018-01-04T23:03:44Z junxit joined #lisp 2018-01-04T23:07:31Z Shinmera: osune: Here's what I would propose: https://plaster.tymoon.eu/view/690#690 2018-01-04T23:08:39Z pjb`````` joined #lisp 2018-01-04T23:08:44Z pjb````` quit (Remote host closed the connection) 2018-01-04T23:09:02Z Shinmera: osune: The "event" is there so that you have a context to work with in your commands. For instance, so that the command "knows" which channel to reply to. 2018-01-04T23:09:20Z varjagg quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-04T23:09:28Z Shinmera: Or rather, the event knows that and the reply function uses this information to do the right thing. 2018-01-04T23:13:36Z pjb`````` quit (Ping timeout: 265 seconds) 2018-01-04T23:14:16Z osune: love it! it solves the whole problem via format and I'm happy that I can say my solution looks nearly identical , apart from the event mechanic . Thanks that was insigthfull 2018-01-04T23:14:40Z Shinmera: Sure 2018-01-04T23:15:10Z Shinmera: The error reporting of this approach is somewhat poor as you're depending on the implementation's errors to be insightful (which they are often not) 2018-01-04T23:15:51Z random-nick quit (Remote host closed the connection) 2018-01-04T23:15:52Z Shinmera: A "proper" approach would manually parse and match a lambda list, like what maiden-commands does. But that's rather involved. 2018-01-04T23:16:00Z Shinmera: This first step should suffice for a good, long while. 2018-01-04T23:18:57Z grumble quit (Quit: We all eat lies when our hearts are hungry) 2018-01-04T23:19:50Z ryanbw joined #lisp 2018-01-04T23:20:34Z Shinmera: osune: I've updated the paste with a change that should improve error reports a bit. 2018-01-04T23:21:21Z nirved quit (Quit: Leaving) 2018-01-04T23:24:02Z osune: Shinmera: thanks. you mean error reporting for malfromed (define-command ...) forms? 2018-01-04T23:24:55Z grumble joined #lisp 2018-01-04T23:25:26Z ykoda joined #lisp 2018-01-04T23:26:05Z Shinmera: osune: No, from the user invoking commands with the wrong argument form. 2018-01-04T23:26:23Z makomo quit (Ping timeout: 256 seconds) 2018-01-04T23:26:43Z osune: I take both for a testride to see what you mean 2018-01-04T23:27:08Z Shinmera: Well, I guess it also errors if you forget to specify the event argument, 2018-01-04T23:27:26Z ykoda quit (Read error: Connection reset by peer) 2018-01-04T23:27:37Z ykoda joined #lisp 2018-01-04T23:29:27Z Shinmera: Anyhoot, it's 0:30 here and I'm off to bed. Good night. 2018-01-04T23:29:51Z osune: Thanks again Shinmera, I 've seen the difference 2018-01-04T23:33:31Z jstypo quit (Read error: Connection reset by peer) 2018-01-04T23:35:03Z _roca quit (Ping timeout: 250 seconds) 2018-01-04T23:38:43Z makomo joined #lisp 2018-01-04T23:39:11Z brendyn quit (Ping timeout: 248 seconds) 2018-01-04T23:40:49Z junxit quit (Ping timeout: 248 seconds) 2018-01-04T23:46:47Z jasom: jmercouris: negative 2018-01-04T23:48:00Z aeth: pillton: Is there a way to see the disassembly produced by specialization-store for a given defspecialization? 2018-01-04T23:50:00Z jstypo joined #lisp 2018-01-04T23:52:12Z Kaisyu joined #lisp 2018-01-04T23:54:48Z aeth: Found it, it's (map nil (compose #'disassemble #'specialization-store:specialization-function) (specialization-store::store-specializations #'foo)) 2018-01-04T23:54:57Z pillton: I was just typing that. 2018-01-04T23:55:30Z aeth: I was trying to call the slot names provided from the slime inspector (another way to get the disassembly), but your readers don't match your slot names 2018-01-04T23:55:33Z dddddd quit (Read error: Connection reset by peer) 2018-01-04T23:55:42Z pillton: Another way is to give the specialization a function name. (defspecialization (store :name %store/specialization)) (disassemble '%store/specialization) 2018-01-04T23:56:36Z dddddd joined #lisp 2018-01-04T23:56:42Z aeth: It looks like it produces exactly what I would produce by hand, with identical disassembly. 2018-01-04T23:58:49Z aeth: It also looks like it can be inlined, which is great for trivial functions if it works just like function inlining does 2018-01-04T23:59:24Z pillton: Yes. https://github.com/markcox80/specialization-store/wiki/Tutorial-3:-Compile-Time-Support 2018-01-05T00:00:22Z pillton: You can even write the equivalent of a compiler macro for a specialization. 2018-01-05T00:01:57Z aeth: pillton: It's used like this, right? https://gitlab.com/snippets/1691616 2018-01-05T00:02:15Z aeth: (Although technically the fixnum one is incorrect because adding two fixnums doesn't necessarily produce a fixnum.) 2018-01-05T00:02:59Z pillton: Yes, though I would use template-function for this problem. 2018-01-05T00:03:06Z aeth: Well... 2018-01-05T00:03:16Z aeth: Technically fixnum is going to have a different implementation 2018-01-05T00:03:25Z aeth: If you want it to stay fixnum, you're going to have to do that. 2018-01-05T00:03:36Z aeth: e.g. staying at the max finxum size or having it wrap around with modulus 2018-01-05T00:06:00Z pillton: The image warping functions I have do that kind of thing. 2018-01-05T00:08:17Z aeth: So inlining does work exactly as expected if I do (defun bar () (foo 1f0 2f0)) 2018-01-05T00:08:30Z aeth: With a not inline version of the same thing, in the disassembly I see # 2018-01-05T00:08:46Z aeth: How do I know that it's using the correct foo? Or is that the runtime dispatch foo? Is that because I'm doing that in the REPL? 2018-01-05T00:09:58Z pierpa joined #lisp 2018-01-05T00:10:20Z pillton: You don't know. You have the same problem with macros. 2018-01-05T00:10:39Z aeth: ah, never tell me I don't know 2018-01-05T00:11:08Z pillton: What? It is the same problem with macros. 2018-01-05T00:11:12Z quazimodo joined #lisp 2018-01-05T00:11:15Z aeth: of course I know, I can just modify foo to print 2018-01-05T00:11:20Z aeth: :-p 2018-01-05T00:11:51Z pillton: Oh. The "You don't know." meant that it isn't possible to find out. 2018-01-05T00:12:26Z aeth: wait, nevermind 2018-01-05T00:12:37Z aeth: I'd need to modify the runtime dispatch version of foo to print 2018-01-05T00:12:52Z aeth: Or to insert a (break) or something 2018-01-05T00:13:04Z pillton: Oh, you mean the correct specialization? 2018-01-05T00:13:25Z aeth: pillton: If I introduce an observable side effect to the runtime dispatch, I can see if a given function is using runtime dispatch 2018-01-05T00:13:35Z aeth: right? 2018-01-05T00:13:55Z mishoo quit (Remote host closed the connection) 2018-01-05T00:13:56Z pillton: I'd probably trace specialization-store:expand-store. 2018-01-05T00:14:03Z mishoo joined #lisp 2018-01-05T00:14:17Z aeth: Yeah, that's more elegant than redefining it to insert a print statement. 2018-01-05T00:14:35Z aeth: It's :: if anyone is following along at home 2018-01-05T00:14:49Z aeth: wait, it's neither 2018-01-05T00:15:13Z aeth: whoops, I wrote exapnd 2018-01-05T00:15:20Z aeth: The new anti-aliasing is terrible. 2018-01-05T00:16:41Z pillton: It should be exported. The expand-store function is part of the object protocol within SS's MOP. 2018-01-05T00:18:31Z aeth: Looks like the trace only shows up in the REPL when I do something like this: (let ((foo (let ((rand (random 1))) (if (zerop rand) 1f0 1)))) (foo foo foo)) 2018-01-05T00:18:36Z aeth: It also shows up when I define any function 2018-01-05T00:18:52Z aeth: e.g. (defun bar () (foo 1f0 2f0)) or (defun baz () (let ((foo (let ((rand (random 1))) (if (zerop rand) 1f0 1)))) (foo foo foo))) 2018-01-05T00:19:53Z pillton: It all depends on when the implementation invokes compiler macros. 2018-01-05T00:19:59Z aeth: (oooh, I need to use (random 2) 2018-01-05T00:20:57Z aeth: This doesn't call the trace every time. (defun baz () (let ((foo (let ((rand (random 2))) (if (zerop rand) 1f0 1)))) (foo foo foo))) 2018-01-05T00:22:06Z aeth: I'm not sure if that's because it's really smart or if runtime dispatch uses something else 2018-01-05T00:22:20Z quazimodo quit (Ping timeout: 268 seconds) 2018-01-05T00:22:22Z aeth: (I mean, calling baz... defining baz will produce the trace) 2018-01-05T00:22:52Z pillton: Trace specialization-store:funcall-store. 2018-01-05T00:23:27Z pillton: Expand-store is invoked when the function is compiled to see if any compile time optimizations can be performed. 2018-01-05T00:23:56Z aeth: It still doesn't come up in SBCL 2018-01-05T00:28:47Z aeth: But they call the same function in the disassembly. In fact, if I disassemble a foo-fn and a foo-sf, it looks like they call the same function in the disassembly. At least, if that's what this means; "MOV EAX, #x2054DF78" 2018-01-05T00:29:27Z pillton: Trace specialization-store:specialization-function. 2018-01-05T00:29:51Z mishoo quit (Ping timeout: 248 seconds) 2018-01-05T00:30:03Z aeth: that gets called 2018-01-05T00:30:24Z pillton: The function object bound to #'foo does not call funcall-store. 2018-01-05T00:31:35Z Khisanth quit (Ping timeout: 268 seconds) 2018-01-05T00:35:45Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-05T00:36:18Z patche joined #lisp 2018-01-05T00:36:24Z aeth: Does this mean that when it's not inline SBCL always uses runtime dispatch to determine which foo to call, even when the types are known? e.g. (defun foo-sf () (foo 1f0 1f0)) (defun foo-fn () (foo 1 1)) 2018-01-05T00:36:28Z patche is now known as scb 2018-01-05T00:36:30Z aeth: The same trace shows up in CCL 2018-01-05T00:37:27Z aeth: Interestingly, CCL gives a bogus warning when defining the functions themselves: In FOO-SF: In the call to FOO with arguments (1.0 1.0), 2 arguments were provided, but at most 0 are accepted by the current global definition of FOO 2018-01-05T00:37:51Z pillton: Yes. The standard specifies that compiler macros are not invoked when a function is declared not inline. 2018-01-05T00:39:12Z pillton: aeth: https://github.com/Clozure/ccl/issues/43 2018-01-05T00:39:43Z megalography quit (Quit: Leaving.) 2018-01-05T00:42:16Z aeth: pillton: Does specialization-store have a way to inline the dispatch but not the function itself? Sometimes that might be the most performant option, if the function is very large but the type of the arguments in the calling function is known 2018-01-05T00:42:31Z aeth: e.g. matrix multiplication 2018-01-05T00:42:58Z jmercouris: jasom: I've found very extensive docs within the webkit source code 2018-01-05T00:43:16Z jmercouris: jasom: https://gist.github.com/aee11eb30d5b6415bd1859e87302af69 2018-01-05T00:43:21Z jmercouris: I'm just kidding about the extensive part 2018-01-05T00:43:58Z Khisanth joined #lisp 2018-01-05T00:44:16Z jmercouris: jasom: here's the interface file https://gist.github.com/d641b6ed92f35ae3fea76ddec14717b4 2018-01-05T00:45:03Z jmercouris: I wonder if JavaScriptCore ships with Webkit, or if it is a separate so file 2018-01-05T00:45:25Z aeth: pillton: I guess it's possible with a combination of named specializations and expand functions, where the :expand-function calls the named specialization? 2018-01-05T00:46:34Z pillton: aeth: Matrix multiplication is always part of a larger problem. If the larger problem wants to be efficient then it should declare the types. 2018-01-05T00:49:10Z osune quit (Remote host closed the connection) 2018-01-05T00:53:10Z EvW quit (Ping timeout: 265 seconds) 2018-01-05T00:56:35Z aeth: pillton: is it intentional that define-specialization cannot use :name and defspecialization can? 2018-01-05T00:57:20Z aeth: It looks like define-specialization doesn't support options, just the name 2018-01-05T00:58:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-05T00:58:41Z pillton: Can you paste. 2018-01-05T00:59:12Z aeth: This is pointless compared to just inlining it, I was just combining the two things in the tutorial other than inline in one place 2018-01-05T00:59:19Z aeth: (define-specialization (foo :name %foo/single-float) ((x single-float) (y single-float)) single-float (:function (lambda (x y) (+ x y))) (:expand-function (specialization-store:compiler-macro-lambda (x y) `(+ ,x ,y)))) 2018-01-05T00:59:37Z aeth: "No store exists with name (FOO NAME %FOO/SINGLE-FLOAT)." 2018-01-05T00:59:59Z aeth: And there's no problem with defspecialization: (defspecialization (foo :name %foo/fixnum) ((x fixnum) (y fixnum)) fixnum (+ x y)) 2018-01-05T01:00:32Z aeth: I was just going off of https://github.com/markcox80/specialization-store/wiki/Tutorial-3:-Compile-Time-Support 2018-01-05T01:00:50Z FreeBirdLjj joined #lisp 2018-01-05T01:01:26Z pillton: (define-specialization foo ... (:name %foo/single-float)) 2018-01-05T01:02:02Z markong quit (Ping timeout: 252 seconds) 2018-01-05T01:03:20Z aeth: The function COMMON-LISP-USER::%FOO/SINGLE-FLOAT is undefined. 2018-01-05T01:03:53Z Cymew joined #lisp 2018-01-05T01:04:56Z pillton: Looks like a bug. 2018-01-05T01:05:04Z aeth: (define-specialization foo ((x single-float) (y single-float)) single-float (:name %foo/single-float) (:function (lambda (x y) (+ x y))) (:expand-function (specialization-store:compiler-macro-lambda (x y) `(+ ,x ,y)))) 2018-01-05T01:05:08Z aeth: This is the order, right? 2018-01-05T01:05:24Z pillton: The order shouldn't matter. The expansion is wrong. 2018-01-05T01:05:40Z pillton: I'll fix it over the weekend. I need to get back to work. 2018-01-05T01:05:46Z aeth: okay, thanks 2018-01-05T01:06:47Z quazimodo joined #lisp 2018-01-05T01:07:53Z pillton: Thanks for trying that out. I don't mean to be rude. I just looked at the clock. 2018-01-05T01:08:35Z Cymew quit (Ping timeout: 268 seconds) 2018-01-05T01:12:10Z cgay quit (Ping timeout: 260 seconds) 2018-01-05T01:12:38Z jasom: jmercouris: that looks like enough to go off of 2018-01-05T01:12:42Z cgay joined #lisp 2018-01-05T01:17:40Z pfdietz joined #lisp 2018-01-05T01:21:03Z sonologico quit (Ping timeout: 248 seconds) 2018-01-05T01:24:16Z spoken-tales joined #lisp 2018-01-05T01:25:33Z troydm quit (Ping timeout: 264 seconds) 2018-01-05T01:37:09Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-05T01:40:41Z jmercouris: jasom: Yeah, probably, I'll take my first try at making these kinds of functions 2018-01-05T01:40:52Z jmercouris: or whatever the forms called for declaring cffi interfaces are called 2018-01-05T01:41:49Z dustyweb quit (Remote host closed the connection) 2018-01-05T01:44:12Z Oladon joined #lisp 2018-01-05T01:44:49Z mejja quit (Quit: mejja) 2018-01-05T01:53:35Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-05T01:54:49Z randomstrangerb joined #lisp 2018-01-05T02:01:58Z drewc joined #lisp 2018-01-05T02:04:20Z aindilis quit (Remote host closed the connection) 2018-01-05T02:06:27Z spoken-tales quit (Ping timeout: 240 seconds) 2018-01-05T02:07:41Z aindilis joined #lisp 2018-01-05T02:08:37Z d4ryus1 joined #lisp 2018-01-05T02:12:06Z d4ryus quit (Ping timeout: 268 seconds) 2018-01-05T02:12:47Z orivej quit (Ping timeout: 248 seconds) 2018-01-05T02:15:08Z orivej joined #lisp 2018-01-05T02:16:29Z milanj quit (Quit: This computer has gone to sleep) 2018-01-05T02:19:39Z broccoli1 joined #lisp 2018-01-05T02:20:15Z broccolistem quit (Ping timeout: 248 seconds) 2018-01-05T02:21:21Z damke_ joined #lisp 2018-01-05T02:21:38Z FreeBirdLjj joined #lisp 2018-01-05T02:24:46Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-05T02:25:04Z FreeBirdLjj joined #lisp 2018-01-05T02:26:14Z damke joined #lisp 2018-01-05T02:27:19Z Vicfred joined #lisp 2018-01-05T02:27:21Z Karl_Dscc quit (Remote host closed the connection) 2018-01-05T02:27:50Z fikka joined #lisp 2018-01-05T02:28:24Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-05T02:28:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-05T02:29:21Z ryanbw quit (Ping timeout: 265 seconds) 2018-01-05T02:32:05Z aindilis quit (Read error: Connection reset by peer) 2018-01-05T02:33:23Z fikka quit (Ping timeout: 256 seconds) 2018-01-05T02:33:38Z smokeink joined #lisp 2018-01-05T02:33:47Z ryanbw joined #lisp 2018-01-05T02:34:44Z aindilis` joined #lisp 2018-01-05T02:37:16Z spoken-tales joined #lisp 2018-01-05T02:41:32Z prometheus_falli joined #lisp 2018-01-05T02:50:51Z spoken-tales left #lisp 2018-01-05T02:52:51Z meta-cod1r joined #lisp 2018-01-05T02:53:10Z meta-cod1r quit (Client Quit) 2018-01-05T02:57:12Z metaphysician joined #lisp 2018-01-05T02:57:36Z metaphysician quit (Client Quit) 2018-01-05T02:58:14Z krwq joined #lisp 2018-01-05T03:01:42Z nika joined #lisp 2018-01-05T03:04:38Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-05T03:09:52Z ykoda quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-01-05T03:10:20Z ykoda joined #lisp 2018-01-05T03:15:16Z dddddd quit (Remote host closed the connection) 2018-01-05T03:17:11Z FreeBirdLjj joined #lisp 2018-01-05T03:22:17Z fikka joined #lisp 2018-01-05T03:27:21Z prometheus_falli quit (Remote host closed the connection) 2018-01-05T03:27:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-05T03:28:36Z prometheus_falli joined #lisp 2018-01-05T03:30:02Z ykoda quit (Remote host closed the connection) 2018-01-05T03:31:04Z kajo joined #lisp 2018-01-05T03:31:12Z cibs joined #lisp 2018-01-05T03:33:42Z krwq: hello, I'm using cl-dbi to fetch couple of million rows from the postgres db. Currently my sbcl's memory is being exhausted when doing that - on my side I'm not allocating it - I believe this is happening due to: https://github.com/fukamachi/cl-dbi/blob/master/src/dbd/postgres.lisp#L95 (reading whole db to a list) - does anyone know any better alternatives? should I switch to postmodern or are there any better alter 2018-01-05T03:33:42Z krwq: natives? 2018-01-05T03:34:08Z safe joined #lisp 2018-01-05T03:34:28Z pillton: Have you tried increasing the value given to sbcl --dynamic-space-size ? 2018-01-05T03:34:54Z Oladon: krwq: You might also try clsql 2018-01-05T03:35:32Z krwq: nope but I noticed that when I compile sbcl from sources and run gc in the loop it doesn't happen - the problem with newest sbcl is that some other libraries are not working correctly with it (I had problems with cepl and log4cl) 2018-01-05T03:35:42Z krwq: will try passing that 2018-01-05T03:36:00Z krwq: I feel like this is delaying the problem in time though... 2018-01-05T03:36:35Z igemnace quit (Ping timeout: 252 seconds) 2018-01-05T03:36:55Z cibs quit (Quit: leaving) 2018-01-05T03:37:16Z cibs joined #lisp 2018-01-05T03:41:26Z marusich joined #lisp 2018-01-05T03:43:20Z eschatologist quit (Ping timeout: 276 seconds) 2018-01-05T03:58:36Z igemnace joined #lisp 2018-01-05T04:12:53Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-05T04:14:10Z orivej quit (Ping timeout: 260 seconds) 2018-01-05T04:16:42Z test1600 joined #lisp 2018-01-05T04:22:23Z hexfive quit (Quit: WeeChat 1.9.1) 2018-01-05T04:27:22Z sigjuice: is there a utility that will fetch a copy of the upstream version of a quicklisp release? 2018-01-05T04:28:08Z orivej joined #lisp 2018-01-05T04:29:46Z troydm joined #lisp 2018-01-05T04:34:35Z jmercouris: sigjuice: Git :D 2018-01-05T04:35:03Z jmercouris: sigjuice: I believe it was yourself that sent me the link to the QL repo/project mapping 2018-01-05T04:35:54Z jmercouris: sigjuice: I mean this repository: https://github.com/quicklisp/quicklisp-projects 2018-01-05T04:36:06Z sigjuice: yes, I did send you that link 2018-01-05T04:36:17Z jmercouris: conceivably it should be possible to write such a utility, could be pretty useful 2018-01-05T04:36:33Z jmercouris: if you want to work on such a tool I can help 2018-01-05T04:37:18Z sigjuice: jmercouris thanks for your offer! I figured I can't be the first person with such a wish, so I asked here. 2018-01-05T04:37:58Z jmercouris: I've never heard of such a tool, then again, I haven't heard of a lot of stuff :D best wait until Xach is online before departing on this journey 2018-01-05T04:38:00Z jmercouris: just in case 2018-01-05T04:39:21Z scb quit (Ping timeout: 264 seconds) 2018-01-05T04:40:09Z sigjuice: so far I have been looking at the quicklisp-projects repo and manually fetching copies to my quicklisp/local-projects 2018-01-05T04:43:14Z troydm quit (Ping timeout: 265 seconds) 2018-01-05T04:45:20Z jmercouris: yeah, we could very easily automate it though I think, I have a feeling there is someway to do it already via quicklisp though, mayb 2018-01-05T04:46:55Z smurfrobot joined #lisp 2018-01-05T04:48:27Z schoppenhauer quit (Ping timeout: 240 seconds) 2018-01-05T04:50:48Z schoppenhauer joined #lisp 2018-01-05T04:51:43Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-05T04:54:51Z troydm joined #lisp 2018-01-05T04:59:38Z troydm quit (Ping timeout: 252 seconds) 2018-01-05T05:00:13Z zooey quit (Remote host closed the connection) 2018-01-05T05:02:20Z zooey joined #lisp 2018-01-05T05:06:35Z pierpa quit (Quit: Page closed) 2018-01-05T05:07:20Z jmercouris: is this user on IRC: https://github.com/vindarel? 2018-01-05T05:08:09Z turkja joined #lisp 2018-01-05T05:09:17Z scb joined #lisp 2018-01-05T05:10:12Z fikka joined #lisp 2018-01-05T05:11:45Z quazimodo quit (Ping timeout: 264 seconds) 2018-01-05T05:14:29Z sonologico joined #lisp 2018-01-05T05:14:41Z fikka quit (Ping timeout: 248 seconds) 2018-01-05T05:17:04Z igemnace quit (Read error: Connection reset by peer) 2018-01-05T05:20:30Z igemnace joined #lisp 2018-01-05T05:25:47Z aeth: Interesting, people are doing JVM->WASM and WASM->JVM already. https://news.ycombinator.com/item?id=16075933 2018-01-05T05:26:07Z aeth: (1) It could make ABCL usable 2018-01-05T05:26:18Z Zhivago: Javascript is the new C. 2018-01-05T05:26:22Z aeth: (2) It brings up an interesting idea of going WASM->Lisp 2018-01-05T05:26:44Z Zhivago: Why WASM->Lisp? 2018-01-05T05:26:53Z Bike quit (Quit: Lost terminal) 2018-01-05T05:27:01Z aeth: Everything is going to eventually compile to WASM one day. 2018-01-05T05:27:11Z aeth: Now all of those things run on Mezzano too with a portable WASM->Lisp 2018-01-05T05:27:22Z Zhivago: Sure, so why wouldn't you be looking at Lisp->WASM? 2018-01-05T05:27:48Z drdo quit (Ping timeout: 246 seconds) 2018-01-05T05:28:09Z aeth: That's going to happen for sure. ABCL might work with JVM -> WASM and Clasp might work with LLVM -> WASM without much extra effort. 2018-01-05T05:28:24Z aeth: (They probably don't work yet, though.) 2018-01-05T05:30:51Z quazimodo joined #lisp 2018-01-05T05:31:52Z thinkpad quit (Quit: lawl) 2018-01-05T05:33:10Z jmercouris: aeth: you'll still probably want some layer in between to work with the dom and stuff like that though, you'll need to extend the language in some meaningful way 2018-01-05T05:33:47Z drdo joined #lisp 2018-01-05T05:37:47Z jmercouris: that would be a good lib projec 2018-01-05T05:37:53Z jmercouris: wasm is still so young though 2018-01-05T05:38:24Z thinkpad joined #lisp 2018-01-05T05:39:22Z oleo quit (Quit: Leaving) 2018-01-05T05:42:25Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-05T05:43:16Z dmiles: admittedly aeth's idea is appealing to have a WASM->Lisp 2018-01-05T05:43:31Z dmiles: are there x86 emulators in lisp presently? 2018-01-05T05:45:00Z rme: I have worked with a client who uses CL to model x86 cpus. But not in the sense of "run Windows on this Lisp-emulated x86". 2018-01-05T05:46:24Z dmiles: yeah actually as i think harder (that is what i meant "run Windows on this Lisp-emulated x86") it would be an entire system like VM i would be thinking of 2018-01-05T05:47:24Z brendyn joined #lisp 2018-01-05T05:47:39Z smurfrobot joined #lisp 2018-01-05T05:47:56Z dmiles: the benefits would be abstractions available on the level of the machine instance i suppose 2018-01-05T05:49:36Z dmiles: " system like VM " " system like VMWare" 2018-01-05T05:51:49Z scb quit (Quit: Lost terminal) 2018-01-05T05:51:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-05T05:54:50Z Yun joined #lisp 2018-01-05T05:55:08Z damke quit (Read error: Connection reset by peer) 2018-01-05T05:55:53Z damke joined #lisp 2018-01-05T06:00:06Z damke_ joined #lisp 2018-01-05T06:02:09Z damke quit (Ping timeout: 264 seconds) 2018-01-05T06:05:29Z Oladon quit (Quit: Leaving.) 2018-01-05T06:09:58Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-05T06:19:26Z rippa joined #lisp 2018-01-05T06:26:36Z patche joined #lisp 2018-01-05T06:26:36Z patche is now known as scb 2018-01-05T06:26:52Z scb is now known as sebbot 2018-01-05T06:30:32Z LocaMocha joined #lisp 2018-01-05T06:34:20Z knobo joined #lisp 2018-01-05T06:37:27Z shka joined #lisp 2018-01-05T06:41:03Z sonologico quit (Quit: WeeChat 1.9.1) 2018-01-05T06:46:34Z EvilTofu joined #lisp 2018-01-05T06:48:48Z smurfrobot joined #lisp 2018-01-05T06:50:07Z makomo quit (Ping timeout: 248 seconds) 2018-01-05T06:52:35Z Arcaelyx_ is now known as Arcaelyx 2018-01-05T06:53:52Z EvilTofu: Hello again! In (defmethod add-list-of-symbols-to-object ((alist cons))) where I add a list of symbols to something, is there a way to specify that the list has to be symbols only or should the code not care? 2018-01-05T06:54:00Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-05T06:56:19Z pillton: No. Methods can only dispatch on classes and there is no class representing a list of symbols. 2018-01-05T06:56:28Z EvilTofu: ok 2018-01-05T06:56:50Z EvilTofu: so the (alist cons) doesn't actually work, I can just remove it 2018-01-05T06:57:15Z pillton: It should work since cons is a system class. 2018-01-05T06:57:26Z pillton: clhs cons/t 2018-01-05T06:57:26Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_cons.htm 2018-01-05T06:57:37Z quazimodo quit (Ping timeout: 268 seconds) 2018-01-05T06:58:21Z EvilTofu: okies thanks 2018-01-05T06:58:27Z fikka joined #lisp 2018-01-05T06:58:34Z pillton: Note that the variable name alist usually represents an "associative list". 2018-01-05T06:58:46Z EvilTofu: Ok. 2018-01-05T06:59:00Z EvilTofu: I'll use some-list next time. 2018-01-05T06:59:04Z pillton: For example, the assoc function. 2018-01-05T06:59:05Z pillton: clhs assoc 2018-01-05T06:59:05Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_assocc.htm 2018-01-05T06:59:07Z jackdaniel: EvilTofu: check out https://github.com/pcostanza/filtered-functions 2018-01-05T06:59:14Z krwq quit (Remote host closed the connection) 2018-01-05T06:59:28Z pillton: My apologies: association list. 2018-01-05T06:59:31Z jackdaniel: it uses mop to give you more flexibility on method dispatch 2018-01-05T06:59:57Z EvilTofu: So I can actually provide two methods where one is a list of symbols and one where the parameter is a symbol. 2018-01-05T07:00:12Z pillton: There is also specialization-store which allows you to dispatch on type. 2018-01-05T07:00:25Z EvilTofu: okies, will look into these. 2018-01-05T07:00:37Z pillton shamelessly advertises himself. 2018-01-05T07:01:52Z jackdaniel: oh, its yourse :) 2018-01-05T07:01:54Z jackdaniel: yours* 2018-01-05T07:02:05Z pillton: I didn't know about filtered functions. 2018-01-05T07:03:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-05T07:03:48Z JuanDaugherty joined #lisp 2018-01-05T07:07:14Z dec0n joined #lisp 2018-01-05T07:13:37Z scymtym quit (Ping timeout: 248 seconds) 2018-01-05T07:13:44Z brendyn quit (Read error: No route to host) 2018-01-05T07:13:52Z hibikelel joined #lisp 2018-01-05T07:14:02Z hibikelel: Hello 2018-01-05T07:14:22Z hibikelel: Wondering if there's somebody up this late who can help me with a bit of a quandry 2018-01-05T07:15:16Z hibikelel: I'm a novice programmer, and even that's stretching it, I've got a very shallow knowledge of a wide number of languages but couldn't code my way out of a paper bag when you get down to it 2018-01-05T07:16:01Z hibikelel: Out of all the languages I've messed around with Lisp seems to be the only language/family I can see myself doing any long-term work in, at least for fun 2018-01-05T07:17:22Z hibikelel: Dedided I'd work on a much larger project, really test my skills, I've never done anything with 3d graphics before so I figured I'd tinker around, trouble is there doesn't seem to be any libraries written, in racket anyway, for any openGL implementation after 1.5 which is pretty out of date at this point 2018-01-05T07:18:53Z hibikelel: Should I just switch to another language or might it be worth writing some wrapper functions for a C graphics lib 2018-01-05T07:19:11Z |3b|: #scheme or #racket might know more about scheme/racket bindings, this channel is mostly about common lisp, for which there is cl-opengl 2018-01-05T07:19:46Z JuanDaugherty: RECOMMEND: reevaluate your judgement on the graphics library, do more research and go with best you can find in time you have 2018-01-05T07:20:00Z hibikelel: You know I've been bouncing between implementations for a while and I'm not against using CL, I guess I'll give that a shot 2018-01-05T07:20:35Z JuanDaugherty: and obviously continue with lisp, but there is a cl vs scheme decision to make 2018-01-05T07:20:41Z hibikelel: Worked through most of SICP, read a bunch of Scheme books, Little Schemer, then Realm of Racket, about halfway through HTDP 2018-01-05T07:21:14Z JuanDaugherty: how long since you wrote your first program? 2018-01-05T07:21:22Z hibikelel: Never done any 'serious' work however, and while it's a true statement that I have no idea what the fcuk I'm doing I feel I know enough to figure it out 2018-01-05T07:21:48Z JuanDaugherty: programming and programming for a living are two quite different things 2018-01-05T07:22:15Z hibikelel: Let's see... I must have written my first real python program in 2014 but I didn't keep up with it, I did about jack shit until I wanna say three months ago 2018-01-05T07:22:25Z hibikelel: Always felt like it was beyond me 2018-01-05T07:23:00Z EvilTofu: If I want a function that adds a connection from one node to another (add-connection node1 node2) but I want the option of a bidirectional connection and want a (add-connection node1 node2 :bidirectional), how should this be implemented? And is this a valid lisp way of doing this? 2018-01-05T07:23:05Z glamas joined #lisp 2018-01-05T07:23:38Z hibikelel: Built up the vocabulary, finally beat it into my skull what exactly constitutes a class (no I didn't, every language changes it around) and I have trouble staying on one language when I get bored, I've got knowledge as broad as a gorge, deep as a puddle 2018-01-05T07:23:44Z Kaisyu7 joined #lisp 2018-01-05T07:23:45Z smokeink quit (Ping timeout: 260 seconds) 2018-01-05T07:23:47Z EvilTofu: I use (defun add-connection (n1 n2 &rest keywords) ... ) ? 2018-01-05T07:24:03Z hibikelel: I've probably made it through the first half of close to a dozen different books on nearly as many languages, and god knows how many tutorials 2018-01-05T07:24:04Z JuanDaugherty: in computer programming, unlike comparable professions, there's a forced dilletantism that comes from the impact of its history and role in the capital system 2018-01-05T07:24:34Z |3b|: EvilTofu: usually you would have (add-connection node1 node2 :bidirectional t), and use &key 2018-01-05T07:24:40Z JuanDaugherty: so even before the decisions mentioned there seems to be one of seriousness 2018-01-05T07:24:45Z EvilTofu: okies 2018-01-05T07:25:20Z EvilTofu: so this should be :bidirectional nil if I want it not to be the default? 2018-01-05T07:25:22Z hibikelel: I don't intend to become some master-programmer who reinvents everything about modern society, nice as that would be, when you get down to it I just want to hack around with pretty pictures 2018-01-05T07:25:54Z glamas quit (Client Quit) 2018-01-05T07:26:13Z |3b|: EvilTofu: not sure what you mean 2018-01-05T07:26:27Z hibikelel: Have a neat idea for a simple 3rd person shooter, don't even intend to sell it, just show off to some friends, I'd be surprised if whatever I come up with would be considered passable on the ps1 2018-01-05T07:26:46Z EvilTofu: The default is not bidirectional but one way. 2018-01-05T07:27:10Z EvilTofu: oh I see 2018-01-05T07:27:11Z versatile joined #lisp 2018-01-05T07:27:23Z JuanDaugherty: hibikelel, it is probably inappropriate for you to try to do a lisp app for ps1 2018-01-05T07:27:25Z EvilTofu: <|3b|> I see 2018-01-05T07:27:30Z |3b|: (add-connection node1 node2) would get default, which is specified in the DEFUN 2018-01-05T07:28:10Z |3b|: &key bidirectional, or &key (bidirectional nil) would specify NIL as default 2018-01-05T07:28:12Z hibikelel: Not what I meant, I was trying to say that the level of quality I'm shooting for here wouldn't have made a passable game on that platform, not that I'm actually intending to write a game for the ps1 2018-01-05T07:28:44Z hibikelel: That said interestingly enough Crash Bandicoot was written in a proprietary lisp dialect called GOOL 2018-01-05T07:28:49Z |3b|: you could also pass :bidirectional nil if you wanted to be explicit at the call site (or if you wanted to pass it on from another variable or similar) 2018-01-05T07:29:01Z shka quit (Ping timeout: 265 seconds) 2018-01-05T07:29:09Z JuanDaugherty: i still am unable to determine the nature of the specific paedagogical emergency 2018-01-05T07:29:38Z |3b|: there is also the option when writing the defun to determine if :bidirectional was specified at all when you want more complicated defaulting behavior, but usually you don't need that 2018-01-05T07:30:24Z hibikelel: I was just having trouble finding a 3d graphics library for racket, folks in here reccomended cl 2018-01-05T07:31:19Z JuanDaugherty: hibikelel, do you mean the folks in #racket/#scheme recommended cl? 2018-01-05T07:32:02Z |3b|: hibikelel: note that 'here' is a bit biased, other channels might have other biases and thus other suggestions :) 2018-01-05T07:32:02Z hibikelel: folks in this channel reccomended cl, I connected to #lisp thinking it was a general lisp chanel, unaware there was chanels for specifict dialects 2018-01-05T07:32:11Z hibikelel: yeah I'm aware 2018-01-05T07:32:22Z JuanDaugherty: well this is a CL channel 2018-01-05T07:32:23Z hibikelel: I'll be popping over to #scheme and #racket momentarily 2018-01-05T07:32:29Z hibikelel: I know that, now 2018-01-05T07:32:30Z |3b|: you might also try #lispgames (not CL specific, but mostly CL) 2018-01-05T07:32:39Z hibikelel: That's a good suggestion 2018-01-05T07:34:33Z SaganMan joined #lisp 2018-01-05T07:34:52Z JuanDaugherty: fwiw, i move freely across lang cultures but for you that's probably inappropriate. I wrote my first program in 1974, went to college for it, had a long career, etc 2018-01-05T07:37:42Z hibikelel: awesome, as much as I'd like to have a career in programming one day I'm not sure that I'm cut out for it, I'd prefer to keep it as a neat hobby rather than anything I do too seriously. No offense to those who do so for a living but I like the unconstrained nature of a blank editor, allowing me to work on/tinker with whatever I feel like, having to maintain someone else's software as product seems like 2018-01-05T07:37:48Z hibikelel: it'd kind of suck the fun out. 2018-01-05T07:38:35Z yeticry quit (Ping timeout: 252 seconds) 2018-01-05T07:39:00Z JuanDaugherty: that is the common reaction to doing it under the capital system, the major alternative is academic/scientific computing 2018-01-05T07:39:35Z JuanDaugherty: and the dilletantism you seem to be headed for was once common, still is a thing i think 2018-01-05T07:40:25Z yeticry joined #lisp 2018-01-05T07:40:28Z damke_ quit (Read error: Connection reset by peer) 2018-01-05T07:41:03Z JuanDaugherty: and extremely common pattern was for people to get sucked in from other disciplines, especially technical ones and then burn out on the noxious character of the industry 2018-01-05T07:41:13Z damke_ joined #lisp 2018-01-05T07:42:37Z hibikelel: I've always loved computing, but I'm more of a technician than a programmer, ressurected the laptop I'm typing this on from a chinese electronics-scrapper, had almost no parts, not even a display, ordered all of that and assembled the machine, turns out the backlight-fuse was blown, so I did my first soldering job on this thing, pretty proud of it in all honesty 2018-01-05T07:42:46Z JuanDaugherty: s/dilletante/hobbyist/ 2018-01-05T07:43:27Z orivej quit (Ping timeout: 248 seconds) 2018-01-05T07:43:43Z daemonbsd56 joined #lisp 2018-01-05T07:44:39Z hibikelel: I mean what can be said for the commercialization of the technical sector, the advent of the microprocessor didn't exactly change everything about everything overnight, but it certainly made a massive impact once consumer-grade computers were in the hands of the masses, from there the internet supercharged things 2018-01-05T07:44:47Z hibikelel: It was an inevitability 2018-01-05T07:46:39Z knobo quit (Ping timeout: 248 seconds) 2018-01-05T07:47:06Z JuanDaugherty: 'the commercialization of the technical sector' may make sense in china or russia, but the technical sector originated in and never left the technical sector 2018-01-05T07:47:12Z JuanDaugherty: in the non socialist world 2018-01-05T07:48:00Z JuanDaugherty: never left the circuit of capital production 2018-01-05T07:48:39Z EvilTofu quit (Ping timeout: 260 seconds) 2018-01-05T07:48:49Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-05T07:49:15Z sebastien_ quit (Quit: KPTI reboot) 2018-01-05T07:49:20Z FreeBirdLjj joined #lisp 2018-01-05T07:49:37Z damke joined #lisp 2018-01-05T07:49:38Z hibikelel: Perhaps that was a poor turn of phrase, I was attempting to articulate the transition of general computing from the past-time of academics and amateur programmers through the mid-sixties into the late-seventies, into what we wolud consider the modern information economy. Time was unless you were manufacturing hardware there was almost no money to be made in computing outside of supporting a corporate 2018-01-05T07:49:42Z smurfrobot joined #lisp 2018-01-05T07:49:44Z hibikelel: mainframe 2018-01-05T07:50:13Z JuanDaugherty: yeah that's just false 2018-01-05T07:50:38Z JuanDaugherty: computing has always had a military/commercial grounding 2018-01-05T07:51:41Z JuanDaugherty: even mathematics itself arose in the practical activities of accounting, surveying, etc 2018-01-05T07:52:19Z sebastien_ joined #lisp 2018-01-05T07:52:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-05T07:53:11Z damke_ joined #lisp 2018-01-05T07:54:04Z daemonbsd56 quit (Ping timeout: 255 seconds) 2018-01-05T07:54:09Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-05T07:54:39Z sebbot quit (Quit: Lost terminal) 2018-01-05T07:56:09Z damke quit (Ping timeout: 264 seconds) 2018-01-05T07:56:53Z JuanDaugherty: probably the height of what you are talking about was in the late 70s and early 80s, a fairly brief time, less than a decade 2018-01-05T07:58:56Z uuplusu joined #lisp 2018-01-05T07:59:23Z JuanDaugherty: anyway, as far as your original paedogogical emergency, i'd give portacle a try, use the libs it provides 2018-01-05T08:02:33Z uuplusu_ joined #lisp 2018-01-05T08:03:21Z uuplusu quit (Read error: No route to host) 2018-01-05T08:04:45Z hibikelel quit (Quit: leaving) 2018-01-05T08:06:52Z knobo joined #lisp 2018-01-05T08:07:27Z hajovonta joined #lisp 2018-01-05T08:08:52Z trittweiler joined #lisp 2018-01-05T08:08:53Z Cymew joined #lisp 2018-01-05T08:09:43Z Shinmera: https://portacle.github.io 2018-01-05T08:11:22Z hajovonta: good morning! 2018-01-05T08:20:18Z uuplusu_ quit (Remote host closed the connection) 2018-01-05T08:23:43Z beach: Good morning everyone! 2018-01-05T08:33:01Z scymtym joined #lisp 2018-01-05T08:33:27Z jarwin joined #lisp 2018-01-05T08:33:28Z jarwin is now known as Jarwin 2018-01-05T08:34:40Z eviltofu joined #lisp 2018-01-05T08:35:08Z eviltofu is now known as EvilTofu 2018-01-05T08:35:39Z fe[nl]ix: 'morning beach 2018-01-05T08:35:56Z EvilTofu quit (Client Quit) 2018-01-05T08:38:16Z eviltofu joined #lisp 2018-01-05T08:38:24Z eviltofu is now known as EvilTofu 2018-01-05T08:38:27Z nowhereman quit (Ping timeout: 240 seconds) 2018-01-05T08:38:46Z beach: The ELS program committee is taking shape. 2018-01-05T08:39:55Z pjb joined #lisp 2018-01-05T08:43:34Z safe quit (Quit: Leaving) 2018-01-05T08:44:57Z groovy2shoes quit (Ping timeout: 250 seconds) 2018-01-05T08:46:18Z eschatologist joined #lisp 2018-01-05T08:46:41Z fikka joined #lisp 2018-01-05T08:49:44Z mhd joined #lisp 2018-01-05T08:51:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-05T08:54:55Z drcode quit (Ping timeout: 248 seconds) 2018-01-05T09:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-05T09:04:28Z damke_ joined #lisp 2018-01-05T09:08:48Z hajovonta: hi beach! 2018-01-05T09:10:10Z beach: hajovonta: Are you planning to go to ELS this year? 2018-01-05T09:10:25Z EvilTofu: What is ELS? 2018-01-05T09:11:03Z hajovonta: I'm planning it every year, but family issues usually hold me back 2018-01-05T09:11:17Z EvilTofu quit (Quit: EvilTofu) 2018-01-05T09:11:19Z jackdaniel: EvilTofu: European Lisp Symposium 2018-01-05T09:11:50Z hajovonta: also, it's a lot of money just to travel and stay, and in the past few years it was nearly impossible to embark on the journey 2018-01-05T09:12:26Z zooey quit (Remote host closed the connection) 2018-01-05T09:13:14Z zooey joined #lisp 2018-01-05T09:14:30Z hajovonta: where will it take place this year? 2018-01-05T09:17:13Z beach: Marbella 2018-01-05T09:17:49Z JonSmith quit (Remote host closed the connection) 2018-01-05T09:22:56Z mishoo joined #lisp 2018-01-05T09:23:04Z uuplusu joined #lisp 2018-01-05T09:26:14Z mingus quit (Remote host closed the connection) 2018-01-05T09:29:12Z eviltofu joined #lisp 2018-01-05T09:34:32Z mingus joined #lisp 2018-01-05T09:36:29Z quazimodo joined #lisp 2018-01-05T09:40:49Z nirved joined #lisp 2018-01-05T09:41:19Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-05T09:43:22Z versatile quit (Quit: WeeChat 1.4) 2018-01-05T09:43:57Z vlatkoB joined #lisp 2018-01-05T09:45:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-05T09:45:29Z versatile joined #lisp 2018-01-05T09:47:41Z orivej joined #lisp 2018-01-05T09:51:24Z smurfrobot joined #lisp 2018-01-05T09:55:15Z smurfrobot quit (Remote host closed the connection) 2018-01-05T09:55:30Z smurfrobot joined #lisp 2018-01-05T10:01:59Z nsrahmad joined #lisp 2018-01-05T10:02:35Z milanj joined #lisp 2018-01-05T10:03:54Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-05T10:06:57Z jpxe joined #lisp 2018-01-05T10:07:43Z smurfrobot quit (Remote host closed the connection) 2018-01-05T10:12:24Z smurfrobot joined #lisp 2018-01-05T10:18:15Z JonSmith joined #lisp 2018-01-05T10:19:56Z nowhereman joined #lisp 2018-01-05T10:22:08Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-05T10:22:19Z sebastien_ quit (Ping timeout: 252 seconds) 2018-01-05T10:22:27Z Jarwin joined #lisp 2018-01-05T10:22:27Z sebastien_ joined #lisp 2018-01-05T10:22:57Z JonSmith quit (Ping timeout: 240 seconds) 2018-01-05T10:25:54Z smurfrobot quit (Remote host closed the connection) 2018-01-05T10:27:00Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-05T10:27:27Z nowhereman quit (Ping timeout: 240 seconds) 2018-01-05T10:28:35Z Jarwin quit (Ping timeout: 240 seconds) 2018-01-05T10:29:06Z prometheus_falli joined #lisp 2018-01-05T10:31:44Z smurfrobot joined #lisp 2018-01-05T10:32:37Z no_bobby joined #lisp 2018-01-05T10:33:40Z manualcrank quit (Quit: WeeChat 2.0.1) 2018-01-05T10:33:50Z nowhereman joined #lisp 2018-01-05T10:34:51Z fikka joined #lisp 2018-01-05T10:34:56Z _cosmonaut_ joined #lisp 2018-01-05T10:39:56Z fikka quit (Ping timeout: 265 seconds) 2018-01-05T10:40:03Z smurfrobot quit (Remote host closed the connection) 2018-01-05T10:42:07Z no_bobby quit (Ping timeout: 248 seconds) 2018-01-05T10:46:26Z random-nick joined #lisp 2018-01-05T10:48:43Z nsrahmad quit (Ping timeout: 252 seconds) 2018-01-05T10:48:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-05T10:50:13Z drcode joined #lisp 2018-01-05T10:51:04Z ym quit (Quit: Leaving) 2018-01-05T10:51:26Z fikka joined #lisp 2018-01-05T10:52:43Z test1600 quit (Quit: Leaving) 2018-01-05T10:54:47Z nika quit 2018-01-05T10:55:43Z orivej joined #lisp 2018-01-05T10:59:08Z shifty779 quit (Quit: Leaving) 2018-01-05T10:59:38Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-05T11:00:25Z shifty joined #lisp 2018-01-05T11:01:13Z damke joined #lisp 2018-01-05T11:02:48Z smurfrobot joined #lisp 2018-01-05T11:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-05T11:07:57Z damke_ joined #lisp 2018-01-05T11:08:45Z eviltofu quit (Quit: eviltofu) 2018-01-05T11:09:21Z damke quit (Ping timeout: 264 seconds) 2018-01-05T11:10:52Z m00natic joined #lisp 2018-01-05T11:11:19Z nowhereman quit (Ping timeout: 256 seconds) 2018-01-05T11:11:45Z orivej quit (Ping timeout: 264 seconds) 2018-01-05T11:17:23Z markong joined #lisp 2018-01-05T11:23:58Z FareTower joined #lisp 2018-01-05T11:27:39Z smurfrobot quit (Remote host closed the connection) 2018-01-05T11:28:42Z namra joined #lisp 2018-01-05T11:29:20Z namra: greetings 2018-01-05T11:31:09Z namra: i'm pretty new to lisp and trying to read from a stream (that is returned instead of a string) as the response body of a get request using dexador 2018-01-05T11:31:50Z smurfrobot joined #lisp 2018-01-05T11:32:53Z namra: to read from it i do the following: https://pastebin.com/4aeS8n4Z 2018-01-05T11:33:16Z namra: thought that actually doesn't read anything from the stream, and i just can't figure out why 2018-01-05T11:33:29Z namra: (read-line response) works fine though 2018-01-05T11:34:27Z vap1 quit (Ping timeout: 240 seconds) 2018-01-05T11:35:50Z pillton: aeth: That bug is now fixed in master. 2018-01-05T11:37:38Z Tobbi joined #lisp 2018-01-05T11:38:20Z thijso quit (Read error: Connection reset by peer) 2018-01-05T11:43:46Z FareTower: namra, did something else read everything from the stream? 2018-01-05T11:44:07Z FareTower: is it a binary stream or a character stream? 2018-01-05T11:45:00Z namra: it's a BABEL:UNICODE-CHAR stream 2018-01-05T11:46:48Z namra: i don't know if some of the dexador code read from the stream prior, which actually doesn't seem reasonable because it wouldn't make sense to return the stream than. though any code i wrote doesn't read from it prior to that. 2018-01-05T11:47:06Z namra: i also tried it with a binary stream 2018-01-05T11:47:28Z FareTower: is that an alias for character, on sbcl? 2018-01-05T11:47:51Z namra: sorry FareTower but i don't know 2018-01-05T11:48:43Z smurfrobot quit (Remote host closed the connection) 2018-01-05T11:48:45Z namra: hm babel is a CL charset encoding/decoding library 2018-01-05T11:52:33Z FareTower: I know of babel. If you M-. on BABEL:UNICODE-CHAR it should take you to the definition. 2018-01-05T11:53:33Z Yun quit (Quit: Yun) 2018-01-05T11:54:26Z namra: yep it's an alias for character 2018-01-05T11:54:52Z panji joined #lisp 2018-01-05T11:55:25Z FareTower: ok, so can you read-line from that stream? 2018-01-05T11:55:57Z namra: yes 2018-01-05T11:57:13Z FareTower: but read-sequence fails to read even one character? 2018-01-05T11:57:22Z namra: that is correct 2018-01-05T11:57:35Z FareTower: or is your sequence of effective size 0? 2018-01-05T11:58:04Z namra: nope i set it to 1024 2018-01-05T11:58:13Z FareTower: :fill-pointer 0 2018-01-05T11:58:28Z namra: (make-array 1024 :fill-pointer 0 :adjustable t :element-type (stream-element-type response)) 2018-01-05T11:58:32Z FareTower: :fill-pointer 0 2018-01-05T11:58:36Z shrdlu68 joined #lisp 2018-01-05T11:59:13Z FareTower: maybe instead you should save the value given by read-sequence, and use it to set fill-pointer, or something 2018-01-05T12:00:35Z namra: the hyperspec states that read-sequence returns the position into the sequence (basically how many chars in this case have been read), but it always returns 0 2018-01-05T12:00:58Z FareTower: because you set fill-pointer to 0 2018-01-05T12:01:23Z FareTower: set the fill-pointer to 1024 2018-01-05T12:01:43Z FareTower: read-sequence is not magic 2018-01-05T12:02:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-05T12:04:26Z FareTower: it's not call read-sequence-extend 2018-01-05T12:04:41Z FareTower: (by anology with vector-push-extend) 2018-01-05T12:05:21Z namra: oh i see 2018-01-05T12:05:26Z namra: thank you very much 2018-01-05T12:05:59Z FareTower: now you're it 2018-01-05T12:06:05Z namra: i thought read-sequence is advancing the fill-pointer 2018-01-05T12:06:05Z FareTower: to help the next newbie 2018-01-05T12:06:22Z FareTower: so did i, probably, once long time ago 2018-01-05T12:06:44Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-05T12:06:58Z FareTower: and yes, if alexandria doesn't have a read-sequence-extend function, maybe you can contribute it. Or to another library 2018-01-05T12:07:31Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-05T12:07:50Z Shinmera: Doesn't uiop have a thing to read a stream to a sequence? 2018-01-05T12:08:18Z FareTower: read-file-string you mean? 2018-01-05T12:09:26Z namra: alexandria does have this -> READ-STREAM-CONTENT-INTO-STRING 2018-01-05T12:09:26Z FareTower: yes, it does, but this gentleman is reading from a stream. Maybe he wants slurp-stream-string. 2018-01-05T12:09:33Z shrdlu68: There doesn't seem to be a "maxcol" print arg to the ~D format directive. How does one limit the maximum width? 2018-01-05T12:13:41Z JuanDaugherty joined #lisp 2018-01-05T12:17:14Z smurfrobot joined #lisp 2018-01-05T12:18:28Z hhdave joined #lisp 2018-01-05T12:19:26Z JonSmith joined #lisp 2018-01-05T12:22:09Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-05T12:22:49Z gabiruh quit (Quit: ZNC - 1.6.0 - http://znc.in) 2018-01-05T12:23:30Z vap1 joined #lisp 2018-01-05T12:23:52Z JonSmith quit (Ping timeout: 252 seconds) 2018-01-05T12:24:08Z namra: shrdlu68: maybe you can achieve that with a conditional format directive, where the first argument checks if the number is to large 2018-01-05T12:24:31Z vaporatorius joined #lisp 2018-01-05T12:24:49Z shrdlu68: namra: I can do that. 2018-01-05T12:25:56Z fikka joined #lisp 2018-01-05T12:26:03Z wxie joined #lisp 2018-01-05T12:26:34Z smurfrobot joined #lisp 2018-01-05T12:28:06Z namra: (format nil "~@[~D~]" (not-to-large number)) 2018-01-05T12:28:32Z gabiruh joined #lisp 2018-01-05T12:31:11Z smurfrobot quit (Ping timeout: 252 seconds) 2018-01-05T12:32:30Z gtuser joined #lisp 2018-01-05T12:37:19Z FreeBirdLjj joined #lisp 2018-01-05T12:40:31Z neuri8 quit (Quit: L) 2018-01-05T12:42:09Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-05T12:42:53Z raynold quit (Quit: Connection closed for inactivity) 2018-01-05T12:44:10Z orivej joined #lisp 2018-01-05T12:45:21Z zaquest quit (Ping timeout: 248 seconds) 2018-01-05T12:49:35Z vap1 quit (Quit: Leaving) 2018-01-05T12:49:55Z FreeBirdLjj joined #lisp 2018-01-05T12:52:44Z prometheus_falli quit (Remote host closed the connection) 2018-01-05T12:53:13Z prometheus_falli joined #lisp 2018-01-05T12:53:45Z Cymew quit (Remote host closed the connection) 2018-01-05T12:54:05Z gravicappa joined #lisp 2018-01-05T12:56:36Z Bike joined #lisp 2018-01-05T12:56:49Z Karl_Dscc joined #lisp 2018-01-05T12:57:32Z panji left #lisp 2018-01-05T13:00:02Z Cymew joined #lisp 2018-01-05T13:00:11Z zaquest joined #lisp 2018-01-05T13:00:23Z rpg joined #lisp 2018-01-05T13:04:56Z Cymew quit (Ping timeout: 265 seconds) 2018-01-05T13:08:37Z djh quit (Ping timeout: 256 seconds) 2018-01-05T13:11:56Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-05T13:16:39Z djh joined #lisp 2018-01-05T13:19:57Z LocaMocha quit (Ping timeout: 240 seconds) 2018-01-05T13:22:57Z damke joined #lisp 2018-01-05T13:22:59Z zooey quit (Remote host closed the connection) 2018-01-05T13:23:38Z zooey joined #lisp 2018-01-05T13:25:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-05T13:27:24Z smurfrobot joined #lisp 2018-01-05T13:30:10Z tlaxkit joined #lisp 2018-01-05T13:30:37Z random-nick quit (Remote host closed the connection) 2018-01-05T13:31:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-05T13:33:23Z wxie quit (Remote host closed the connection) 2018-01-05T13:33:25Z LocaMocha joined #lisp 2018-01-05T13:33:29Z random-nick joined #lisp 2018-01-05T13:40:29Z emacsomancer joined #lisp 2018-01-05T13:43:48Z m00natic quit (Quit: ERC (IRC client for Emacs 26.0.90)) 2018-01-05T13:44:52Z m00natic joined #lisp 2018-01-05T13:46:44Z jsambroo_ joined #lisp 2018-01-05T13:46:45Z dec0n_ joined #lisp 2018-01-05T13:47:32Z fikka quit (Read error: Connection reset by peer) 2018-01-05T13:47:48Z fikka joined #lisp 2018-01-05T13:48:06Z hajovonta quit (Remote host closed the connection) 2018-01-05T13:48:21Z hajovonta joined #lisp 2018-01-05T13:48:24Z fluke`` joined #lisp 2018-01-05T13:48:40Z jsambrook quit (Read error: Connection reset by peer) 2018-01-05T13:49:51Z gravicappa quit (Ping timeout: 248 seconds) 2018-01-05T13:49:51Z dec0n quit (Ping timeout: 248 seconds) 2018-01-05T13:49:52Z ikopico quit (Ping timeout: 248 seconds) 2018-01-05T13:49:52Z Oddity quit (Ping timeout: 248 seconds) 2018-01-05T13:50:55Z norserob quit (Ping timeout: 248 seconds) 2018-01-05T13:51:05Z shifty quit (Ping timeout: 276 seconds) 2018-01-05T13:52:03Z norserob joined #lisp 2018-01-05T13:52:13Z FreeBirdLjj joined #lisp 2018-01-05T13:52:31Z fluke` quit (Ping timeout: 248 seconds) 2018-01-05T13:53:37Z fortitude joined #lisp 2018-01-05T13:54:20Z ikopico joined #lisp 2018-01-05T13:54:26Z mnoonan quit (Remote host closed the connection) 2018-01-05T13:56:39Z eSVG quit (Ping timeout: 265 seconds) 2018-01-05T13:56:39Z Oddity joined #lisp 2018-01-05T13:56:40Z Oddity quit (Changing host) 2018-01-05T13:56:40Z Oddity joined #lisp 2018-01-05T13:56:47Z orivej quit (Ping timeout: 256 seconds) 2018-01-05T13:59:05Z orivej joined #lisp 2018-01-05T14:10:41Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-05T14:13:50Z orivej quit (Ping timeout: 260 seconds) 2018-01-05T14:14:10Z orivej joined #lisp 2018-01-05T14:15:18Z josemanuel joined #lisp 2018-01-05T14:17:15Z LiamH joined #lisp 2018-01-05T14:20:12Z JonSmith joined #lisp 2018-01-05T14:20:45Z trittweiler quit (Remote host closed the connection) 2018-01-05T14:21:02Z trittweiler joined #lisp 2018-01-05T14:24:52Z JonSmith quit (Ping timeout: 252 seconds) 2018-01-05T14:25:05Z trittweiler quit (Ping timeout: 240 seconds) 2018-01-05T14:27:51Z al-damiri joined #lisp 2018-01-05T14:28:09Z smurfrobot joined #lisp 2018-01-05T14:33:03Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-05T14:36:52Z warweasle joined #lisp 2018-01-05T14:40:19Z FreeBirdLjj joined #lisp 2018-01-05T14:42:25Z zooey quit (Remote host closed the connection) 2018-01-05T14:43:44Z fikka quit (Ping timeout: 276 seconds) 2018-01-05T14:43:47Z zooey joined #lisp 2018-01-05T14:45:38Z rumbler31 joined #lisp 2018-01-05T14:49:28Z hajovonta quit (Quit: hajovonta) 2018-01-05T14:51:09Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-05T14:53:39Z kushal quit (Read error: Connection reset by peer) 2018-01-05T14:57:34Z fikka joined #lisp 2018-01-05T15:01:42Z Ellusionist joined #lisp 2018-01-05T15:08:46Z Jesin quit (Quit: Leaving) 2018-01-05T15:09:54Z smurfrobot joined #lisp 2018-01-05T15:10:02Z attila_lendvai joined #lisp 2018-01-05T15:10:02Z attila_lendvai quit (Changing host) 2018-01-05T15:10:02Z attila_lendvai joined #lisp 2018-01-05T15:10:44Z smurfrobot quit (Remote host closed the connection) 2018-01-05T15:11:50Z resttime joined #lisp 2018-01-05T15:13:43Z Jesin joined #lisp 2018-01-05T15:14:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-05T15:16:27Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-05T15:17:11Z kushal joined #lisp 2018-01-05T15:17:17Z FreeBirdLjj joined #lisp 2018-01-05T15:17:35Z kushal is now known as Guest41649 2018-01-05T15:19:54Z oleo joined #lisp 2018-01-05T15:20:52Z JonSmith joined #lisp 2018-01-05T15:24:48Z Guest41649 is now known as kushal 2018-01-05T15:24:57Z kushal quit (Changing host) 2018-01-05T15:24:57Z kushal joined #lisp 2018-01-05T15:25:27Z JonSmith quit (Ping timeout: 240 seconds) 2018-01-05T15:26:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-05T15:26:38Z fluke`` quit (Ping timeout: 276 seconds) 2018-01-05T15:28:43Z smurfrobot joined #lisp 2018-01-05T15:35:30Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-01-05T15:37:05Z Ellusionist quit (Ping timeout: 252 seconds) 2018-01-05T15:37:05Z knobo quit (Ping timeout: 252 seconds) 2018-01-05T15:40:39Z broccoli1 quit (Read error: Connection reset by peer) 2018-01-05T15:40:49Z dddddd joined #lisp 2018-01-05T15:40:55Z broccolistem joined #lisp 2018-01-05T15:41:43Z EvW1 joined #lisp 2018-01-05T15:44:27Z nika joined #lisp 2018-01-05T15:47:27Z turkja quit (Ping timeout: 240 seconds) 2018-01-05T15:47:49Z FreeBirdLjj joined #lisp 2018-01-05T15:51:56Z mishoo_ joined #lisp 2018-01-05T15:53:27Z mishoo quit (Ping timeout: 240 seconds) 2018-01-05T15:54:08Z smurfrobot quit (Remote host closed the connection) 2018-01-05T15:57:05Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-05T15:57:25Z dec0n_ quit (Read error: Connection reset by peer) 2018-01-05T15:58:26Z _cosmonaut_ quit (Ping timeout: 268 seconds) 2018-01-05T15:58:32Z Colleen quit (Quit: Colleen) 2018-01-05T16:04:42Z malice joined #lisp 2018-01-05T16:08:05Z gravicappa joined #lisp 2018-01-05T16:08:26Z knobo joined #lisp 2018-01-05T16:08:31Z jmercouris joined #lisp 2018-01-05T16:16:42Z Vicfred quit (Quit: Leaving) 2018-01-05T16:17:18Z ryanbw quit (Ping timeout: 265 seconds) 2018-01-05T16:22:00Z Folkol joined #lisp 2018-01-05T16:23:59Z FreeBirdLjj joined #lisp 2018-01-05T16:30:53Z asarch joined #lisp 2018-01-05T16:33:03Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-05T16:34:58Z JonSmith joined #lisp 2018-01-05T16:37:23Z FreeBirdLjj joined #lisp 2018-01-05T16:42:52Z mo` joined #lisp 2018-01-05T16:43:29Z mo`: hey, is there a way to run Emacs functions from a lisp program, I use slime and sbcl ? 2018-01-05T16:44:07Z knobo quit (Read error: Connection reset by peer) 2018-01-05T16:45:46Z _death: swank:eval-in-emacs? 2018-01-05T16:45:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-05T16:46:49Z smurfrobot joined #lisp 2018-01-05T16:48:22Z mo`: _death: thanks I will look into it 2018-01-05T16:48:43Z knobo joined #lisp 2018-01-05T16:48:59Z AntiSpamMeta quit (Excess Flood) 2018-01-05T16:49:29Z AntiSpamMeta joined #lisp 2018-01-05T16:50:19Z FreeBirdLjj joined #lisp 2018-01-05T16:50:20Z mo`: _death: thanks this works. 2018-01-05T16:50:35Z mo`: how do I get help for a function or variable in slime ? 2018-01-05T16:51:02Z jmercouris: mo`: DO you mean a CL variable or an Elisp variable? 2018-01-05T16:52:26Z warweasle: mo`: Do you mean slime-apropos? 2018-01-05T16:53:29Z mo`: yeah I mean a CL variable 2018-01-05T16:54:17Z makomo joined #lisp 2018-01-05T16:56:23Z Ellusionist joined #lisp 2018-01-05T16:57:14Z uuplusu quit (Remote host closed the connection) 2018-01-05T16:57:49Z jmercouris: mo`: You can do something like describe 2018-01-05T16:57:49Z Shinmera is now known as TyColleen 2018-01-05T16:57:51Z jmercouris: clhs describe 2018-01-05T16:57:52Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_descri.htm 2018-01-05T16:58:38Z jmercouris: there's also documentation 2018-01-05T16:58:56Z jmercouris: clhs documentation 2018-01-05T16:58:57Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_docume.htm 2018-01-05T16:59:06Z jmercouris: documentation sounds closer to what you're looking for 2018-01-05T16:59:11Z malice: you can also inspect 2018-01-05T16:59:22Z malice: that won't show help, but you can look at some objects 2018-01-05T16:59:43Z jmercouris: So an example might be something like (documentation *variable-name* 'variable) 2018-01-05T17:00:05Z TyColleen is now known as Shinmera 2018-01-05T17:00:48Z fnodeuser joined #lisp 2018-01-05T17:00:56Z TyColleen joined #lisp 2018-01-05T17:00:57Z mo` quit (Ping timeout: 240 seconds) 2018-01-05T17:01:14Z papachan: there is no "sdraw" package at quicklisp? 2018-01-05T17:01:23Z Xach: No 2018-01-05T17:01:39Z namra quit (Ping timeout: 260 seconds) 2018-01-05T17:02:25Z jmercouris: Xach: Is there a way to fetch the latest upstream version of a project available in quicklisp? 2018-01-05T17:02:44Z Xach: jmercouris: not directly, but all upstream sources are tracked in the quicklisp-projects github repo 2018-01-05T17:02:55Z jmercouris: Ok, just wanted to confirm that, thinking about writing a tool 2018-01-05T17:02:59Z uuplusu joined #lisp 2018-01-05T17:03:57Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-05T17:04:12Z jmercouris: sigjuice: Confirmation at this point in time 2018-01-05T17:05:09Z Ellusionist quit (Ping timeout: 264 seconds) 2018-01-05T17:05:35Z hhdave quit (Ping timeout: 240 seconds) 2018-01-05T17:06:15Z Xach: jmercouris: i do intend to ship that data with quicklisp dists soon 2018-01-05T17:07:04Z nika quit (Quit: Leaving...) 2018-01-05T17:07:33Z uuplusu quit (Ping timeout: 264 seconds) 2018-01-05T17:08:12Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-05T17:08:18Z engblom quit (Remote host closed the connection) 2018-01-05T17:08:44Z ikki quit (Ping timeout: 268 seconds) 2018-01-05T17:09:19Z jmercouris: Xach: I remember you told me some time ago, but let's say you have something installed via quicklisp, and something in your local-projects dir, how does ql decide which to load? 2018-01-05T17:09:51Z Xach: jmercouris: local-projects takes precedence always. 2018-01-05T17:10:02Z jmercouris: Ok good, that should make this tool work then 2018-01-05T17:10:08Z Xach: as well as any other system visible through asdf's registry system 2018-01-05T17:10:15Z Xach: quicklisp-provided projects are the last resort 2018-01-05T17:10:25Z jmercouris: i guess that makes sense, becaause the user would have to manually do that meaning that is likely their intent 2018-01-05T17:11:27Z papachan: is this correct? (not (append '() '())) 2018-01-05T17:11:33Z papachan: its en empty list 2018-01-05T17:11:47Z tomlukeywood joined #lisp 2018-01-05T17:12:03Z uuplusu joined #lisp 2018-01-05T17:12:13Z jmercouris: If you append an emtpy list to an empty list, I expect you'd get an empty list 2018-01-05T17:13:12Z alexmlw joined #lisp 2018-01-05T17:16:05Z orivej quit (Ping timeout: 252 seconds) 2018-01-05T17:16:47Z uuplusu quit (Ping timeout: 248 seconds) 2018-01-05T17:17:43Z papachan: ah ok i found something better so: (find-if #'identity (append '() '())) 2018-01-05T17:18:05Z nowhere_man joined #lisp 2018-01-05T17:20:22Z fnodeuser left #lisp 2018-01-05T17:21:03Z uuplusu joined #lisp 2018-01-05T17:22:32Z Jesin quit (Quit: Leaving) 2018-01-05T17:23:08Z varjagg joined #lisp 2018-01-05T17:23:38Z Shinmera is now known as Colleen 2018-01-05T17:23:46Z SaganMan joined #lisp 2018-01-05T17:24:22Z Colleen is now known as Shinmera 2018-01-05T17:24:36Z TyColleen is now known as Colleen 2018-01-05T17:25:34Z Karl_Dscc quit (Remote host closed the connection) 2018-01-05T17:25:51Z uuplusu quit (Ping timeout: 248 seconds) 2018-01-05T17:27:27Z mint quit (Read error: Connection reset by peer) 2018-01-05T17:28:24Z uuplusu joined #lisp 2018-01-05T17:32:47Z ryanbw joined #lisp 2018-01-05T17:33:14Z uuplusu_ joined #lisp 2018-01-05T17:33:20Z uuplusu quit (Read error: Connection reset by peer) 2018-01-05T17:38:43Z jmercouris: papachan: What do you mean better? if we don't know what the program is supposed to do, what is better or worse? You need to provide some context 2018-01-05T17:41:37Z FreeBirdLjj joined #lisp 2018-01-05T17:42:35Z djinni` quit (Quit: Leaving) 2018-01-05T17:45:57Z makomo quit (Ping timeout: 264 seconds) 2018-01-05T17:46:40Z djinni` joined #lisp 2018-01-05T17:46:50Z smurfrobot quit (Remote host closed the connection) 2018-01-05T17:54:32Z Cymew joined #lisp 2018-01-05T17:59:00Z Cymew quit (Ping timeout: 260 seconds) 2018-01-05T17:59:17Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-05T18:02:46Z uuplusu_ quit (Remote host closed the connection) 2018-01-05T18:04:36Z Ellusionist joined #lisp 2018-01-05T18:10:35Z Ellusionist quit (Ping timeout: 240 seconds) 2018-01-05T18:12:19Z uuplusu joined #lisp 2018-01-05T18:12:42Z FreeBirdLjj joined #lisp 2018-01-05T18:14:05Z aanand` joined #lisp 2018-01-05T18:16:35Z uuplusu quit (Ping timeout: 252 seconds) 2018-01-05T18:17:20Z qjube joined #lisp 2018-01-05T18:18:31Z phoe: papachan: your program is equivalent to 2018-01-05T18:18:33Z phoe: '() 2018-01-05T18:20:08Z Shinmera: Which is also the same as () 2018-01-05T18:20:56Z warweasle: Which is the name as nil. 2018-01-05T18:21:21Z Shinmera: And the same as an infinity of other forms 2018-01-05T18:21:30Z uuplusu joined #lisp 2018-01-05T18:24:15Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-05T18:24:23Z SaganMan quit (Quit: mata ashita) 2018-01-05T18:25:27Z FreeBirdLjj joined #lisp 2018-01-05T18:25:57Z uuplusu quit (Ping timeout: 240 seconds) 2018-01-05T18:26:18Z nowhereman_ joined #lisp 2018-01-05T18:27:36Z EvW1 quit (Ping timeout: 246 seconds) 2018-01-05T18:30:21Z nowhere_man quit (Ping timeout: 264 seconds) 2018-01-05T18:30:31Z uuplusu joined #lisp 2018-01-05T18:35:11Z marcux joined #lisp 2018-01-05T18:35:13Z makomo joined #lisp 2018-01-05T18:35:41Z uuplusu quit (Ping timeout: 268 seconds) 2018-01-05T18:37:46Z phoe: we need to hold a contest 2018-01-05T18:38:05Z phoe: the most bizarre and unexpected way of writing a form that evaluates to NIL 2018-01-05T18:38:18Z phoe: ...possibly without side effects 2018-01-05T18:38:55Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-05T18:39:28Z Ellusionist joined #lisp 2018-01-05T18:39:36Z uuplusu joined #lisp 2018-01-05T18:41:14Z shka joined #lisp 2018-01-05T18:41:35Z rme: (setq) 2018-01-05T18:43:05Z FreeBirdLjj joined #lisp 2018-01-05T18:44:26Z phoe: rme: unexpectedly satisfying 2018-01-05T18:44:55Z Xach: rme: Nice! Wow! 2018-01-05T18:44:56Z uuplusu quit (Ping timeout: 268 seconds) 2018-01-05T18:45:05Z Xach: That is going to save me so much time in macros! Maybe! 2018-01-05T18:45:14Z phoe: Xach: how? 2018-01-05T18:45:27Z rme: That's one of my favorites. 2018-01-05T18:45:36Z Xach: phoe: no need to check if i have a non-nil number of things to setf 2018-01-05T18:45:50Z Xach: `(setf ,@assignments) where assignments might be empty just works 2018-01-05T18:46:04Z phoe: oh wait 2018-01-05T18:46:07Z phoe: (setf) works as well 2018-01-05T18:46:13Z Xach: This is a little tongue in cheek. Macros are the only reason I can imagine for allowing an empty setq/setf 2018-01-05T18:46:17Z phoe: holy cow, niiiiice 2018-01-05T18:46:25Z Xach: It wouldn't affect me personally in any way I can think of. 2018-01-05T18:47:20Z smurfrobot joined #lisp 2018-01-05T18:48:53Z uuplusu joined #lisp 2018-01-05T18:53:05Z orivej joined #lisp 2018-01-05T18:53:45Z uuplusu quit (Ping timeout: 263 seconds) 2018-01-05T18:55:25Z ryanbw quit (Ping timeout: 268 seconds) 2018-01-05T18:56:09Z kolb: is there a name for this (imho defining) property of Lisp that things like `(setf ,@bindings) work? This is how I got to appreciate it the most: http://people.cs.uchicago.edu/~wiseman/humor/large-programs.html 2018-01-05T18:57:18Z Xach: Wow, interesting that lemonodor's college page is still up. 2018-01-05T18:57:29Z phoe: kolb: you mean backquote? 2018-01-05T18:57:58Z uuplusu joined #lisp 2018-01-05T18:58:02Z phoe: homoiconicity? 2018-01-05T18:58:25Z kolb: phoe: no I mean the fact that nil is a boolean, a symbol, a list, the "null value", things like (setq) work, ... 2018-01-05T18:58:28Z kolb: see my link 2018-01-05T18:58:30Z smurfrobot quit (Remote host closed the connection) 2018-01-05T18:58:43Z kolb: I guess its a design principle 2018-01-05T18:58:46Z smurfrobot joined #lisp 2018-01-05T18:58:48Z phoe: "CDR didn't think that NIL was much fun" 2018-01-05T18:58:54Z phoe: oh, he used Scheme. poor man 2018-01-05T18:59:00Z kolb: exactly 2018-01-05T18:59:01Z Xach: kolb: I think so 2018-01-05T18:59:21Z Xach: kolb: there's a willingness to be ugly to work 2018-01-05T18:59:31Z _death: pragmatism 2018-01-05T18:59:38Z phoe: ^ 2018-01-05T19:00:00Z kolb: I think doug hoyte had a term in LoL 2018-01-05T19:00:22Z kolb: I think pragmatism is way too generic and doesn’t describe the thing 2018-01-05T19:00:23Z warweasle: I would like scheme if it had defmacro and CLOS. 2018-01-05T19:00:32Z FreeBirdLjj quit (Read error: Connection timed out) 2018-01-05T19:00:53Z kolb: doug hoyte called it "dualisms" IIRC 2018-01-05T19:00:54Z warweasle: Also, I'm not a huge fan of #t, #f, (), all being different things. 2018-01-05T19:01:14Z phoe: warweasle: I actually like #t and #f being different things 2018-01-05T19:01:15Z warweasle: Well, #t should be (not #f) 2018-01-05T19:01:22Z kolb: and doug claimed that these dualisms relate directly to expressiveness 2018-01-05T19:01:28Z fluke`` joined #lisp 2018-01-05T19:01:29Z phoe: makes for useful stuff, like, for example, boolean logic 2018-01-05T19:01:35Z warweasle: phoe: I can understand the argument, so that's why it's not a deal breaker. 2018-01-05T19:02:12Z _death: equivocation 2018-01-05T19:02:35Z uuplusu quit (Ping timeout: 260 seconds) 2018-01-05T19:03:04Z kolb: _death: that’s a fancy word for ambiguous ;-P 2018-01-05T19:03:35Z shka: good evening 2018-01-05T19:03:37Z malice quit (Remote host closed the connection) 2018-01-05T19:03:42Z _death: kolb: a term is ambiguous, the use of ambiguity is equivocation 2018-01-05T19:03:58Z CharlieBrown quit (Ping timeout: 264 seconds) 2018-01-05T19:05:35Z foom2 joined #lisp 2018-01-05T19:06:20Z shka: scheme is perfect education medium 2018-01-05T19:06:38Z Ellusionist quit (Ping timeout: 252 seconds) 2018-01-05T19:06:42Z shka: and should be recognized as such 2018-01-05T19:07:04Z uuplusu joined #lisp 2018-01-05T19:07:07Z CharlieBrown joined #lisp 2018-01-05T19:08:40Z foom quit (Ping timeout: 252 seconds) 2018-01-05T19:10:21Z vlatkoB quit (Remote host closed the connection) 2018-01-05T19:11:51Z uuplusu quit (Ping timeout: 256 seconds) 2018-01-05T19:16:05Z uuplusu joined #lisp 2018-01-05T19:16:59Z loli quit (Quit: WeeChat 2.0.1) 2018-01-05T19:19:20Z uuplusu_ joined #lisp 2018-01-05T19:19:31Z rme: In a way, I kind of like CL's weird things. It's like the people of Amsterdam who eat herring from the street vendors: it's weird to outsiders, but the locals like it. 2018-01-05T19:20:17Z uuplusu quit (Read error: Connection reset by peer) 2018-01-05T19:20:23Z rme: some of the locals, anyway 2018-01-05T19:25:19Z LocaMocha quit (Ping timeout: 248 seconds) 2018-01-05T19:27:55Z FareTower: rme: I love CL, but I recognize it and its community are dysfunctional in many ways 2018-01-05T19:28:25Z FareTower: autistic, neophobic, quirky 2018-01-05T19:28:58Z FareTower: with lots of baggage 2018-01-05T19:29:22Z FareTower: overall very bad at collaboration 2018-01-05T19:29:59Z FareTower: maybe attracted to lisp precisely because it can do so much with so little collaboration 2018-01-05T19:31:21Z warweasle: FareTower: I would like to rename a few things. Outside of that, I love CL. 2018-01-05T19:32:06Z FareTower: warweasle, renaming for yourself is the easiest of things 2018-01-05T19:32:49Z gravicappa quit (Ping timeout: 248 seconds) 2018-01-05T19:33:23Z arbv quit (Ping timeout: 256 seconds) 2018-01-05T19:33:45Z warweasle: FareTower: I mean things like "true" and "false". print and such. People expect it. 2018-01-05T19:34:12Z Ellusionist joined #lisp 2018-01-05T19:36:58Z nowhere_man joined #lisp 2018-01-05T19:38:19Z FreeBirdLjj joined #lisp 2018-01-05T19:39:36Z papachan quit (Quit: WeeChat 2.0) 2018-01-05T19:40:01Z FareTower: warweasle, can still do 2018-01-05T19:40:27Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-05T19:40:46Z FareTower: though for hacking reader and printer... soon you'll have a lisp-in-cl 2018-01-05T19:43:49Z omilu quit (Read error: Connection reset by peer) 2018-01-05T19:44:49Z rme: I'm trying to look in the mirror to see if I'm autistic, neophobic, and quirky. Maybe I'm a little neophobic, but that's partly because change is inevitable but progress is not. 2018-01-05T19:45:36Z loli joined #lisp 2018-01-05T19:45:40Z papachan joined #lisp 2018-01-05T19:45:41Z mhd quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-05T19:45:41Z mhd quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-05T19:46:16Z FareTower: CLers managed to avoid a lot of change. 2018-01-05T19:46:23Z FareTower: for better and for worse 2018-01-05T19:46:51Z FareTower: lispers like to boast about all the innovation that lisp was about, but do precious little innovation these days 2018-01-05T19:47:09Z smurfrobot quit (Remote host closed the connection) 2018-01-05T19:47:47Z makomo: hearing that sort of stuff makes me a bit sad :^( 2018-01-05T19:48:03Z makomo: and reminds me of that "bipolar disorder lisper" essay 2018-01-05T19:48:13Z _death: makomo: you can safely disregard them 2018-01-05T19:48:57Z makomo: i always wonder whether such a thing could be true. i mean, it's not like any such essays have any data to back up their claims 2018-01-05T19:48:58Z FareTower: lispers also resist the most justified of changes 2018-01-05T19:49:21Z warweasle: FareTower: Well, we just add changes on top of the others. And we make a mud-ball. 2018-01-05T19:49:29Z phoe: isn't lisp a mudball? 2018-01-05T19:49:40Z FareTower: there was a lisp project called mudballs... it died 2018-01-05T19:49:52Z FareTower: a replacement for asdf 1 and 2. 2018-01-05T19:49:54Z rme: I don't like those "lispers are bipolar" or " lispers have asperger's" essays and talks. They are not true and not helpful. 2018-01-05T19:50:05Z makomo: yeah, i think so too 2018-01-05T19:50:40Z FareTower: "know thyself" 2018-01-05T19:50:55Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-05T19:50:59Z tomlukeywood: what is the difference between map and mapcar? 2018-01-05T19:51:05Z _death: apply the socratic dictum to thyself, as well 2018-01-05T19:51:06Z loli: mapcar is for lists only 2018-01-05T19:51:08Z Xach: tomlukeywood: map is more generic. 2018-01-05T19:51:11Z warweasle: rme: I have both. :( 2018-01-05T19:51:19Z loli: map is more general and you can supply the final form 2018-01-05T19:51:42Z loli: has anyone here used LiL (lisp interface library)? 2018-01-05T19:51:51Z tomlukeywood: so you can use map on strings to go through each character etc? 2018-01-05T19:51:56Z loli: yes 2018-01-05T19:51:58Z Xach: tomlukeywood: yes 2018-01-05T19:52:00Z tomlukeywood: ty 2018-01-05T19:53:41Z phoe: to me, Lisp doesn't change, Lisp evolves 2018-01-05T19:53:59Z phoe: and evolution likes to take its time and mistakes 2018-01-05T19:55:13Z loli: how bad of an idea is it to pass a dynamic variable down to do method/function dispatch? Is there another method that will allow me to change what a function means after the fact? 2018-01-05T19:55:50Z Xach: loli: what kind of change did you have in mind? 2018-01-05T19:56:19Z Xach: loli: using special variables for that is pretty common, e.g. *print-case* changes behavior 2018-01-05T19:56:19Z loli: I'm using dynamic variables to be <>, bar, and mempty ie simulating the monoid for my finger tree 2018-01-05T19:56:27Z Ellusionist quit (Ping timeout: 240 seconds) 2018-01-05T19:56:42Z FareTower: loli: "this is not my final form!" 2018-01-05T19:56:54Z loli: FareTower: ??? 2018-01-05T19:57:08Z FareTower: phoe: does Lisp evolve much, these days? 2018-01-05T19:57:29Z FareTower: as the joke goes, it's just as dead as ever, no more, no less 2018-01-05T19:57:37Z loli: I'm using a secondary struct for users to make their own finger tree, the issue is that with the lazy eval,I have to overload every function for the correct values to be gotten 2018-01-05T19:57:44Z jmercouris: rme: +1 those essays are bullshit, most likely not even written by lisp developers 2018-01-05T19:58:00Z loli: I have to overload my generated getters which is rather annoying 2018-01-05T19:58:06Z FareTower: phoe: weren't you re-digitizing a new CLHS rival from the dpANS spec? 2018-01-05T19:58:46Z phoe: FareTower: I was, and am. Currently on hiatus because of real life taking up most of my real life CPU time. 2018-01-05T19:58:50Z jmercouris: FareTower: It's in progress, when it is done, it will be done (temporarily on hold) 2018-01-05T19:59:38Z phoe: FareTower: it evolves on its own pace. It's a slow pace, but then again, things are not done unless someone does them, and Lisp does not have many* people who have the will, energy and time to do them. 2018-01-05T19:59:47Z phoe: *relatively, compared to some other programming languages 2018-01-05T20:00:36Z FareTower: phoe: I can sympathize with that. 2018-01-05T20:00:51Z FareTower: phoe: maybe you can find a way to crowdsource this effort? 2018-01-05T20:01:17Z FareTower: a lot of CL hackers could each put 2 days proof-reading / annotating / whatever a small part of the the CLHS 2018-01-05T20:01:22Z phoe: FareTower: I was complaining about exactly this thing a day ago perhaps, you can search the #lisp logs. 2018-01-05T20:01:26Z FareTower: or however you call this successor 2018-01-05T20:01:46Z phoe: Yes, I terribly need to crowdsource that. 2018-01-05T20:02:04Z phoe: And I'll do this as soon as I deal with my real life, which might take me two months. 2018-01-05T20:02:07Z nowhere_man quit (Ping timeout: 248 seconds) 2018-01-05T20:02:19Z FareTower: I've met people who explained that they learned PHP because it had a great community and great documentation. These can do wonders even for a shitty language. 2018-01-05T20:02:20Z phoe: But then, heh, I've been neglecting my RL for way too long. 2018-01-05T20:02:27Z phoe: (incf FareTower) 2018-01-05T20:02:28Z FareTower: lowering the barrier to entry 2018-01-05T20:02:33Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-05T20:02:37Z phoe: yes, very much. 2018-01-05T20:02:58Z FareTower: The greatest lowering of barrier to entry in the CL world was probably Quicklisp 2018-01-05T20:03:01Z phoe: the CL cookbook has a lot of fresh and awesome content, when it comes to *new* documentation 2018-01-05T20:03:07Z phoe: I mean the *new* cookbook 2018-01-05T20:03:10Z FareTower: (Thanks, Xach) 2018-01-05T20:03:13Z aristippus quit (Ping timeout: 248 seconds) 2018-01-05T20:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-05T20:03:32Z FareTower: what new cookbook? 2018-01-05T20:03:39Z phoe: https://lispcookbook.github.io/cl-cookbook/ 2018-01-05T20:04:24Z nowhere_man joined #lisp 2018-01-05T20:05:12Z damke joined #lisp 2018-01-05T20:05:28Z phoe: Things like https://lispcookbook.github.io/cl-cookbook/error_handling.html are all fresh stuff. 2018-01-05T20:05:31Z phoe: Crowdsourced, as you call it. 2018-01-05T20:06:15Z troydm joined #lisp 2018-01-05T20:06:52Z phoe: Its new chapters have been posted on /r/lisp for a longer while now 2018-01-05T20:07:56Z tomlukeywood left #lisp 2018-01-05T20:08:47Z makomo: FareTower: i saw that post of yours where you mentioned that (a mailing list, i forgot which one) 2018-01-05T20:09:27Z tlaxkit quit (Ping timeout: 240 seconds) 2018-01-05T20:09:30Z makomo: i wonder if that's real or just anecdotal evidence 2018-01-05T20:09:50Z makomo: god damn it, if only we had actual, proper statistical data for this kind of stuff 2018-01-05T20:09:56Z makomo: it's always just speculation/stories 2018-01-05T20:10:33Z aristippus joined #lisp 2018-01-05T20:10:49Z FareTower: makomo, mentioned what? 2018-01-05T20:10:53Z makomo: the PHP thing 2018-01-05T20:11:17Z FareTower: oh 2018-01-05T20:12:17Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-05T20:12:24Z FreeBirdLjj joined #lisp 2018-01-05T20:13:27Z attila_lendvai joined #lisp 2018-01-05T20:14:20Z phoe: FareTower: I really want to finish my Lisp documentation project and make it go live despite all the delays, especially since "every year there's a new kid in the block who wants to curate CL libraries. So far, Xach is an exception in actually doing it and sticking to it year after year." 2018-01-05T20:14:41Z phoe: which is pretty true, and has both upsides and downsides. 2018-01-05T20:14:44Z raynold joined #lisp 2018-01-05T20:14:44Z phoe brb for RL 2018-01-05T20:17:26Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-05T20:18:12Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-05T20:19:11Z milanj quit (Quit: This computer has gone to sleep) 2018-01-05T20:23:52Z drewc_ joined #lisp 2018-01-05T20:25:37Z gigetoo quit (Ping timeout: 248 seconds) 2018-01-05T20:26:24Z gigetoo joined #lisp 2018-01-05T20:27:35Z uuplusu_ quit (Quit: Leaving...) 2018-01-05T20:27:47Z drewc quit (Ping timeout: 256 seconds) 2018-01-05T20:35:56Z phoe back 2018-01-05T20:36:23Z phoe: upsides: there's obviously energy and will to be spent, because if people have the energy to constructively complain, then they have the energy to make things better 2018-01-05T20:36:53Z phoe: downsides: it's trivial to let people down in this scenario since if there's nothing they can attach their frustrations and wishes for a better state of things to, they'll just leave 2018-01-05T20:37:27Z phoe: but heh, this thing has been discussed 9001 times before, half of which happened on #lisp 2018-01-05T20:39:42Z kajo quit (Remote host closed the connection) 2018-01-05T20:40:05Z FareTower: phoe: I spent all my non-mercenary CL energy. But I want to leave the place in a better state than I found it, so I'm probably gonna stick until ASDF 3.3.2 is released that fixes the regressions with 3.3.1 2018-01-05T20:40:27Z kajo joined #lisp 2018-01-05T20:42:41Z phoe: FareTower: no doubt you spent it, you did a ton of work related to ASDF. 2018-01-05T20:45:27Z random-nick quit (Ping timeout: 240 seconds) 2018-01-05T20:47:40Z smurfrobot joined #lisp 2018-01-05T20:48:01Z FareTower: most people don't seem to notice... hard to tell whether it's success (seamless experience) or failure (no one cares) 2018-01-05T20:48:49Z phoe: I'll tell you a small tale that comes from my own ignorance and experience. 2018-01-05T20:49:36Z phoe: I never realized how important it is to value people's work until I finally noticed how God damn hard, annoying and exhausting it is to ship working, polished software, as compared to happy hacking. 2018-01-05T20:50:53Z phoe: Which came with some experience. I had to learn this, valuing people's work, and I had to learn it by hours of bugfixing, coding, listening to people's requests, complaints, whines, praises and weird stuff I'd rather not mention here. 2018-01-05T20:50:53Z dlowe: yeah, shipping is way harder than many think. 2018-01-05T20:51:27Z phoe: so, huh, it might sound pretty weird, but I stopped really expecting "normal bread-eaters" to notice how much work it takes to deliver something that works as expected. 2018-01-05T20:51:42Z phoe: they usually go "ooooh, shinyyy, it makes vrroooom, vrrrooooom soundssss :o" 2018-01-05T20:51:50Z kajo quit (Ping timeout: 265 seconds) 2018-01-05T20:52:00Z pierpa_ joined #lisp 2018-01-05T20:52:13Z phoe: well, a part of my work is that it makes vroom vrrrroooooom sounds. but also that it doesn't explode in all the various configurations for this person, other people, or other circumstances. 2018-01-05T20:52:46Z phoe: this, and also how much time it takes to bugfix stuff as compared to implementing new features. this ratio only goes higher and higher over time, too. 2018-01-05T20:53:11Z warweasle quit (Quit: Biggly.) 2018-01-05T20:54:11Z phoe: so it's pretty damn weird, but, "most people don't seem to notice... hard to tell whether it's success (seamless experience) or failure (no one cares)" - I'd agree with most of it except the last part 2018-01-05T20:54:26Z phoe: people tend to care, they just rarely have any idea of how the whole process looks like 2018-01-05T20:54:53Z phoe: even if they understand basic programming, they think that software developers are doing programming, where they are actually doing software development 2018-01-05T20:55:10Z phoe: and sometimes I wish software development included programming 2018-01-05T20:55:18Z phoe: 2018-01-05T20:55:22Z phoe: okay, more RL stuff now 2018-01-05T20:55:33Z groovy2shoes joined #lisp 2018-01-05T20:55:41Z attila_lendvai joined #lisp 2018-01-05T21:00:16Z gtuser quit (Remote host closed the connection) 2018-01-05T21:02:11Z Karl_Dscc joined #lisp 2018-01-05T21:02:17Z groovy2shoes quit (Quit: moritura te saluto) 2018-01-05T21:04:13Z kajo joined #lisp 2018-01-05T21:04:48Z Xof joined #lisp 2018-01-05T21:06:20Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-05T21:08:02Z groovy2shoes joined #lisp 2018-01-05T21:13:19Z damke_ joined #lisp 2018-01-05T21:14:12Z dddddd quit (Remote host closed the connection) 2018-01-05T21:15:21Z damke quit (Ping timeout: 265 seconds) 2018-01-05T21:17:31Z scymtym quit (Ping timeout: 240 seconds) 2018-01-05T21:28:40Z Ellusionist joined #lisp 2018-01-05T21:31:49Z sigjuice quit (Ping timeout: 256 seconds) 2018-01-05T21:32:56Z shka quit (Ping timeout: 252 seconds) 2018-01-05T21:33:00Z versatile is now known as Murii 2018-01-05T21:33:06Z sigjuice joined #lisp 2018-01-05T21:34:01Z papachan quit (Quit: Saliendo) 2018-01-05T21:34:34Z Kyo91 quit (Remote host closed the connection) 2018-01-05T21:37:33Z Kyo91 joined #lisp 2018-01-05T21:38:23Z megalography joined #lisp 2018-01-05T21:42:56Z jmercouris: phoe: I think unless a developer has released a product themselves, they do not know this, as part of a company you are shielded from this by sales people, and other customer facing individuals (support etc) 2018-01-05T21:43:35Z jmercouris: phoe: That is also why I am hesitant to call myself a programmer, I don't merely program, that is just one step 2018-01-05T21:44:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-05T21:44:58Z phoe: jmercouris: by my personal nomenclature, I think it's fine to call yourself a programmer right now. I make a distinction between programming and software development. 2018-01-05T21:45:35Z phoe: it's like, similar kind of difference like between having sex and being a parent inside a healthy family. 2018-01-05T21:45:38Z jmercouris: This is of course fine if you are *just* a programmer, but if you are developing software, then you are a software developer 2018-01-05T21:45:57Z phoe: like, the former is still a part of the latter, but you also get a ton of other work that is semi- and unrelated to programming. 2018-01-05T21:46:22Z jmercouris: Would a laywer call themselves a paper reader? 2018-01-05T21:46:45Z jmercouris: most of the time they are reading papers, no? 2018-01-05T21:46:47Z phoe: and one day you can just wake up and there's shit in the middle of the carpet. nobody knows how it happened, nobody knows when it happened, there's just blank stares and avoidant gazes, and all you know is that it's your responsibility to clean it up before guests arrive at eleven o'clock. 2018-01-05T21:47:00Z phoe: gah, I just realized it's a #lispcafe discussion. 2018-01-05T21:47:30Z phoe heads there 2018-01-05T21:47:41Z orivej joined #lisp 2018-01-05T21:48:12Z manualcrank joined #lisp 2018-01-05T21:50:23Z pchrist quit (Quit: leaving) 2018-01-05T21:51:07Z pchrist joined #lisp 2018-01-05T21:52:32Z jmercouris: I see in lisp manuals a lot of the time syntax that appears at top of pages like this: https://common-lisp.net/project/cffi/manual/html_node/defcfun.html 2018-01-05T21:52:40Z jmercouris: ::=, | etc 2018-01-05T21:52:40Z Colleen: Unknown command. Possible matches: 8, set, say, mop, get, time, tell, roll, help, deny, 2018-01-05T21:52:54Z random-nick joined #lisp 2018-01-05T21:52:57Z jmercouris: is there a list of these symbol meanings? some of them are obvious 2018-01-05T21:53:04Z jmercouris: I assume | is probably or, ::= is assignment 2018-01-05T21:53:15Z jmercouris: but what does {}* mean? 2018-01-05T21:53:22Z shifty joined #lisp 2018-01-05T21:53:25Z beach: It is called BNF Bacchus Naur Form 2018-01-05T21:53:37Z aeth: https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form 2018-01-05T21:53:37Z minion: aeth, memo from pillton: That bug is now fixed in master. 2018-01-05T21:53:47Z aeth: pillton: thanks 2018-01-05T21:54:30Z eSVG joined #lisp 2018-01-05T21:54:39Z aeth: jmercouris: Unfortunately, there isn't one BNF 2018-01-05T21:54:57Z jmercouris: That's too bad, the symbols did look really familiar though :D 2018-01-05T21:55:00Z Cymew joined #lisp 2018-01-05T21:55:01Z aeth: The Wikipedia article I linked to gives two extended forms in its intro, EBNF and ABNF 2018-01-05T21:55:15Z jmercouris: I had seen them before when working with yacc 2018-01-05T21:55:28Z aeth: yes 2018-01-05T21:55:32Z Xach: jmercouris: http://l1sp.org/cl/1.4.1.2 discusses the modifications for the spec 2018-01-05T21:56:55Z jmercouris: Ok, thanks for the resources, time to try to learn it properly 2018-01-05T21:57:00Z orivej quit (Ping timeout: 260 seconds) 2018-01-05T21:57:10Z aeth: yacc uses yet another BNF, or at least really close to it 2018-01-05T21:57:32Z aeth: Wikipedia says "a notation similar to Backus–Naur Form (BNF)" 2018-01-05T21:57:46Z scymtym joined #lisp 2018-01-05T21:57:58Z orivej joined #lisp 2018-01-05T21:58:38Z aeth: (really, they missed an opportunity to literally call it "yet another BNF" because the program's "yet another compiler-compiler") 2018-01-05T21:58:45Z beach: I apologize to John Backus for spelling his name like the Roman version of Dionysus. 2018-01-05T21:59:25Z jmercouris: He won't be reading this log I think :D 2018-01-05T21:59:27Z Cymew quit (Ping timeout: 240 seconds) 2018-01-05T21:59:49Z beach: Whew! 2018-01-05T22:01:20Z fluke`` quit (Read error: Connection reset by peer) 2018-01-05T22:02:10Z benny quit (Ping timeout: 264 seconds) 2018-01-05T22:03:38Z FareTower: beach: he might be flattered 2018-01-05T22:07:03Z rumbler31: "thats funny, I was having a glass of wine when I thought this up" 2018-01-05T22:07:15Z jmercouris: I was saying because he is not alive anymore 2018-01-05T22:07:43Z jmercouris: Anyways, I have the following cffi binding I am trying to get to work, can someone please take a look and see if I made a mistake? It is very short, just 3 forms: https://gist.github.com/acb34aef9e4d784933fe5c593001e3dd 2018-01-05T22:08:13Z jmercouris: I've included the original C documentation at the top 2018-01-05T22:08:45Z rme: I only know one person who drinks wine while programming. I don't know how he does it. 2018-01-05T22:10:31Z rumbler31: Thats easy! Just one glass at a time 2018-01-05T22:10:53Z fikka joined #lisp 2018-01-05T22:15:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-05T22:15:49Z openthesky joined #lisp 2018-01-05T22:16:43Z FareTower: rme: you make me thirsty! 2018-01-05T22:16:58Z FareTower: rme: I hope he drinks *red* wine. 2018-01-05T22:17:27Z Murii quit (Quit: WeeChat 1.4) 2018-01-05T22:23:31Z rme: of course he does 2018-01-05T22:23:37Z smurfrobot quit (Remote host closed the connection) 2018-01-05T22:23:49Z smurfrobot joined #lisp 2018-01-05T22:23:50Z benny joined #lisp 2018-01-05T22:25:27Z fikka joined #lisp 2018-01-05T22:26:14Z osune joined #lisp 2018-01-05T22:27:11Z Ellusionist quit (Ping timeout: 248 seconds) 2018-01-05T22:35:37Z MrBismuth joined #lisp 2018-01-05T22:36:14Z fikka quit (Ping timeout: 265 seconds) 2018-01-05T22:36:35Z Tobbi quit (Remote host closed the connection) 2018-01-05T22:36:51Z Tobbi joined #lisp 2018-01-05T22:39:08Z MrBusiness quit (Ping timeout: 265 seconds) 2018-01-05T22:39:11Z FareTower: I like to do that, too, but I hate to drink alone at which point I drink too slow for the wine bottle not to get bad before I finish it. 2018-01-05T22:40:21Z Folkol joined #lisp 2018-01-05T22:41:14Z wxie joined #lisp 2018-01-05T22:50:29Z arbv joined #lisp 2018-01-05T22:51:05Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-05T22:53:22Z jfb4 joined #lisp 2018-01-05T22:55:27Z marcux quit (Ping timeout: 240 seconds) 2018-01-05T22:57:46Z fikka joined #lisp 2018-01-05T22:59:17Z makomo quit (Ping timeout: 252 seconds) 2018-01-05T23:02:01Z fluke` joined #lisp 2018-01-05T23:02:08Z fluke` quit (Read error: Connection reset by peer) 2018-01-05T23:03:00Z damke joined #lisp 2018-01-05T23:05:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-05T23:06:51Z LiamH quit (Quit: Leaving.) 2018-01-05T23:09:50Z wxie quit (Remote host closed the connection) 2018-01-05T23:10:40Z josemanuel quit (Quit: leaving) 2018-01-05T23:23:20Z rumbler31 quit (Ping timeout: 260 seconds) 2018-01-05T23:35:30Z random-nick quit (Remote host closed the connection) 2018-01-05T23:38:08Z jstypo quit (Ping timeout: 248 seconds) 2018-01-05T23:38:53Z throwprans|prans joined #lisp 2018-01-05T23:42:35Z openthesky quit (Ping timeout: 240 seconds) 2018-01-05T23:44:45Z erikc joined #lisp 2018-01-05T23:45:21Z knobo quit (Ping timeout: 264 seconds) 2018-01-05T23:51:50Z jstypo joined #lisp 2018-01-05T23:56:26Z Fare quit (Quit: Leaving) 2018-01-05T23:57:37Z throwprans|prans: Why do I need VECTOR-PUSH-EXTEND and couldn't just VECTOR-PUSH deal with it? 2018-01-05T23:58:23Z mishoo_ quit (Ping timeout: 248 seconds) 2018-01-06T00:00:03Z Tobbi quit (Remote host closed the connection) 2018-01-06T00:00:39Z White_Flame: yeah, VECTOR-PUSH might have had a number of keyword parameters to do stuff like that, but many of the simpler or lower level standard functions are pretty specific in their use 2018-01-06T00:00:54Z White_Flame: perhaps to keep them fast back in the day 2018-01-06T00:07:27Z varjagg quit (Ping timeout: 240 seconds) 2018-01-06T00:08:08Z throwprans|prans: White_Flame: I see, thanks. 2018-01-06T00:11:24Z dxtr quit (Quit: Lost terminal) 2018-01-06T00:12:16Z openthesky joined #lisp 2018-01-06T00:16:14Z mgsk: What's the appropriate method of removing a sublist from a list? i.e. `(remove '(1 2 3) '((1 2 3) (4 5 6)))` => ((4 5 6)) 2018-01-06T00:17:34Z throwprans|prans: mgsk: (remove '(1 2 3) '((1 2 3) (4 5 6)) :test #'equal) 2018-01-06T00:17:36Z White_Flame: add :test #'equal 2018-01-06T00:17:44Z throwprans|prans: Beat you to it ;) 2018-01-06T00:17:52Z mgsk should've read the doc more carefully 2018-01-06T00:17:54Z mgsk: cheers 2018-01-06T00:17:55Z White_Flame: I think the test by default is just #'eql 2018-01-06T00:18:06Z White_Flame: (throwprans|prans I eplained more ;)) 2018-01-06T00:18:13Z White_Flame: *explained 2018-01-06T00:18:15Z pfdietz: That is correct in almost all cases in Common Lisp. 2018-01-06T00:19:44Z throwprans|prans: The spec is silent about it. 2018-01-06T00:19:46Z throwprans|prans: huh! 2018-01-06T00:19:50Z throwprans|prans: http://clhs.lisp.se/Body/f_rm_rm.htm#remove 2018-01-06T00:20:23Z White_Flame: no, one of the general information sections says that tests on sequences default to #'eql or something 2018-01-06T00:20:44Z throwprans|prans: That makes sense. 2018-01-06T00:21:43Z throwprans|prans: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node141.html and elements are tested for being eql to that item. (A test other than eql can be specified by the :test or :test-not keyword. 2018-01-06T00:21:56Z throwprans|prans: I think that is the one you were referring to? 2018-01-06T00:22:34Z fluke` joined #lisp 2018-01-06T00:24:10Z pfdietz: Also, look up "Same" in the glossary. 2018-01-06T00:24:48Z pfdietz: "Since eq is used only rarely in this specification, eql is the default predicate when none is mentioned explicitly." 2018-01-06T00:26:28Z krwq joined #lisp 2018-01-06T00:33:27Z varjagg joined #lisp 2018-01-06T00:34:45Z lroca joined #lisp 2018-01-06T00:37:06Z nowhere_man quit (Remote host closed the connection) 2018-01-06T00:37:28Z nowhere_man joined #lisp 2018-01-06T00:38:45Z varjagg quit (Ping timeout: 264 seconds) 2018-01-06T00:43:43Z FareTower quit (Ping timeout: 248 seconds) 2018-01-06T00:46:40Z nirved quit (Quit: Leaving) 2018-01-06T00:50:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T00:51:57Z openthesky quit (Ping timeout: 264 seconds) 2018-01-06T00:52:05Z markong quit (Ping timeout: 240 seconds) 2018-01-06T00:53:07Z qjube quit (Quit: qjube) 2018-01-06T00:54:25Z dddddd joined #lisp 2018-01-06T00:57:32Z pierpa_ quit (Quit: Page closed) 2018-01-06T00:58:29Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-01-06T00:59:34Z orivej joined #lisp 2018-01-06T01:01:43Z _death: EQ is used only for GETF and friends 2018-01-06T01:05:31Z pfdietz: It's also used in CATCH and THROW. 2018-01-06T01:06:32Z _death: right 2018-01-06T01:06:39Z drewc_ quit (Ping timeout: 248 seconds) 2018-01-06T01:11:04Z throwprans|prans quit (Ping timeout: 260 seconds) 2018-01-06T01:11:39Z Folkol quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-06T01:13:00Z Folkol joined #lisp 2018-01-06T01:15:49Z Oladon joined #lisp 2018-01-06T01:18:40Z drewc_ joined #lisp 2018-01-06T01:21:16Z eviltofu joined #lisp 2018-01-06T01:21:37Z eviltofu: Hello! Are there any coding conventions for lisp? 2018-01-06T01:22:55Z mukuge joined #lisp 2018-01-06T01:23:22Z mukuge: Hi. Can I ask a beginner question here? 2018-01-06T01:24:33Z eviltofu: Should I name functions (potato->make-fries)? 2018-01-06T01:27:06Z rme: eviltofu: you can read https://google.github.io/styleguide/lispguide.xml for some ideas 2018-01-06T01:27:48Z rme: I'm not a fan of the foo->bar kind of names myself, but I've seen people use it. 2018-01-06T01:29:04Z rme: mukuge: ask away 2018-01-06T01:29:15Z White_Flame: mukuge: there's #clnoobs, which could be more appropriate. There's a LOT of specifics generally discussed here 2018-01-06T01:30:07Z White_Flame: eviltofu: if you have potato->make-fries vs yam->make-fries or whatever, it would make sense to have (defmethod make-fries (...) ...) and dispatch on the type of parameter 2018-01-06T01:30:19Z mukuge: Thanks rme and white_Flame. I'll ask my question at #clnoobs this time. 2018-01-06T01:31:22Z mukuge left #lisp 2018-01-06T01:34:48Z eviltofu quit (Quit: eviltofu) 2018-01-06T01:41:11Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-06T01:46:50Z philosaur quit (Quit: philosaur) 2018-01-06T01:47:20Z philosaur joined #lisp 2018-01-06T02:01:51Z osune` joined #lisp 2018-01-06T02:06:00Z osune quit (Ping timeout: 265 seconds) 2018-01-06T02:06:51Z d4ryus2 joined #lisp 2018-01-06T02:07:04Z ykoda joined #lisp 2018-01-06T02:10:03Z d4ryus1 quit (Ping timeout: 256 seconds) 2018-01-06T02:12:20Z orivej quit (Ping timeout: 252 seconds) 2018-01-06T02:12:45Z orivej joined #lisp 2018-01-06T02:14:34Z internet_cafe quit (Quit: ...) 2018-01-06T02:17:37Z fikka joined #lisp 2018-01-06T02:18:44Z MrBusiness3 joined #lisp 2018-01-06T02:19:11Z jpx__ joined #lisp 2018-01-06T02:19:21Z asedeno_ joined #lisp 2018-01-06T02:19:38Z tfb_ joined #lisp 2018-01-06T02:19:47Z kilimanjaro_ joined #lisp 2018-01-06T02:21:47Z ryanbw joined #lisp 2018-01-06T02:22:00Z theBlack1ragon joined #lisp 2018-01-06T02:22:15Z ykoda_ joined #lisp 2018-01-06T02:22:25Z ykoda_ quit (Remote host closed the connection) 2018-01-06T02:22:25Z fikka quit (Ping timeout: 260 seconds) 2018-01-06T02:23:50Z greaser|q joined #lisp 2018-01-06T02:24:20Z zotan_ joined #lisp 2018-01-06T02:25:33Z jdz_ joined #lisp 2018-01-06T02:25:40Z malm quit (Killed (tolkien.freenode.net (Nickname regained by services))) 2018-01-06T02:25:43Z malm joined #lisp 2018-01-06T02:25:50Z guna_ joined #lisp 2018-01-06T02:26:47Z ykoda quit (*.net *.split) 2018-01-06T02:26:47Z MrBismuth quit (*.net *.split) 2018-01-06T02:26:47Z jpxe quit (*.net *.split) 2018-01-06T02:26:47Z zotan quit (*.net *.split) 2018-01-06T02:26:47Z theBlackDragon quit (*.net *.split) 2018-01-06T02:26:47Z jdz quit (*.net *.split) 2018-01-06T02:26:47Z _whitelogger quit (*.net *.split) 2018-01-06T02:26:47Z zymurgy quit (*.net *.split) 2018-01-06T02:26:48Z Riviera- quit (*.net *.split) 2018-01-06T02:26:48Z guna quit (*.net *.split) 2018-01-06T02:26:48Z asedeno quit (*.net *.split) 2018-01-06T02:26:48Z kilimanjaro quit (*.net *.split) 2018-01-06T02:26:48Z tfb quit (*.net *.split) 2018-01-06T02:26:48Z larme quit (*.net *.split) 2018-01-06T02:26:48Z itruslove quit (*.net *.split) 2018-01-06T02:26:48Z arrsim quit (*.net *.split) 2018-01-06T02:26:48Z GreaseMonkey quit (*.net *.split) 2018-01-06T02:26:48Z creat quit (*.net *.split) 2018-01-06T02:26:52Z arrsim_ joined #lisp 2018-01-06T02:26:58Z tfb_ is now known as tfb 2018-01-06T02:26:59Z asedeno_ is now known as asedeno 2018-01-06T02:27:02Z kilimanjaro_ is now known as kilimanjaro 2018-01-06T02:27:04Z arrsim_ is now known as arrsim 2018-01-06T02:27:19Z theBlack1ragon is now known as theBlackDragon 2018-01-06T02:27:52Z creat joined #lisp 2018-01-06T02:28:10Z _whitelogger_ joined #lisp 2018-01-06T02:29:57Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-06T02:30:27Z leo_song quit (Ping timeout: 240 seconds) 2018-01-06T02:31:28Z leo_song joined #lisp 2018-01-06T02:32:30Z Riviera- joined #lisp 2018-01-06T02:34:05Z larme joined #lisp 2018-01-06T02:34:56Z zymurgy joined #lisp 2018-01-06T02:35:07Z itruslove joined #lisp 2018-01-06T02:44:52Z lroca quit (Quit: lroca) 2018-01-06T02:46:46Z aeth: White_Flame: You don't dispatch on type with defmethod. There's a difference between class and type. This is mostly noticable when you try to do something with an array. 2018-01-06T02:47:19Z White_Flame: yes, correct. I hop between too many languages :-P 2018-01-06T02:47:57Z aeth: (And there is at least one library that lets you dispatch on types.) 2018-01-06T02:55:01Z marusich quit (Quit: Leaving) 2018-01-06T02:56:45Z broccolistem quit (Ping timeout: 264 seconds) 2018-01-06T02:58:55Z osune`` joined #lisp 2018-01-06T03:00:38Z damke_ joined #lisp 2018-01-06T03:00:44Z marusich joined #lisp 2018-01-06T03:02:55Z osune` quit (Ping timeout: 248 seconds) 2018-01-06T03:02:56Z osune`` quit (Read error: Connection reset by peer) 2018-01-06T03:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-06T03:11:09Z ahungry joined #lisp 2018-01-06T03:12:02Z fikka joined #lisp 2018-01-06T03:15:04Z nika joined #lisp 2018-01-06T03:15:50Z erikc quit 2018-01-06T03:17:03Z fikka quit (Ping timeout: 265 seconds) 2018-01-06T03:22:47Z openthesky joined #lisp 2018-01-06T03:22:48Z openthesky quit (Changing host) 2018-01-06T03:22:48Z openthesky joined #lisp 2018-01-06T03:25:54Z Karl_Dscc quit (Remote host closed the connection) 2018-01-06T03:26:26Z turkja joined #lisp 2018-01-06T03:30:10Z broccolistem joined #lisp 2018-01-06T03:32:29Z jarwin joined #lisp 2018-01-06T03:35:54Z patche joined #lisp 2018-01-06T03:35:55Z jarwin is now known as Jarwin 2018-01-06T03:35:58Z jcowan joined #lisp 2018-01-06T03:36:26Z jcowan: does anyone have a sense of the relative speed of chez and sbcl? 2018-01-06T03:37:30Z aeth: jcowan: SBCL is in the language benchmark game (roughly around the speed of Java there) so if someone who knows how to write Chez well wants to, that might give some data 2018-01-06T03:37:43Z jcowan: ta 2018-01-06T03:38:40Z greaser|q quit (Changing host) 2018-01-06T03:38:40Z greaser|q joined #lisp 2018-01-06T03:38:40Z aeth: I think Racket's the only Scheme there (well, Racket is only sort of Scheme) 2018-01-06T03:39:00Z greaser|q is now known as GreaseMonkey 2018-01-06T03:39:46Z jcowan nods 2018-01-06T03:40:23Z aeth: https://benchmarksgame.alioth.debian.org/ 2018-01-06T03:40:47Z jcowan: I am wondering if it is worth porting shen to chez 2018-01-06T03:43:45Z jcowan: there is a port to Scheme, but it only works on chibi and gauche, which are Scheme bytecode interpreters without JIT 2018-01-06T03:49:28Z beach: Good morning everyone! 2018-01-06T03:49:58Z patche is now known as sebbot 2018-01-06T03:50:08Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-06T03:53:41Z beach: jcowan: Maybe people in #scheme have an opinion. 2018-01-06T03:54:05Z jcowan: asked in #chez, nobody knows there right now 2018-01-06T03:55:10Z openthesky quit (Ping timeout: 260 seconds) 2018-01-06T03:56:21Z quazimodo joined #lisp 2018-01-06T03:57:19Z openthesky joined #lisp 2018-01-06T04:03:16Z FreeBirdLjj joined #lisp 2018-01-06T04:06:43Z samsungtv quit 2018-01-06T04:11:12Z dtornabene joined #lisp 2018-01-06T04:12:10Z orivej_ joined #lisp 2018-01-06T04:12:16Z orivej quit (Ping timeout: 268 seconds) 2018-01-06T04:26:08Z cyraxjoe quit (Remote host closed the connection) 2018-01-06T04:26:09Z Jarwin quit (Ping timeout: 264 seconds) 2018-01-06T04:27:57Z marusich quit (Ping timeout: 264 seconds) 2018-01-06T04:29:47Z marusich joined #lisp 2018-01-06T04:35:50Z marusich quit (Ping timeout: 265 seconds) 2018-01-06T04:36:59Z marusich joined #lisp 2018-01-06T04:40:11Z loli quit (Read error: Connection reset by peer) 2018-01-06T04:40:20Z loli joined #lisp 2018-01-06T04:42:09Z scymtym quit (Ping timeout: 248 seconds) 2018-01-06T04:47:01Z schoppenhauer quit (Ping timeout: 256 seconds) 2018-01-06T04:48:56Z schoppenhauer joined #lisp 2018-01-06T04:53:01Z brendyn joined #lisp 2018-01-06T04:59:54Z fikka joined #lisp 2018-01-06T05:00:03Z aanand` quit (Ping timeout: 256 seconds) 2018-01-06T05:02:54Z openthesky quit (Ping timeout: 265 seconds) 2018-01-06T05:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T05:04:01Z openthesky joined #lisp 2018-01-06T05:04:02Z openthesky quit (Changing host) 2018-01-06T05:04:02Z openthesky joined #lisp 2018-01-06T05:04:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T05:05:54Z damke_ joined #lisp 2018-01-06T05:10:25Z aristippus quit (Ping timeout: 260 seconds) 2018-01-06T05:12:44Z gravicappa joined #lisp 2018-01-06T05:17:20Z aristippus joined #lisp 2018-01-06T05:22:37Z asarch quit (Quit: Leaving) 2018-01-06T05:22:59Z prometheus_falli quit (Remote host closed the connection) 2018-01-06T05:23:09Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-06T05:23:34Z prometheus_falli joined #lisp 2018-01-06T05:23:46Z FreeBirdLjj joined #lisp 2018-01-06T05:24:11Z ahungry quit (Remote host closed the connection) 2018-01-06T05:27:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-06T05:33:10Z openthesky quit (Ping timeout: 260 seconds) 2018-01-06T05:36:57Z FreeBirdLjj joined #lisp 2018-01-06T05:40:45Z sebbot quit (Ping timeout: 260 seconds) 2018-01-06T05:42:55Z jcowan quit (Ping timeout: 268 seconds) 2018-01-06T05:43:57Z orivej_ quit (Ping timeout: 240 seconds) 2018-01-06T05:46:00Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-06T05:46:45Z Oladon quit (Quit: Leaving.) 2018-01-06T05:46:59Z patche joined #lisp 2018-01-06T05:47:00Z patche is now known as sebbot 2018-01-06T05:51:34Z aristipp1s joined #lisp 2018-01-06T05:54:27Z aristippus quit (Ping timeout: 240 seconds) 2018-01-06T06:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T06:04:30Z jcowan joined #lisp 2018-01-06T06:04:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-06T06:05:14Z damke_ joined #lisp 2018-01-06T06:07:04Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-06T06:08:05Z orivej joined #lisp 2018-01-06T06:08:49Z dddddd quit (Ping timeout: 268 seconds) 2018-01-06T06:09:25Z rippa joined #lisp 2018-01-06T06:09:39Z panji joined #lisp 2018-01-06T06:12:34Z quazimodo joined #lisp 2018-01-06T06:16:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-06T06:18:35Z orivej quit (Ping timeout: 240 seconds) 2018-01-06T06:20:16Z LocaMocha joined #lisp 2018-01-06T06:27:44Z orivej joined #lisp 2018-01-06T06:28:04Z neuri8 joined #lisp 2018-01-06T06:30:15Z neuri8 quit (Client Quit) 2018-01-06T06:33:44Z neuri8 joined #lisp 2018-01-06T06:36:11Z ahungry joined #lisp 2018-01-06T06:36:29Z neuri8 quit (Client Quit) 2018-01-06T06:43:43Z neuri8 joined #lisp 2018-01-06T06:44:35Z jcowan quit (Ping timeout: 268 seconds) 2018-01-06T06:45:50Z jcowan joined #lisp 2018-01-06T06:48:09Z fikka joined #lisp 2018-01-06T06:52:22Z Bike quit (Quit: Lost terminal) 2018-01-06T06:52:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-06T06:53:17Z neuri8 quit (Quit: L) 2018-01-06T06:55:55Z attila_lendvai joined #lisp 2018-01-06T06:57:54Z neuri8 joined #lisp 2018-01-06T07:10:24Z knobo joined #lisp 2018-01-06T07:14:52Z panji left #lisp 2018-01-06T07:19:33Z orivej quit (Ping timeout: 264 seconds) 2018-01-06T07:23:32Z FreeBirdLjj joined #lisp 2018-01-06T07:25:01Z orivej joined #lisp 2018-01-06T07:28:50Z attila_lendvai quit (Quit: Leaving.) 2018-01-06T07:33:02Z _whitelogger_ quit (Remote host closed the connection) 2018-01-06T07:35:14Z _whitelogger joined #lisp 2018-01-06T07:36:31Z orivej quit (Ping timeout: 248 seconds) 2018-01-06T07:39:51Z eviltofu joined #lisp 2018-01-06T07:40:12Z eviltofu: oh there’s a noob channel? 2018-01-06T07:40:19Z eviltofu: This noob is moving over. 2018-01-06T07:40:28Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-06T07:40:47Z FreeBirdLjj joined #lisp 2018-01-06T07:42:08Z ahungry quit (Remote host closed the connection) 2018-01-06T07:42:34Z fikka joined #lisp 2018-01-06T07:42:38Z eviltofu: The reason I asked is because I have several CLOS classes which I use HAS-xxx to describe them. Has-identity, Has-tags, Has-connections, etc. Then I use composition. So sometimes it gets a bit confusing to use has-identity-identity for accessing a slot. 2018-01-06T07:43:08Z eviltofu: I’ll go read the guide now 2018-01-06T07:43:38Z beach: I think that's an obsolete convention... 2018-01-06T07:43:50Z beach: i.e. to prefix the slot accessor with the name of the class. 2018-01-06T07:44:10Z eviltofu: What is the current convention? 2018-01-06T07:44:26Z beach: It looks really strange when you do that in subclasses, for instance (sheet-children pane) 2018-01-06T07:44:49Z beach: I think it is preferable to have more packages instead, and just don't use the prefix. 2018-01-06T07:45:39Z eviltofu: I put my classes in their own package. 2018-01-06T07:46:16Z eviltofu: So I should just remove Has-xxx to make it xxx. 2018-01-06T07:46:28Z beach: Also, the HAS- convention looks strange. A person would be what? has-name-and-address-and-telephone-number-and-social-security-number? 2018-01-06T07:46:46Z eviltofu: Those classes aren’t really used. 2018-01-06T07:47:04Z beach: Why do you create classes that aren't used? 2018-01-06T07:47:16Z eviltofu: For example when I create a network node class (defclass node (has-identity has-connections has-properties) … ) 2018-01-06T07:47:20Z fikka quit (Ping timeout: 260 seconds) 2018-01-06T07:47:28Z beach: Oh, I see. 2018-01-06T07:47:58Z beach: We usually call those xxx-mixin. Like identity-mixin, connections-mixin, etc. 2018-01-06T07:48:05Z eviltofu: ooooh 2018-01-06T07:48:34Z eviltofu: then the methods which support that class are identify-mixin-xxx ? 2018-01-06T07:49:11Z beach: I don't think so. 2018-01-06T07:49:24Z eviltofu: ok so common sense names then 2018-01-06T07:49:58Z beach: IDENTITY is strange because you have to shadow it so that it would be the Common Lisp symbol. 2018-01-06T07:50:02Z eviltofu: oh so generics and then speciliase in methods 2018-01-06T07:50:02Z beach: Otherwise... 2018-01-06T07:50:25Z eviltofu: I’d change it to identifiable 2018-01-06T07:50:29Z beach: (defclass identity-mixin ((... :reader identity))) 2018-01-06T07:50:39Z beach: No, just shadow the symbol. 2018-01-06T07:51:00Z orivej joined #lisp 2018-01-06T07:51:21Z jarwin joined #lisp 2018-01-06T07:51:21Z jarwin is now known as Jarwin 2018-01-06T07:51:39Z eviltofu: ok will have to look up what shadowing does 2018-01-06T07:52:04Z beach: (defpackage my-stuff (:use #:common-lisp) (:shadow #:identity) (:export #:identity ....)) 2018-01-06T07:52:46Z beach: It means that there is a symbol named IDENTITY in the MY-STUFF package and that symbol is distinct from COMMON-LISP:IDENTITY. 2018-01-06T07:53:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T07:54:10Z eviltofu: so to use the CL identity I can use CL:IDENTITY? 2018-01-06T07:54:17Z beach: Yes. 2018-01-06T07:56:15Z fluke` quit (Ping timeout: 248 seconds) 2018-01-06T07:59:21Z koltrasten joined #lisp 2018-01-06T08:00:25Z koltrasten left #lisp 2018-01-06T08:03:38Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-06T08:04:01Z mishoo_ joined #lisp 2018-01-06T08:09:27Z Jarwin quit (Quit: WeeChat 1.9.1) 2018-01-06T08:09:45Z jarwin joined #lisp 2018-01-06T08:09:49Z FareTower joined #lisp 2018-01-06T08:09:50Z jarwin is now known as Jarwin 2018-01-06T08:16:52Z pilfink joined #lisp 2018-01-06T08:22:33Z fiddlerwoaroof: I just realized that I can use (eval-when (:load-toplevel) ...) to make fasls that automatically load their dependencies 2018-01-06T08:23:48Z fiddlerwoaroof: e.g. something like: https://pastebin.com/N12ViT8T 2018-01-06T08:24:22Z fiddlerwoaroof: Is the latest lisppaste code available somewhere? 2018-01-06T08:25:00Z phoe: fiddlerwoaroof: I think #common-lisp.net will be able to answer best 2018-01-06T08:30:06Z quazimodo joined #lisp 2018-01-06T08:31:35Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-06T08:32:23Z fiddlerwoaroof: I guess this eval-when trick isn't very useful, since most lisps don't have a stable fasl format, but it could be useful if you want to ship an application with a bunch of dynamically loaded modules: you'd build a base image with only your application in it and then use that image to compile all the modules to fasl files and put them in a well-known location, you could avoid putting all the module dependencies in your .asd 2018-01-06T08:32:48Z randomstrangerb joined #lisp 2018-01-06T08:33:23Z eviltofu quit (Quit: eviltofu) 2018-01-06T08:35:08Z Jarwin quit (Quit: WeeChat 1.9.1) 2018-01-06T08:35:25Z d4ryus2 is now known as d4ryus 2018-01-06T08:36:10Z damke_ joined #lisp 2018-01-06T08:38:11Z prometheus_falli joined #lisp 2018-01-06T08:39:55Z quazimodo quit (Ping timeout: 265 seconds) 2018-01-06T08:40:38Z eviltofu joined #lisp 2018-01-06T08:40:39Z eviltofu quit (Client Quit) 2018-01-06T08:40:50Z FareTower: fiddlerwoaroof, that's what compile-bundle-op is for. 2018-01-06T08:41:15Z FareTower: or monolithic-compile-bundle-op 2018-01-06T08:42:18Z damke joined #lisp 2018-01-06T08:44:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T08:48:58Z fiddlerwoaroof: cool 2018-01-06T08:49:19Z fiddlerwoaroof: I've always been a little intimidated by ASDF's documentation 2018-01-06T08:49:29Z fiddlerwoaroof: But, I've slowly been learning my way around it :) 2018-01-06T08:50:18Z pjb: Yes, documentations are often intimidating. That's why it's better to avoid them altogether. 2018-01-06T08:51:31Z fiddlerwoaroof: Yeah, I usually just read the code when I want to figure out how to use a library 2018-01-06T08:52:23Z fiddlerwoaroof: I'll occasionally look at a readme and/or a sample application, but I find it's often easier to look at code and/or docstrings in emacs than it is to try to understand the library's documentaiton 2018-01-06T08:53:06Z Shinmera: I have the exact opposite experience. 2018-01-06T08:53:28Z Shinmera: Trying to understand what other people's code is supposed to achieve is far from trivial for almost anything. 2018-01-06T08:57:10Z jfb4 quit (Ping timeout: 268 seconds) 2018-01-06T08:58:54Z jfb4 joined #lisp 2018-01-06T08:59:36Z damke quit (Read error: Connection reset by peer) 2018-01-06T09:00:01Z damke joined #lisp 2018-01-06T09:05:33Z rippa quit (Read error: Connection reset by peer) 2018-01-06T09:05:58Z rippa joined #lisp 2018-01-06T09:06:10Z wxie joined #lisp 2018-01-06T09:06:32Z whoman quit (Remote host closed the connection) 2018-01-06T09:06:52Z whoman joined #lisp 2018-01-06T09:07:43Z shka joined #lisp 2018-01-06T09:08:15Z gravicappa quit (Ping timeout: 248 seconds) 2018-01-06T09:09:55Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-06T09:17:08Z dtornabene quit (Remote host closed the connection) 2018-01-06T09:18:01Z whoman quit (Remote host closed the connection) 2018-01-06T09:18:19Z whoman joined #lisp 2018-01-06T09:18:27Z FareTower quit (Ping timeout: 240 seconds) 2018-01-06T09:18:46Z alexmlw quit (Remote host closed the connection) 2018-01-06T09:19:14Z alexmlw joined #lisp 2018-01-06T09:19:59Z arbv quit (Ping timeout: 248 seconds) 2018-01-06T09:20:00Z benny quit (Ping timeout: 248 seconds) 2018-01-06T09:20:00Z kushal quit (Ping timeout: 248 seconds) 2018-01-06T09:21:20Z arbv joined #lisp 2018-01-06T09:21:27Z orivej quit (Read error: Connection reset by peer) 2018-01-06T09:21:35Z hjudt quit (Ping timeout: 248 seconds) 2018-01-06T09:21:55Z benny joined #lisp 2018-01-06T09:22:19Z kushal joined #lisp 2018-01-06T09:22:25Z hjudt joined #lisp 2018-01-06T09:22:43Z kushal is now known as Guest40978 2018-01-06T09:23:11Z orivej joined #lisp 2018-01-06T09:30:30Z fikka joined #lisp 2018-01-06T09:33:46Z FreeBirdLjj joined #lisp 2018-01-06T09:34:57Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T09:45:39Z orivej quit (Read error: Connection reset by peer) 2018-01-06T09:48:22Z orivej joined #lisp 2018-01-06T09:52:27Z versatile joined #lisp 2018-01-06T09:53:47Z orivej quit (Ping timeout: 252 seconds) 2018-01-06T09:53:54Z orivej joined #lisp 2018-01-06T09:53:59Z Fare joined #lisp 2018-01-06T09:57:15Z versatile is now known as Murii 2018-01-06T10:09:32Z Fare quit (Remote host closed the connection) 2018-01-06T10:09:41Z sebbot quit (Quit: Lost terminal) 2018-01-06T10:10:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-06T10:13:14Z random-nick joined #lisp 2018-01-06T10:15:43Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-06T10:17:45Z Fare joined #lisp 2018-01-06T10:24:32Z nsrahmad joined #lisp 2018-01-06T10:25:25Z h3r3tek joined #lisp 2018-01-06T10:25:36Z Fare quit (Remote host closed the connection) 2018-01-06T10:25:57Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-06T10:28:26Z jfb4 joined #lisp 2018-01-06T10:30:47Z Fare joined #lisp 2018-01-06T10:32:12Z h3r3tek quit (Ping timeout: 246 seconds) 2018-01-06T10:33:23Z h3r3tek joined #lisp 2018-01-06T10:36:46Z markong joined #lisp 2018-01-06T10:38:45Z Fare quit (Ping timeout: 264 seconds) 2018-01-06T10:40:43Z wxie quit (Remote host closed the connection) 2018-01-06T10:48:13Z orivej joined #lisp 2018-01-06T10:48:40Z r___ joined #lisp 2018-01-06T10:48:55Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-06T10:49:30Z h3r3tek quit (Remote host closed the connection) 2018-01-06T10:50:30Z Guest40978 is now known as kushal 2018-01-06T10:50:40Z kushal quit (Changing host) 2018-01-06T10:50:40Z kushal joined #lisp 2018-01-06T10:52:17Z gigetoo quit (Ping timeout: 248 seconds) 2018-01-06T10:53:02Z gigetoo joined #lisp 2018-01-06T10:54:10Z wxie joined #lisp 2018-01-06T10:54:25Z wxie quit (Remote host closed the connection) 2018-01-06T10:55:20Z fluke` joined #lisp 2018-01-06T10:55:28Z varjagg joined #lisp 2018-01-06T10:56:19Z nsrahmad quit (Quit: Leaving) 2018-01-06T10:59:24Z milanj joined #lisp 2018-01-06T11:01:32Z damke_ joined #lisp 2018-01-06T11:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-06T11:05:02Z smurfrobot quit (Remote host closed the connection) 2018-01-06T11:06:19Z smurfrobot joined #lisp 2018-01-06T11:09:28Z smurfrobot quit (Read error: Connection reset by peer) 2018-01-06T11:09:36Z smurfrobot joined #lisp 2018-01-06T11:11:13Z EvW joined #lisp 2018-01-06T11:12:37Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-01-06T11:13:55Z orivej joined #lisp 2018-01-06T11:17:21Z thorondor[m] quit (Quit: idle on matrix for more than 30 days) 2018-01-06T11:17:30Z Ellusionist joined #lisp 2018-01-06T11:18:39Z fikka joined #lisp 2018-01-06T11:21:28Z dahs81[m] left #lisp 2018-01-06T11:23:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T11:24:12Z random-nick quit (Quit: quit) 2018-01-06T11:26:26Z r___: anyone has an idea on how to tell if a thread in sbcl is in the debugger? 2018-01-06T11:28:02Z r___: I see the function sb-thread:symbol-value-in-thread and the variable sb-debug:*in-the-debugger* 2018-01-06T11:30:37Z phoe: r___: you could theoretically try interrupting it with (lambda () (symbol-value 'sb-debug:*in-the-debugger*)) 2018-01-06T11:30:51Z phoe: if you want to risk interrupting threads, that is... which *might* be feasible if it's in the debugger anyway 2018-01-06T11:31:11Z r___: But in trying to use it on a thread which executes a division by zero & is in the debugger, I get an error indicating that the symbol has no thread local value 2018-01-06T11:31:54Z phoe: then this variable wasn't set, it seems. 2018-01-06T11:32:00Z phoe: sounds like a #sbcl issue. 2018-01-06T11:32:32Z wxie joined #lisp 2018-01-06T11:32:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T11:33:41Z shka quit (Quit: Konversation terminated!) 2018-01-06T11:33:46Z random-nick joined #lisp 2018-01-06T11:34:08Z jstypo quit (Remote host closed the connection) 2018-01-06T11:35:03Z damke_ joined #lisp 2018-01-06T11:35:45Z r___: right. I'm looking to see if someone knows (or has experienced this situation) under what conditions this variable is set & how is my understanding of it & of the function to test it in the context of a given thread is wrong 2018-01-06T11:37:18Z flowerdts joined #lisp 2018-01-06T11:38:45Z flowerdts: hey guys I was wondering if there is a way to have a (case) with multiple keys? My code is here https://pastebin.com/KZQBNcTe It's supposed to be a wine expert System :) 2018-01-06T11:42:09Z nirved joined #lisp 2018-01-06T11:42:35Z Sovereign_Bleak quit (Quit: idle on matrix for more than 30 days) 2018-01-06T11:43:05Z EvilAngel1 quit (Quit: idle on matrix for more than 30 days) 2018-01-06T11:44:09Z oleo: sbcl does not promote globals to thread-local 2018-01-06T11:45:25Z fiddlerwoaroof: flowerdts: you should format your code, it's really difficult to read unformatted lisp code 2018-01-06T11:45:51Z flowerdts: I though this was formatted O.O 2018-01-06T11:46:33Z l04m33[m] quit (Quit: idle on matrix for more than 30 days) 2018-01-06T11:46:35Z fiddlerwoaroof: It's pretty good, although your case statement isn't formatted quite right 2018-01-06T11:46:46Z oleo: symbol-value-in-thread 2018-01-06T11:47:13Z r___: oleo: would you know how I could test if a given thread is in the debugger? 2018-01-06T11:47:20Z fiddlerwoaroof: Anyways, there isn't a multiply-keyed case statement in lisp 2018-01-06T11:47:28Z flowerdts: oh, so how should it be? and how could I run a case on a list with features? :) 2018-01-06T11:48:01Z oleo: global special values are visible across all threads; 2018-01-06T11:48:01Z oleo: bindings (e.g. using LET) are local to the thread; 2018-01-06T11:48:01Z oleo: threads do not inherit dynamic bindings from the parent thread 2018-01-06T11:48:09Z damke_ quit (Ping timeout: 246 seconds) 2018-01-06T11:48:50Z nowhere_man quit (Ping timeout: 260 seconds) 2018-01-06T11:49:57Z fiddlerwoaroof: flowerdts: case uses EQL to compare the key to the various case clauses, so there's no way to use case unless you're using a type that works appropriately with EQL 2018-01-06T11:50:51Z fiddlerwoaroof: flowerdts: however, alexandria has destructuring-case that looks like it might do what you need 2018-01-06T11:51:02Z fiddlerwoaroof: Do you have quicklisp setup? 2018-01-06T11:51:12Z flowerdts: I use clisp to compile in console 2018-01-06T11:51:20Z fluke` quit (Read error: Connection reset by peer) 2018-01-06T11:52:02Z flowerdts: I can't use Alexandria (this project is for school) 2018-01-06T11:52:26Z oleo: Variable Value Availability 2018-01-06T11:52:41Z oleo: read that in the sbcl manual 2018-01-06T11:52:55Z oleo: The value of a variable may be unavailable to the debugger in portions of the program where Lisp says that the variable is defined. If a variable value is not available, the debugger will not let you read or write that variable. With one exception, the debugger will never display an incorrect value for a variable. Rather than displaying incorrect values, the debugger tells you the value is unavailable. 2018-01-06T11:54:09Z flowerdts: I guess my only option is splitting with if/else and nesting case/s 2018-01-06T11:54:17Z fluke` joined #lisp 2018-01-06T11:54:28Z r___: oleo: thanks. will go check it out 2018-01-06T11:54:30Z nowhere_man joined #lisp 2018-01-06T11:54:41Z fiddlerwoaroof: flowerdts: well, one thing you could do is put the output in a hash-table with :test #'EQUAL and then printing the result of getting a list from the hash table 2018-01-06T11:55:06Z flowerdts: great idea, I will look into that 2018-01-06T11:55:13Z fiddlerwoaroof: e.g. your case statement would turn into something like (format t "~% ~a" (gethash (list color grapes) *choices*)) 2018-01-06T11:55:53Z flowerdts: and how would I build that hash? :) 2018-01-06T11:57:06Z pjb: Same, using gethash. 2018-01-06T11:57:13Z pjb: it's an _accessor_! 2018-01-06T11:57:53Z froggey quit (Ping timeout: 248 seconds) 2018-01-06T11:58:04Z flowerdts: isn't there something like sethash ? 2018-01-06T11:58:39Z flowerdts: (setq (gethash (list color grapes) choice)) ? 2018-01-06T11:59:19Z fiddlerwoaroof: You use setf 2018-01-06T11:59:20Z enick_394 quit (Quit: idle on matrix for more than 30 days) 2018-01-06T11:59:37Z fiddlerwoaroof: (setf (gethash key hash-table) value) 2018-01-06T12:00:37Z flowerdts: (setf (gethash (list color grapes) wines)) 2018-01-06T12:00:57Z fiddlerwoaroof: Yeah, although you need a value at the end of the setf form 2018-01-06T12:01:16Z fiddlerwoaroof: you might read this chapter of pcl to familiarize yourself with the way lisp accessors work: http://www.gigamonkeys.com/book/variables.html 2018-01-06T12:01:18Z flowerdts: so wines is the name of the hash and then a value to represent the choice? 2018-01-06T12:01:25Z fiddlerwoaroof: Basically 2018-01-06T12:01:48Z fiddlerwoaroof: This is explained in the section of that web page beginning "generalized assignment" 2018-01-06T12:02:10Z gravicappa joined #lisp 2018-01-06T12:03:53Z knobo quit (Ping timeout: 265 seconds) 2018-01-06T12:04:29Z froggey joined #lisp 2018-01-06T12:06:46Z flowerdts: https://pastebin.com/t9kYxzk7 this is returning NIL :/ 2018-01-06T12:08:22Z fiddlerwoaroof: You have to tell make-hash-table not to use #'eql when looking up a key 2018-01-06T12:08:35Z fiddlerwoaroof: so, it's (make-hash-table :test #'equal) 2018-01-06T12:09:29Z wxie quit (Remote host closed the connection) 2018-01-06T12:09:40Z astronavt[m] quit (Quit: idle on matrix for more than 30 days) 2018-01-06T12:09:49Z wxie joined #lisp 2018-01-06T12:10:14Z flowerdts: it works! Thank you very much :) 2018-01-06T12:15:29Z r___ quit (Ping timeout: 260 seconds) 2018-01-06T12:18:44Z trigt[m] left #lisp 2018-01-06T12:30:34Z narendraj9 joined #lisp 2018-01-06T12:34:33Z fiddlerwoaroof: great! 2018-01-06T12:36:05Z wxie quit (Ping timeout: 268 seconds) 2018-01-06T12:37:28Z tomlukeywood joined #lisp 2018-01-06T12:40:56Z fiddlerwoaroof: A mac app in pure lisp, with a tiny ffi shim: https://github.com/fiddlerwoaroof/objc-lisp-bridge/blob/master/demo-app.lisp 2018-01-06T12:41:10Z fiddlerwoaroof: (I couldn't figure out how to pass a couple structs by value) 2018-01-06T12:46:29Z Shinmera: Passing structs by value requires cffi-libffi, so you need a C library anyway. 2018-01-06T12:47:10Z fiddlerwoaroof: Yeah, I tried that route, but didn't feel like figuring out a couple issues I ran into 2018-01-06T12:47:25Z varjagg quit (Remote host closed the connection) 2018-01-06T12:47:32Z fiddlerwoaroof: Anyways, I need to sleep 2018-01-06T12:47:36Z varjagg joined #lisp 2018-01-06T12:47:55Z josemanuel joined #lisp 2018-01-06T12:48:03Z marcux joined #lisp 2018-01-06T12:48:44Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-06T12:52:59Z marcux quit (Ping timeout: 276 seconds) 2018-01-06T12:54:35Z fikka joined #lisp 2018-01-06T12:59:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T12:59:39Z Folkol joined #lisp 2018-01-06T12:59:40Z milanj quit (Quit: This computer has gone to sleep) 2018-01-06T13:01:55Z Bike joined #lisp 2018-01-06T13:03:59Z Folkol quit (Client Quit) 2018-01-06T13:04:18Z EvW quit (Ping timeout: 265 seconds) 2018-01-06T13:04:28Z Folkol joined #lisp 2018-01-06T13:06:48Z Tobbi joined #lisp 2018-01-06T13:09:21Z EvW1 joined #lisp 2018-01-06T13:11:00Z tomlukeywood: this :initial-contents complains about being of incorrect size 2018-01-06T13:11:01Z tomlukeywood: am i going insane or is this array not of correct size??? 2018-01-06T13:11:01Z tomlukeywood: https://hastebin.com/jaqosenate.lisp 2018-01-06T13:11:38Z fluke` quit (Ping timeout: 252 seconds) 2018-01-06T13:12:33Z pjb: tomhttps://hastebin.com/otofesojiw.lisp 2018-01-06T13:12:37Z pjb: tomlukeywood: https://hastebin.com/otofesojiw.lisp 2018-01-06T13:13:10Z tomlukeywood: ah.. that makes sense ty 2018-01-06T13:13:11Z pjb: tomlukeywood: lisp uses row-major indexing. cf. array-row-major-index 2018-01-06T13:13:35Z nowhere_man quit (Remote host closed the connection) 2018-01-06T13:13:36Z pjb: Almost all languages use it; Fortran uses col-major indexing. 2018-01-06T13:14:01Z nowhere_man joined #lisp 2018-01-06T13:16:51Z varjagg quit (Ping timeout: 240 seconds) 2018-01-06T13:19:29Z Shinmera: Matlab and Fortran are the only two major languages I know of that use column-major. 2018-01-06T13:22:10Z tomlukeywood: when i define (defconstant dead " ") and then use dead in a list 2018-01-06T13:22:10Z tomlukeywood: it just evaluates to dead and not " ". why is this? 2018-01-06T13:22:25Z Bike: you mean in like '(dead)? 2018-01-06T13:22:30Z Bike: the quote suppresses evaluation 2018-01-06T13:22:34Z jcowan: Julia also uses column-major, because it uses so many Fortran packages 2018-01-06T13:23:19Z tomlukeywood: like here https://hastebin.com/onoviwicah.lisp 2018-01-06T13:23:35Z tomlukeywood: dont know why my editor has that weird tabbing... 2018-01-06T13:23:36Z Bike: right, it's quoted. 2018-01-06T13:23:49Z tomlukeywood: oh so i need to unquote 2018-01-06T13:24:01Z Shinmera: The quote does not "make a list". It returns a literal, which happens to be a list. 2018-01-06T13:24:06Z Shinmera: You create a list with LIST 2018-01-06T13:24:07Z Bike: well, actually, i'd just do ":initial-element dead" instead. 2018-01-06T13:24:17Z Bike: they maybe set the few alive elements 2018-01-06T13:24:21Z Bike: up to you of course 2018-01-06T13:24:32Z jcowan: R is also column-major, probably for the same reason 2018-01-06T13:24:47Z Shinmera: jcowan: Ah, good to know. 2018-01-06T13:24:50Z tomlukeywood: ok but just for future knowledge how do would i do this? 2018-01-06T13:25:06Z Bike: (list (list dead dead dead alive ...) ...) 2018-01-06T13:25:23Z tomlukeywood: ok ty 2018-01-06T13:27:59Z brendyn quit (Ping timeout: 265 seconds) 2018-01-06T13:29:58Z nowhere_man quit (Remote host closed the connection) 2018-01-06T13:30:05Z milanj joined #lisp 2018-01-06T13:30:27Z nowhere_man joined #lisp 2018-01-06T13:31:34Z tomlukeywood left #lisp 2018-01-06T13:33:33Z Karl_Dscc joined #lisp 2018-01-06T13:35:02Z damke_ joined #lisp 2018-01-06T13:36:28Z heurist`_ joined #lisp 2018-01-06T13:37:00Z EvW1 quit (Ping timeout: 246 seconds) 2018-01-06T13:38:45Z heurist` quit (Ping timeout: 264 seconds) 2018-01-06T13:43:14Z varjagg joined #lisp 2018-01-06T13:43:56Z dddddd joined #lisp 2018-01-06T13:44:44Z scymtym joined #lisp 2018-01-06T13:45:27Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-06T13:45:45Z narendraj9 quit (Ping timeout: 246 seconds) 2018-01-06T13:48:08Z varjagg quit (Ping timeout: 255 seconds) 2018-01-06T13:48:11Z nowhere_man joined #lisp 2018-01-06T13:51:15Z fikka joined #lisp 2018-01-06T13:52:43Z whoman quit (Read error: Connection reset by peer) 2018-01-06T13:56:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-06T13:59:23Z pjb: Bike: if you show (list (list …)) for :initial-contents, you should mention to the naive newbie that this allocates a cons-based copy of all the data at run-time. It would be better to (setf (aref m 0 0) dead (aref m 0 1) dead …) (possibly writting a macro to do it nicely). 2018-01-06T13:59:45Z Bike: i already suggested seetting things manually 2018-01-06T13:59:56Z pjb: Oh, ok. Sorry. 2018-01-06T14:01:10Z serviteur joined #lisp 2018-01-06T14:01:11Z serviteur quit (Remote host closed the connection) 2018-01-06T14:01:32Z pjb: And then it's ok for the newbies to do their own stuff and learn from it. 2018-01-06T14:15:28Z marcux joined #lisp 2018-01-06T14:18:57Z Murii quit (Quit: WeeChat 1.4) 2018-01-06T14:32:22Z narendraj9 joined #lisp 2018-01-06T14:37:27Z shifty quit (Ping timeout: 240 seconds) 2018-01-06T14:39:59Z Ellusionist quit (Ping timeout: 248 seconds) 2018-01-06T14:42:08Z milanj quit (Quit: This computer has gone to sleep) 2018-01-06T14:43:37Z dmiles: hrrm i wonder how bad it'd be if i left (class-of :kw) returning # 2018-01-06T14:44:34Z dmiles: instead of builtin class SYMBOL 2018-01-06T14:46:05Z Shinmera: The real question is why in the world you would make a distinction to begin with 2018-01-06T14:46:15Z Shinmera: Keywords are just symbols. 2018-01-06T14:46:49Z dmiles: in my impl.. i wrap the result of (type-of :KW) 2018-01-06T14:47:09Z dmiles: which is KEYWORD 2018-01-06T14:47:37Z dmiles: i guess it would mater for generic functions 2018-01-06T14:47:47Z flowerdts quit (Quit: Page closed) 2018-01-06T14:48:42Z dmiles: of course they the class named KEYWORD is a subclass of class named SYMBOL so it wont hurt 2018-01-06T14:50:00Z dmiles: also the distinction is in my impl of keywords they are constantp and the symbol-package, symbol-vlaue and symbol-function all go to the same code 2018-01-06T14:50:40Z Shinmera: If you unintern a keyword, would it still have the keyword class? 2018-01-06T14:50:50Z Shinmera: I'm guessing in your case yes, which would be pretty bad. 2018-01-06T14:51:07Z dmiles: ah i should find out if otehr lisps have my errant behavour in this case 2018-01-06T14:55:02Z Shinmera: Does type-of even have to return KEYWORD for keywords? 2018-01-06T14:55:36Z Shinmera: clhs type-of 2018-01-06T14:55:36Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_tp_of.htm 2018-01-06T14:55:41Z Shinmera: Doesn't seem to require this. 2018-01-06T14:55:59Z dmiles: it is just popular that everyone does it 2018-01-06T14:56:21Z Shinmera: Well, either way, I don't think it makes sense to have a class for keywords. 2018-01-06T14:56:34Z Shinmera: As the "keywordness" is encoded in the symbol-package of a symbol. 2018-01-06T14:56:44Z Shinmera: Duplicating that information with a class just makes things iffy. 2018-01-06T14:57:37Z dmiles: ah yes.. indeed (symbol-package ..) is the decider for keywordp 2018-01-06T14:59:49Z narendraj9 quit (Ping timeout: 265 seconds) 2018-01-06T15:02:59Z eSVG quit (Ping timeout: 276 seconds) 2018-01-06T15:03:53Z dmiles: *nod* well thanks .. updating my impl and might even need to update the work impl https://sourceforge.net/p/larkc/code/HEAD/tree/branches/LarKC_CommonLisp_Extensions/platform/src/com/cyc/tool/subl/jrtl/nativeCode/type/symbol/SubLSymbolKeyword.java#168 2018-01-06T15:05:40Z dmiles: (work impl return SYMBOL for type-of :P) 2018-01-06T15:18:35Z marcux quit (Ping timeout: 255 seconds) 2018-01-06T15:18:55Z alexmlw1 joined #lisp 2018-01-06T15:22:07Z alexmlw quit (Ping timeout: 248 seconds) 2018-01-06T15:22:08Z alexmlw1 is now known as alexmlw 2018-01-06T15:25:27Z alexmlw quit (Quit: alexmlw) 2018-01-06T15:25:39Z alexmlw joined #lisp 2018-01-06T15:28:23Z knicklux joined #lisp 2018-01-06T15:29:08Z knicklux quit (Remote host closed the connection) 2018-01-06T15:29:19Z knicklux joined #lisp 2018-01-06T15:41:57Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-06T15:43:12Z randomstrangerb joined #lisp 2018-01-06T15:44:26Z asarch joined #lisp 2018-01-06T15:46:55Z narendraj9 joined #lisp 2018-01-06T15:47:16Z EvW joined #lisp 2018-01-06T15:54:40Z turkja quit (Ping timeout: 248 seconds) 2018-01-06T15:59:10Z asarch quit (Quit: Leaving) 2018-01-06T16:00:23Z fikka joined #lisp 2018-01-06T16:05:00Z narendraj9 quit (Read error: Connection reset by peer) 2018-01-06T16:06:24Z Oladon joined #lisp 2018-01-06T16:07:03Z varjagg joined #lisp 2018-01-06T16:08:28Z narendraj9 joined #lisp 2018-01-06T16:13:52Z random-nick quit (Remote host closed the connection) 2018-01-06T16:15:28Z nika quit (Quit: Leaving...) 2018-01-06T16:17:38Z alexmlw quit (Quit: alexmlw) 2018-01-06T16:19:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T16:20:38Z versatile joined #lisp 2018-01-06T16:21:01Z knicklux quit (Quit: Leaving) 2018-01-06T16:26:41Z mn3m joined #lisp 2018-01-06T16:41:48Z fikka joined #lisp 2018-01-06T16:52:10Z fikka quit (Ping timeout: 252 seconds) 2018-01-06T16:59:09Z dxtr joined #lisp 2018-01-06T17:01:52Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-06T17:03:08Z randomstrangerb joined #lisp 2018-01-06T17:04:24Z AntiSpamMeta quit (Remote host closed the connection) 2018-01-06T17:04:33Z narendraj9 quit (Ping timeout: 246 seconds) 2018-01-06T17:05:55Z fikka joined #lisp 2018-01-06T17:09:44Z mn3m quit (Ping timeout: 255 seconds) 2018-01-06T17:13:19Z fikka quit (Ping timeout: 256 seconds) 2018-01-06T17:17:31Z knobo joined #lisp 2018-01-06T17:17:43Z AntiSpamMeta joined #lisp 2018-01-06T17:19:54Z sigjuice: any suggestions for shorter SLIME key bindings? 2018-01-06T17:21:09Z JuanDaugherty joined #lisp 2018-01-06T17:23:31Z knobo quit (Ping timeout: 240 seconds) 2018-01-06T17:25:48Z knobo joined #lisp 2018-01-06T17:26:09Z phoe: sigjuice: give us some examples, shorter than what? 2018-01-06T17:27:45Z sigjuice: like the ones in the Documentation menu or the Cross Reference menu. C-c C-d C-d etc. 2018-01-06T17:30:18Z jmercouris joined #lisp 2018-01-06T17:31:06Z jmercouris: I've inserted a break into my code, is there anyway I can inspect the value of variables at that point? 2018-01-06T17:31:24Z jmercouris: For example, my break is within a let binding, can I see what the values assigned to those bindings are? 2018-01-06T17:35:30Z fikka joined #lisp 2018-01-06T17:36:15Z jmercouris: seems that I needed "optimize debug 3" at the top 2018-01-06T17:40:14Z kenster joined #lisp 2018-01-06T17:40:52Z kenster: I'm livestreaming some programming in 20 minutes, 10AM pacific time. Join me! Unfortunately more C++ than lisp though. https://www.youtube.com/watch?v=2NkqJidhJto 2018-01-06T17:42:02Z jarwin joined #lisp 2018-01-06T17:44:37Z Posterdati quit (Remote host closed the connection) 2018-01-06T17:47:26Z Shinmera: jmercouris: You can also use C-u C-c C-c to compile a function with max debug. 2018-01-06T17:48:41Z jmercouris: Shinmera: Ok, thank you 2018-01-06T17:48:48Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T17:49:14Z jmercouris: Shinmera: I can't find out what that's mapped to because immediately C-h k returns on C-u 2018-01-06T17:49:21Z jmercouris: Do you happen to know the function name? 2018-01-06T17:50:28Z Shinmera: It's slime-compile-defun, same as C-c C-c. C-u acts as "prefix argument" 2018-01-06T17:50:30Z Oladon quit (Quit: Leaving.) 2018-01-06T17:50:34Z Posterdati joined #lisp 2018-01-06T17:51:05Z jmercouris: Ok, right, I forgot about prefix arguments as a concept 2018-01-06T17:51:34Z Shinmera: It is an obscure emacs feature 2018-01-06T17:51:59Z jmercouris: Well, idk, feels like it comes up all the time, e.g. C-u 70 ; for example 2018-01-06T17:52:06Z sigjuice: jmercouris btw. you can probably also use F1 k instead of C-h k 2018-01-06T17:52:09Z jmercouris: it's just that I never really think about it 2018-01-06T17:54:29Z jmercouris: sigjuice: I would but the F keys on my keyboards all behave differently so I tend to avoid them 2018-01-06T17:54:37Z jmercouris: thanks for the tip though 2018-01-06T17:56:32Z jarwin is now known as Jarwin 2018-01-06T17:59:37Z Posterdati quit (Ping timeout: 265 seconds) 2018-01-06T17:59:51Z scymtym quit (Ping timeout: 246 seconds) 2018-01-06T18:01:21Z jmercouris: Shinmera: You work a lot with CFFI, how do I know if a particular function is provided by a .so, is there a way to tell? 2018-01-06T18:01:50Z Shinmera: You get a warning if you compile a defcfun and it doesn't exist. 2018-01-06T18:01:53Z jmercouris: The reason I ask is because I've written a cffi:defcfun, and I'm not sure that the function even exists as I am getting non sensical data from evaluation 2018-01-06T18:02:16Z jmercouris: Shinmera: During compilation time it will load the shared library and make sure it exists? 2018-01-06T18:02:33Z sigjuice: jmercouris yes, F keys are not straightforward. e.g. on my Mac, I use a utility to provide different F key behaviors for different apps. 2018-01-06T18:02:35Z Shinmera: It'll only load it if you tell it to load it. 2018-01-06T18:03:11Z Ven`` joined #lisp 2018-01-06T18:03:15Z Shinmera: jmercouris: Calling an undefined function will error 2018-01-06T18:03:17Z jmercouris: Shinmera: I load it in my init.lisp, then I have another definition in a file loaded afterwards, therefore if I slime-load-system it, I would expect this to signal an error? 2018-01-06T18:03:30Z jmercouris: Shinmera: Okay, so if I am invoking it, it also is more proof that it exists 2018-01-06T18:03:35Z Shinmera: Yes. 2018-01-06T18:03:36Z jmercouris: Since I do not get a restart or anything 2018-01-06T18:03:47Z Shinmera: It's more likely that you've got the types wrong, or are sending wrong values. 2018-01-06T18:03:54Z jmercouris: Possibly 2018-01-06T18:04:03Z jmercouris: I asked ysterday if somebody would mind looking, could you look? 2018-01-06T18:04:06Z jmercouris: it is just one definition 2018-01-06T18:04:18Z Shinmera: With what library? 2018-01-06T18:04:24Z jmercouris: Library is webkit 2018-01-06T18:04:32Z jmercouris: webkitgtk+ to be specific 2018-01-06T18:04:32Z Shinmera: Okey 2018-01-06T18:04:40Z jmercouris: I have all the information in a gist 2018-01-06T18:04:47Z jmercouris: https://gist.github.com/a60c248a7166b70f028e4612369628c4 2018-01-06T18:04:58Z jmercouris: I grep'd the source for all of the types/etc 2018-01-06T18:05:15Z jmercouris: This is where I'm using it: https://gist.github.com/c25ebc01515acf239460c991a3534fbe 2018-01-06T18:05:29Z jmercouris: And finally, this is the example of C code doing what I'm trying to do: https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-run-javascript-finish 2018-01-06T18:05:39Z jmercouris: if you only look at one thing, it is the first thing I am most unsure of 2018-01-06T18:08:14Z Shinmera: webkit_web_view_run_javascript_finish seems to take three args in the example 2018-01-06T18:08:17Z Shinmera: your code only has two 2018-01-06T18:08:32Z jmercouris: Shinmera: That's true, that's overridden in cl-webkit 2018-01-06T18:08:34Z jmercouris: one moment please 2018-01-06T18:09:00Z jmercouris: Shinmera: https://gist.github.com/14511c911241a51035011b3e1781c0f9 2018-01-06T18:09:17Z Shinmera: Ah, yeah, expected something like that 2018-01-06T18:09:52Z Shinmera: Alright so what's wrong with this? I can't really try this myself to see what's going on. 2018-01-06T18:10:25Z jmercouris: So I have some basic questions: does the JSCore implementation make sense based on what you see? 2018-01-06T18:10:51Z Shinmera: You mean your lisp snippet or? 2018-01-06T18:10:56Z jmercouris: Yeah my lisp snippet 2018-01-06T18:10:58Z jmercouris: The first gist 2018-01-06T18:12:00Z Shinmera: I guess. You don't check if what you're getting is actually a string or not. 2018-01-06T18:12:13Z jmercouris: That's okay with me, as I know it should be a string based on the JS I'm running 2018-01-06T18:12:42Z Shinmera: Other than that it seems like a correct translation. What you're doing won't give you a lisp string yet though. 2018-01-06T18:12:49Z scymtym joined #lisp 2018-01-06T18:12:55Z jmercouris: Yeah, I also had a foreign-string-to-lisp line in there 2018-01-06T18:12:55Z Posterdati joined #lisp 2018-01-06T18:13:02Z Shinmera: That's not gonna work 2018-01-06T18:13:03Z jmercouris: but it was complaining that ^A was not a valid SAP 2018-01-06T18:13:26Z Shinmera: You need to use their routines to convert it to UTF8 first as they do in that example 2018-01-06T18:13:45Z jmercouris: I was afraid you would say that 2018-01-06T18:13:59Z osune joined #lisp 2018-01-06T18:14:02Z Shinmera: JS strings are usually implemented as chains of actual strings to make concatenation fast and crazy shit like that. 2018-01-06T18:14:17Z jmercouris: I just thought it might be in UTF-16 based on something I read earlier 2018-01-06T18:14:36Z jmercouris: okay, so if the structure could be very random, it makes sense that they have written a utility for conversion of js strings specificallly 2018-01-06T18:14:39Z Shinmera: should just be a bit more code and not really much overhead, so I don't know why this is such a big deal 2018-01-06T18:14:42Z jmercouris: well, not random, but yeah 2018-01-06T18:14:58Z jmercouris: Well, it's not a big deal, I'm just very unsure about my skills with CFFI, and I don't like introducing more unknowns 2018-01-06T18:15:05Z Shinmera: Once you have a pointer to the UTF8 string you can just foreign-string-to-lisp. 2018-01-06T18:15:08Z Shinmera: Heh 2018-01-06T18:15:11Z Shinmera: I know that feeling :) 2018-01-06T18:15:35Z Shinmera: Implementing native sound interfaces was a lot of not knowing what the hell is going on 2018-01-06T18:15:47Z jmercouris: Lol I imagine there isn't just a plethora of documentation 2018-01-06T18:15:56Z jmercouris: It's probably what it felt like programming in the 80s 2018-01-06T18:16:41Z Shinmera: There were docs (at least) but for Windows it was a clusterfuck and for Mac it was incomprehensible 2018-01-06T18:17:17Z Shinmera: In a surprising twist, Linux was actually sane and simple (at least ALSA & Pulse, haven't tried JACK or OSS) 2018-01-06T18:19:12Z jmercouris: Oh, how the times have changed 2018-01-06T18:21:38Z mo` joined #lisp 2018-01-06T18:22:22Z milanj joined #lisp 2018-01-06T18:26:18Z mo`: I want to execute emacs in stumpwm and get the results. is this feasible using something like swank ? if not what could be a better approach? 2018-01-06T18:26:54Z jmercouris: What code are you writing that necesitates emacs as an execution environment? Anything possible in elisp is also possible in cl 2018-01-06T18:27:34Z mo`: jmercouris: for example I want to get the current playing track in emms. stuff like this. is this feasible or should I use something else like shared memory ? 2018-01-06T18:28:00Z Shinmera: Swank does have eval-in-emacs, but I don't know if it returns a result. 2018-01-06T18:28:16Z Shinmera: And if it does how exactly it converts values. 2018-01-06T18:28:23Z mo`: Shinmera: it does returns inside Emacs but doesn't work in stumpwm mode line 2018-01-06T18:28:54Z mo`: Shinmera: eval-in-emacs only works when I eval from Emacs 2018-01-06T18:30:02Z Shinmera: if I remember correctly eval-in-emacs requires a slime variable to be changed to allow it to work. And you need to actually connect to stump through slime, of course. 2018-01-06T18:30:23Z mo`: Shinmera: yeah I did that 2018-01-06T18:30:30Z Shinmera: Well then I don't know. 2018-01-06T18:30:49Z mo`: I'm not sure why but when I eval some emacs code in the mode line nothing show up 2018-01-06T18:31:32Z mo`: Shinmera: if using swank is not an option how would you do this ? 2018-01-06T18:31:35Z knobo quit (Read error: No route to host) 2018-01-06T18:32:40Z _death: https://www.emacswiki.org/emacs/EmacsAsDaemon 2018-01-06T18:33:31Z mo`: _death: cool thanks I would have preferred doing this with a more elegant solution 2018-01-06T18:34:30Z _death: this is the elegant solution, since it seems you want to talk to the same emacs instance from multiple processes 2018-01-06T18:35:04Z knobo joined #lisp 2018-01-06T18:35:50Z mo`: _death: cool thanks 2018-01-06T18:39:10Z damke joined #lisp 2018-01-06T18:39:42Z qjube joined #lisp 2018-01-06T18:39:44Z randomstrangerb quit (Ping timeout: 265 seconds) 2018-01-06T18:40:57Z randomstrangerb joined #lisp 2018-01-06T18:41:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T18:46:41Z narendraj9 joined #lisp 2018-01-06T18:46:45Z fittestbits quit (Ping timeout: 246 seconds) 2018-01-06T18:49:38Z fikka joined #lisp 2018-01-06T18:52:47Z fittestbits joined #lisp 2018-01-06T18:54:43Z fikka quit (Ping timeout: 265 seconds) 2018-01-06T18:56:05Z raynold quit (Quit: Connection closed for inactivity) 2018-01-06T19:00:31Z Ellusionist joined #lisp 2018-01-06T19:03:50Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-06T19:04:40Z fiddlerwoaroof: Are there any emacs packages for refactoring common lisp? 2018-01-06T19:05:27Z Shinmera: There's various slime-who-* functions to find uses. 2018-01-06T19:05:35Z Shinmera: That's about the closest you're gonna get to refactoring tools. 2018-01-06T19:07:11Z safe joined #lisp 2018-01-06T19:07:39Z jstypo joined #lisp 2018-01-06T19:09:56Z jmercouris quit (Remote host closed the connection) 2018-01-06T19:10:39Z gravicappa quit (Remote host closed the connection) 2018-01-06T19:13:39Z jmercouris joined #lisp 2018-01-06T19:16:11Z EvW quit (Ping timeout: 240 seconds) 2018-01-06T19:18:30Z DominatedConverg joined #lisp 2018-01-06T19:20:49Z fittestbits left #lisp 2018-01-06T19:21:37Z krwq is now known as Guest54593 2018-01-06T19:22:05Z Ellusionist quit (Ping timeout: 260 seconds) 2018-01-06T19:23:22Z mo` quit (Read error: Connection reset by peer) 2018-01-06T19:24:47Z knobo quit (Ping timeout: 256 seconds) 2018-01-06T19:26:09Z DominatedConverg quit (Ping timeout: 264 seconds) 2018-01-06T19:26:28Z EvW1 joined #lisp 2018-01-06T19:26:35Z knobo joined #lisp 2018-01-06T19:26:37Z asarch joined #lisp 2018-01-06T19:29:45Z Khisanth quit (Ping timeout: 264 seconds) 2018-01-06T19:30:52Z fikka joined #lisp 2018-01-06T19:33:31Z damke_ joined #lisp 2018-01-06T19:35:27Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T19:35:32Z Jarwin quit (Remote host closed the connection) 2018-01-06T19:36:21Z damke quit (Ping timeout: 264 seconds) 2018-01-06T19:39:36Z fortitude_ joined #lisp 2018-01-06T19:40:55Z damke joined #lisp 2018-01-06T19:42:15Z Khisanth joined #lisp 2018-01-06T19:44:01Z jmercouris: Shinmera: I've confirmed that it is in fact producing a string because I implemented js-value-is-string like in their example 2018-01-06T19:44:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T19:44:31Z damke__ joined #lisp 2018-01-06T19:44:35Z jmercouris: But when I run js-value-to-string-copy I don't get a pointer, I just get "[]" when I print it out and ^A when I try to pass it to JSStringGetMaximumUTF8CStringSize 2018-01-06T19:46:00Z DominatedConverg joined #lisp 2018-01-06T19:47:09Z damke quit (Ping timeout: 265 seconds) 2018-01-06T19:48:39Z jmercouris: Ah, damnit, I had :string type for js-value-to-string-copy, it is a pointer it returns 2018-01-06T19:48:50Z jmercouris: because it is a JS String, not a real string as we discussed earlier 2018-01-06T19:50:02Z Ven`` joined #lisp 2018-01-06T19:51:47Z Shinmera: Yea 2018-01-06T19:53:09Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-06T19:57:05Z DominatedConverg quit (Ping timeout: 256 seconds) 2018-01-06T19:57:29Z jmercouris: So now, I need a pointer to an address with space in front of it malloc'd how do I do this in CFFI? 2018-01-06T19:57:45Z jmercouris: Basically I need to do: str_value = (gchar *)g_malloc (str_length); 2018-01-06T19:59:03Z Jesin joined #lisp 2018-01-06T20:00:05Z Shinmera: malloc is just cffi:foreign-alloc 2018-01-06T20:00:27Z Shinmera: Which is the same as WITH-FOREIGN-OBJECT just without the cleanup 2018-01-06T20:01:27Z jmercouris: Alright, that part I get now 2018-01-06T20:01:41Z jmercouris: but how do I do something like xyz* fish; in cffi? 2018-01-06T20:01:53Z jmercouris: sorry * in wrong place 2018-01-06T20:01:54Z jmercouris: xyz *fish; 2018-01-06T20:02:07Z Shinmera: You mean dereference the pointer? 2018-01-06T20:02:23Z jmercouris: No, I mean a declaration of a pointer to some thing 2018-01-06T20:02:32Z Shinmera: A pointer is just a pointer 2018-01-06T20:02:40Z Shinmera: The type is just in your head. 2018-01-06T20:02:41Z jmercouris: Okay fair enough, how can I make a pointer 2018-01-06T20:02:51Z Shinmera: foreign-alloc returns a pointer 2018-01-06T20:03:12Z Shinmera: Or a function that returns a pointer, well, returns a pointer 2018-01-06T20:03:13Z damke joined #lisp 2018-01-06T20:03:21Z jmercouris: Okay, so foreign-alloc allocates some memory, and gives a pointer to the address in memory in which it is allocated 2018-01-06T20:03:43Z Shinmera: It just gives you a pointer to the beginning of the region it just allocated 2018-01-06T20:03:49Z jmercouris: Right yeah 2018-01-06T20:03:54Z jmercouris: foreign-alloc is asking for a type though 2018-01-06T20:04:01Z Shinmera: That's just for the size 2018-01-06T20:04:17Z Shinmera: In your case it would be :char and then however big it needs to be 2018-01-06T20:04:34Z jmercouris: Okay, I see 2018-01-06T20:04:47Z Shinmera: Once you have stuff in your memory region, you use cffi:mem-ref to dereference the pointer and convert the data it points to to some lisp value. 2018-01-06T20:04:55Z jmercouris: and then I can pass this pointer to that function JSStringGetUTF8CString which will go ahead and populate tha tportion of memory with the string 2018-01-06T20:05:01Z Shinmera: Yeah 2018-01-06T20:05:09Z Shinmera: After that you can do (cffi:mem-ref ptr :string) 2018-01-06T20:05:21Z jmercouris: Okay great, let me give it a try 2018-01-06T20:05:22Z jmercouris: thanks 2018-01-06T20:05:45Z damke__ quit (Ping timeout: 264 seconds) 2018-01-06T20:05:49Z Shinmera: It took me quite a bit of time to wrangle my brain around how things work with CFFI vs C, so don't worry if you're confused at first. 2018-01-06T20:05:52Z fiddlerwoaroof: doesn't cffi have some way of attaching type information to a pointer? 2018-01-06T20:06:06Z Shinmera: fiddlerwoaroof: Would be news to me 2018-01-06T20:06:16Z jmercouris: Yeah, I was never a good C programmer to begin with, so it's like a double challenge :D 2018-01-06T20:06:34Z fiddlerwoaroof: I haven't used it much, but I got the impression that there's a way to have some sort of type-safety enforced on the CL-side 2018-01-06T20:12:35Z trocado joined #lisp 2018-01-06T20:16:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-06T20:17:30Z marusich quit (Ping timeout: 260 seconds) 2018-01-06T20:18:22Z narendraj9 quit (Ping timeout: 255 seconds) 2018-01-06T20:19:47Z marusich joined #lisp 2018-01-06T20:21:17Z orivej joined #lisp 2018-01-06T20:22:10Z ikopico quit (Read error: Connection reset by peer) 2018-01-06T20:23:57Z Xal left #lisp 2018-01-06T20:24:04Z Xal joined #lisp 2018-01-06T20:24:54Z knobo quit (Read error: No route to host) 2018-01-06T20:25:59Z orivej quit (Ping timeout: 256 seconds) 2018-01-06T20:26:12Z drewc joined #lisp 2018-01-06T20:26:21Z damke_ joined #lisp 2018-01-06T20:27:56Z knobo joined #lisp 2018-01-06T20:28:15Z drewc_ quit (Ping timeout: 256 seconds) 2018-01-06T20:28:33Z damke quit (Ping timeout: 264 seconds) 2018-01-06T20:31:57Z Oladon joined #lisp 2018-01-06T20:32:29Z conceivably joined #lisp 2018-01-06T20:34:14Z ym joined #lisp 2018-01-06T20:35:03Z fikka joined #lisp 2018-01-06T20:36:35Z jmercouris: cffi:foreign-alloc returns some sort of SAP, is this a pointer that I can directly pass to another function, or do I have to do something like cffi:memref to it? 2018-01-06T20:37:46Z Shinmera: It's a pointer 2018-01-06T20:38:03Z jmercouris: Ok great 2018-01-06T20:38:07Z jmercouris: I have some fantastic news then! 2018-01-06T20:38:10Z jmercouris: I GOT IT TO WORK!!! 2018-01-06T20:38:14Z jmercouris: I just tested it 2018-01-06T20:38:18Z Shinmera: (typep (cffi:foreign-alloc :char) 'cffi:foreign-pointer) ;=> T 2018-01-06T20:38:29Z jmercouris: Thanks a lot for your help, may I also list you in the credits or no? 2018-01-06T20:38:35Z Shinmera: Also, as mentioned above, I'd rather advise you to use WITH-FOREIGN-OBJECT as that handles the deallocation on exit for you. 2018-01-06T20:38:40Z Shinmera: jmercouris: Do what you want 2018-01-06T20:38:40Z jmercouris: I know you did not literally contribute source code, but I would still be hitting my head against the wall otherwise 2018-01-06T20:39:04Z jmercouris: K, just wanted to make sure it would not bother you 2018-01-06T20:39:22Z Shinmera: I'm fairly open about my existence :^) 2018-01-06T20:39:24Z jmercouris: Shinmera: I should probably do that, but there are far bigger memory leaks than this 2018-01-06T20:39:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-06T20:39:37Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-06T20:39:43Z jmercouris: This is like a pinhole next to the titanic iceberg that is the deallocation of destroyed webviews :D 2018-01-06T20:39:46Z Shinmera: Well, still better to take care of that now, you know? 2018-01-06T20:39:52Z jmercouris: Yeah 2018-01-06T20:40:14Z Ven`` joined #lisp 2018-01-06T20:42:42Z sonologico joined #lisp 2018-01-06T20:43:04Z safe quit (Read error: Connection reset by peer) 2018-01-06T20:45:17Z marusich quit (Ping timeout: 255 seconds) 2018-01-06T20:46:12Z osune quit (Remote host closed the connection) 2018-01-06T20:46:51Z nowhere_man quit (Ping timeout: 265 seconds) 2018-01-06T20:47:00Z marusich joined #lisp 2018-01-06T20:48:10Z nowhere_man joined #lisp 2018-01-06T20:49:47Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-06T20:51:25Z jfb4 joined #lisp 2018-01-06T20:54:06Z EvW1 quit (Ping timeout: 265 seconds) 2018-01-06T20:55:22Z fikka joined #lisp 2018-01-06T20:55:40Z Karl_Dscc quit (Remote host closed the connection) 2018-01-06T20:58:20Z jfb4 quit (Ping timeout: 260 seconds) 2018-01-06T20:59:00Z sigjuice: is / in package names some sort of convention? e.g. IOLIB/SOCKETS:SOCKET-ADDRESS-FAMILY 2018-01-06T20:59:41Z jmercouris: sigjuice: I think it's for subsystem packages 2018-01-06T20:59:48Z jmercouris: sigjuice: I could be wrong though 2018-01-06T21:00:02Z sigjuice: what is a subsystem package? 2018-01-06T21:00:08Z jfb4 joined #lisp 2018-01-06T21:00:17Z fikka quit (Ping timeout: 248 seconds) 2018-01-06T21:00:57Z trocado: ^_ 2018-01-06T21:01:08Z Shinmera: sigjuice: It's a convention in the sense that "some people like it" 2018-01-06T21:03:42Z shifty joined #lisp 2018-01-06T21:05:10Z sigjuice: Shinmera thanks. that is good to know. 2018-01-06T21:05:11Z trocado quit (Ping timeout: 240 seconds) 2018-01-06T21:10:15Z damke joined #lisp 2018-01-06T21:10:24Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-06T21:10:48Z Ven`` joined #lisp 2018-01-06T21:12:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T21:15:41Z fikka joined #lisp 2018-01-06T21:19:14Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-06T21:19:33Z damke quit (Ping timeout: 264 seconds) 2018-01-06T21:20:23Z fikka quit (Ping timeout: 256 seconds) 2018-01-06T21:23:09Z orivej joined #lisp 2018-01-06T21:23:56Z marcux joined #lisp 2018-01-06T21:24:39Z jmercouris: sigjuice: Just kind of a related package that is part of a bigger system 2018-01-06T21:24:47Z jmercouris: sigjuice: Probably tied to subsystems, just a guess here 2018-01-06T21:25:24Z damke_ joined #lisp 2018-01-06T21:25:27Z jmercouris: I'm saying because I have seen the convention of system x, then system x/y where x/y is a subsystem of x 2018-01-06T21:25:45Z jfb4 joined #lisp 2018-01-06T21:27:32Z sigjuice: Shinmera speaking of things people like: I was skimming through portacle/build/*.sh yesterday and discovered that bash function names can have - in them. So thanks for that too! 2018-01-06T21:27:49Z Shinmera: Sure. 2018-01-06T21:27:59Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-06T21:29:28Z Shinmera: I did take some care to make the build scripts clean, but it could be better still. 2018-01-06T21:29:48Z marcux quit (Quit: Lost terminal) 2018-01-06T21:29:50Z orivej quit (Ping timeout: 260 seconds) 2018-01-06T21:31:27Z marusich quit (Ping timeout: 240 seconds) 2018-01-06T21:32:30Z marusich joined #lisp 2018-01-06T21:34:04Z orivej joined #lisp 2018-01-06T21:35:01Z Oladon quit (Quit: Leaving.) 2018-01-06T21:35:59Z fikka joined #lisp 2018-01-06T21:36:05Z kenster quit (Ping timeout: 240 seconds) 2018-01-06T21:39:15Z Ven`` joined #lisp 2018-01-06T21:41:09Z fikka quit (Ping timeout: 265 seconds) 2018-01-06T21:42:17Z orivej quit (Read error: Connection reset by peer) 2018-01-06T21:42:55Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-06T21:42:58Z Zhivago quit (Ping timeout: 255 seconds) 2018-01-06T21:43:31Z orivej joined #lisp 2018-01-06T21:44:36Z jfb4 joined #lisp 2018-01-06T21:44:55Z aeth quit (Ping timeout: 268 seconds) 2018-01-06T21:45:38Z aeth joined #lisp 2018-01-06T21:46:07Z brendyn joined #lisp 2018-01-06T21:51:09Z orivej quit (Read error: Connection reset by peer) 2018-01-06T21:51:27Z __main__ quit (Ping timeout: 240 seconds) 2018-01-06T21:52:35Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-06T21:53:00Z orivej joined #lisp 2018-01-06T21:53:53Z patche joined #lisp 2018-01-06T21:53:53Z patche is now known as sebbot 2018-01-06T21:54:15Z jfb4 joined #lisp 2018-01-06T21:55:27Z marusich quit (Ping timeout: 240 seconds) 2018-01-06T21:56:18Z fikka joined #lisp 2018-01-06T21:56:40Z marusich joined #lisp 2018-01-06T21:58:15Z wg1024 joined #lisp 2018-01-06T21:59:34Z versatile quit (Quit: WeeChat 1.4) 2018-01-06T22:00:25Z hhdave joined #lisp 2018-01-06T22:00:39Z pierpa joined #lisp 2018-01-06T22:00:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-06T22:06:40Z fikka joined #lisp 2018-01-06T22:10:24Z __main__ joined #lisp 2018-01-06T22:10:31Z orivej quit (Ping timeout: 240 seconds) 2018-01-06T22:11:23Z fikka quit (Ping timeout: 256 seconds) 2018-01-06T22:11:51Z fikka joined #lisp 2018-01-06T22:12:45Z orivej joined #lisp 2018-01-06T22:13:28Z wg1024 quit (Quit: Leaving.) 2018-01-06T22:14:05Z wg1024 joined #lisp 2018-01-06T22:15:57Z mishoo_ quit (Ping timeout: 240 seconds) 2018-01-06T22:17:03Z knobo quit (Ping timeout: 248 seconds) 2018-01-06T22:17:31Z fiddlerwoaroof: Shinmera: asdf now sort of enforces it, though, if you define multiple systems in the same file 2018-01-06T22:18:17Z fiddlerwoaroof: I guess that's not "packages, though" 2018-01-06T22:18:21Z fiddlerwoaroof: ... 2018-01-06T22:18:44Z Shinmera: The only instance in which it enforces it is if you use the package-inferred-system stuff 2018-01-06T22:18:49Z Shinmera: Which I'm not a fan of to begin with 2018-01-06T22:18:55Z mishoo_ joined #lisp 2018-01-06T22:19:02Z knobo joined #lisp 2018-01-06T22:20:19Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-06T22:21:03Z nicdev joined #lisp 2018-01-06T22:21:34Z esthlos quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-06T22:21:38Z nirved quit (Quit: Leaving) 2018-01-06T22:21:57Z esthlos joined #lisp 2018-01-06T22:24:09Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-01-06T22:25:28Z orivej joined #lisp 2018-01-06T22:25:30Z fiddlerwoaroof: If I put a license in my asd file, do I really need to include it in all the project files? 2018-01-06T22:25:33Z nowhere_man quit (Remote host closed the connection) 2018-01-06T22:25:51Z fiddlerwoaroof: I guess most licenses require something like a COPYING file. 2018-01-06T22:25:56Z nowhere_man joined #lisp 2018-01-06T22:26:19Z Shinmera: I'm no lawyer, etc, but I just include a LICENSE file that has the full text. 2018-01-06T22:27:10Z Shinmera: Adding a license header in each file can be useful if you have differing licenses in your project 2018-01-06T22:31:50Z esthlos quit (Remote host closed the connection) 2018-01-06T22:32:07Z esthlos joined #lisp 2018-01-06T22:32:53Z jcowan: COPYING is from the influence of the Gnu Project, but LICENSE is fine 2018-01-06T22:32:56Z Ellusionist joined #lisp 2018-01-06T22:32:57Z jmercouris: +1 on single license per repository, I think it is overkill to have it in each file 2018-01-06T22:33:27Z jmercouris: if I have sections that have different licenses, I have an license id which links to a documents directory containing that other project's license 2018-01-06T22:33:29Z jcowan: Usually what you want to put in each file is just the copyright notice and a pointer to a public copy of the license, since your file may get separated from the project. 2018-01-06T22:33:34Z fiddlerwoaroof: I just sort of wish that the license metadata in the system was sufficient :) 2018-01-06T22:33:54Z Shinmera: I mean 2018-01-06T22:33:55Z jmercouris: If your file get's separated from the project it is up to the person copying to do their due diligence that the software is not licensed somewhere else 2018-01-06T22:34:01Z Shinmera: the chances of you getting sued are practically nil so 2018-01-06T22:34:10Z jcowan: Mini-rant: DO NOT bother updating the copyright date when you touch a file, much less as an annual ritual on all files. Nobody *cares* whether your project goes into the public domain in 90 or 92 years. 2018-01-06T22:34:47Z Shinmera: and if the license note in the ASD is "not sufficient" you retain full copyright anyway, so if anything you'd be able to sue others for using your stuff. 2018-01-06T22:34:59Z jmercouris: jcowan: You know though, that's a good question, how much modification constitutes a new copyright, if I change one line in a 10 line file, are the other 9 lines up for grabs from their original day of release? 2018-01-06T22:35:10Z Shinmera: you put the license in your project clearly so that others are more secure in their rights 2018-01-06T22:35:15Z jcowan: De minimis non curat lex. 2018-01-06T22:35:17Z Shinmera: as in, it is clear to them that they may use your code 2018-01-06T22:35:24Z jcowan: ("The law takes no account of trifles.) 2018-01-06T22:35:29Z jmercouris: You are never ever giving away copyright, only permitting via a license, at least in the US 2018-01-06T22:35:52Z Shinmera: jmercouris: In the US you can sign away your copyright. 2018-01-06T22:35:57Z Shinmera: You cannot do that in the EU 2018-01-06T22:35:59Z jmercouris: Shinmera: I meant via default 2018-01-06T22:36:02Z jcowan: You *can* give away copyright; that's what a contributor license agreement generally does 2018-01-06T22:36:07Z fiddlerwoaroof: Yeah, all employment contracts generally require that 2018-01-06T22:36:14Z jmercouris: Okay let me put it this way 2018-01-06T22:36:18Z fiddlerwoaroof: some of them even claim weekend projects. 2018-01-06T22:36:20Z jcowan: The FSF, for example, keeps copyright on all its projects so that they have the right to sue in respect of any of them. 2018-01-06T22:36:20Z jmercouris: Unless otherwise stated by the copyright holder they retain all copyright 2018-01-06T22:36:30Z Shinmera: Yes 2018-01-06T22:36:33Z jcowan: And while they have never sued anyone, they have most certainly threatened it. 2018-01-06T22:36:54Z jcowan: fiddlerwoaroof: In California such contract terms are void 2018-01-06T22:36:56Z jmercouris: The FSF are well intentioned, but I like them less as time goes on 2018-01-06T22:37:02Z __main__ quit (Read error: Connection reset by peer) 2018-01-06T22:37:08Z jcowan: jmercouris: Why in connection with this? 2018-01-06T22:37:28Z jmercouris: jcowan: Why what? Can you please rephrase the question 2018-01-06T22:37:38Z mgsk: Is it bad "form" to have nested defun's. Should I use flet/labels instead? Or just a matter of taste? 2018-01-06T22:38:03Z jmercouris: mgsk: I don't think it's a big problem, though I've never seen someone do it in source code, I'm sure some have strong opinions 2018-01-06T22:38:17Z rme: defun always makes global functions. if you want local functions, use flet/labels. 2018-01-06T22:38:25Z __main__ joined #lisp 2018-01-06T22:38:51Z rme: So, in a word, yes. 2018-01-06T22:39:06Z rme: It is bad form. 2018-01-06T22:39:06Z mgsk: Got ya. Is it possible to trace flet/labels? 2018-01-06T22:39:57Z hhdave quit (Ping timeout: 240 seconds) 2018-01-06T22:40:18Z fiddlerwoaroof: jcowan: the difficulty is that I'm pretty sure CA law requires that the side project be unrelated to your employer's line of work, so if you work for Google or some other company that does everything, the law doesn't really help (ianal, etc...) 2018-01-06T22:40:22Z Shinmera: mgsk: No 2018-01-06T22:40:27Z jmercouris: Well, my opinion about nested defuns changed a little bit :D 2018-01-06T22:40:35Z hhdave joined #lisp 2018-01-06T22:40:36Z jmercouris: seems to be much different behavior than other languages 2018-01-06T22:40:47Z jcowan: I did work for Google in NY (but CA law was explicitly extended for this case) 2018-01-06T22:40:48Z jmercouris: I would have expected a closure type behavior 2018-01-06T22:40:56Z Shinmera: mgsk: Nested defuns are gross and I've never seen any reason to do it 2018-01-06T22:41:24Z knobo quit (Ping timeout: 265 seconds) 2018-01-06T22:41:33Z Shinmera: If you need to trace, well, make them not local. 2018-01-06T22:41:36Z mgsk: Shinmera: I suppose I could just write a top-level defun for debugging and trace that, and move it out of the way when I'm done. 2018-01-06T22:41:42Z aeth: fiddlerwoaroof: I personally use LICENSE.txt (because there are other valid format objects, e.g. LICENSE.md, which will make the file look better on source-viewing websites) 2018-01-06T22:41:53Z Shinmera: mgsk: There's also good 'ol FORMAT 2018-01-06T22:42:07Z mgsk: ? 2018-01-06T22:42:10Z aeth: COPYING should imo be reserved for GNU licenses (mostly GPL variants) 2018-01-06T22:42:14Z mgsk: oh for debugging 2018-01-06T22:42:21Z broccolistem quit (Quit: WeeChat 2.1-dev) 2018-01-06T22:42:44Z jcowan: fiddlerwoaroof: You're right about that 2018-01-06T22:42:46Z jcowan: Any provision in an employment agreement which provides that an employee shall assign, or offer to assign, any of his or her rights in an invention to his or her employer shall not apply to an invention that the employee developed entirely on his or her own time without using the employer’s equipment, supplies, facilities, or trade secret information except for those inventions that either: 2018-01-06T22:42:46Z jcowan: (1) Relate at the time of conception or reduction to practice of the invention to the employer’s business, or actual or demonstrably anticipated research or development of the employer; or 2018-01-06T22:42:46Z jcowan: (2) Result from any work performed by the employee for his employer. 2018-01-06T22:42:47Z jcowan: (b) To the extent a provision in an employment agreement purports to require an employee to assign an invention otherwise excluded from being required to be assigned under subdivision (a), the provision is against the public policy of this state and is unenforceable. 2018-01-06T22:42:52Z rme: If a local function is big and complicated enough that you want to trace it, it's probably better for it to be a top-level function anyway so that you can test it individually. 2018-01-06T22:42:56Z Shinmera: Please do not paste in here 2018-01-06T22:42:59Z rme: That's what I typically find, anyway. 2018-01-06T22:43:02Z Shinmera: especially not lawyerese 2018-01-06T22:43:15Z jcowan: oops, lost (a) in the copy and paste, it should be at the beginning 2018-01-06T22:43:20Z __main__ quit (Ping timeout: 265 seconds) 2018-01-06T22:43:29Z Shinmera: jcowan: Use paste services if it's more than a line 2018-01-06T22:43:40Z mgsk: rme: I can understand that 2018-01-06T22:43:50Z jcowan: Shinmera: I'm operating with one hand today, or I would have typed it myself 2018-01-06T22:43:55Z jcowan: But okay 2018-01-06T22:44:11Z mgsk wonders what the other hand is doing 2018-01-06T22:44:28Z r___________ joined #lisp 2018-01-06T22:44:46Z r___________ quit (Client Quit) 2018-01-06T22:45:00Z wg1024 left #lisp 2018-01-06T22:45:11Z aeth: mgsk: If you want lots of helper functions, there are two options you should do. Use flet/labels or simply define a %foo %bar and %baz at the top level and the % is a hint to the reader that they're used locally 2018-01-06T22:45:23Z aeth: If you're doing fancy things with them, it looks like you might want the latter style 2018-01-06T22:45:30Z aeth: Both are equally valid, I've used both and I've seen other people use both. 2018-01-06T22:45:44Z r_______ joined #lisp 2018-01-06T22:45:59Z fiddlerwoaroof: I almost always end up breaking out flet/labels into toplevel funcitons 2018-01-06T22:45:59Z Shinmera: I use local functions relatively sparingly because they still create large blocks of stuff 2018-01-06T22:46:08Z aeth: flet/labels might give the compiler more information if you're not inlining them, though. e.g. SBCL will have "deleted unreachable code" warnings with labels if the internal function has branches that aren't used. 2018-01-06T22:46:34Z aeth: But SBCL doesn't really go much deeper than deleting unused branches afaik 2018-01-06T22:46:39Z aeth: Compilers could in theory do more 2018-01-06T22:47:13Z jcowan: In particular, they can be compiled as local jumps-with-renames when in tail position, which is very nice 2018-01-06T22:47:59Z jcowan: one of the cool applications of proper tail calling is state machines, where instead of having a variable encoding the state, you just tail-call the function which is the next state 2018-01-06T22:48:07Z aeth: The advantage of %foos is that you can use it for multiple functions in the same file, which is more common than you think. 2018-01-06T22:48:28Z aeth: jcowan: labels definitely seems very useful and interesting as a compilation target 2018-01-06T22:48:29Z Shinmera: jcowan: We already have tagbody for state machines 2018-01-06T22:48:36Z aeth: jcowan: as an alternative to tagbody 2018-01-06T22:48:57Z jcowan: True, though it isn't as clean: you have to (in effect) tail-call a tag, you cannot call it if that's what you want 2018-01-06T22:49:06Z Xach: I use labels state machines quite a bit. The driver is something like (setf state (funcall state next-input)) 2018-01-06T22:49:07Z mgsk: aeth | The advantage of %foos is that you can use it for multiple functions in the same file, which is more common than you think. 2018-01-06T22:49:07Z aeth: The interesting thing about CL is that there's always 4 ways to do it 2018-01-06T22:49:12Z mgsk: Can you say more about that? I don't follow 2018-01-06T22:49:18Z __main__ joined #lisp 2018-01-06T22:49:29Z jcowan: mgsk: About what? 2018-01-06T22:49:50Z mgsk: Do you mean I might eventually like to have functionality from my label used outside of that label's scope? i.e. use it as a top-level function? 2018-01-06T22:49:59Z mgsk: jcowan that was @ aeth 2018-01-06T22:50:05Z aeth: mgsk: If you write a %foo, %bar, and %baz instead of using labels foo, bar, and baz, and otherwise treat them identically in the function foobar, then if you write a barfoo later on, you can simply use %foo and %baz in the same file, since they're local to the package and not local to the function 2018-01-06T22:50:10Z aeth: Instead of copying and pasting 2018-01-06T22:50:25Z mgsk: (although I didn't much follow what you had to say about the tail call stuff, jcowan :D) 2018-01-06T22:51:08Z jcowan: I have seen this %-convention before, but isn't it redundant to just not exporting the function symbol? 2018-01-06T22:51:27Z mgsk: aeth: of course if I found myself repeating things, then I would make it a more general defun. 2018-01-06T22:51:31Z broccolistem joined #lisp 2018-01-06T22:51:41Z raynold joined #lisp 2018-01-06T22:51:47Z aeth: jcowan: Yes, but in CL you can do some-package::foo and access unexported symbols, so some-package::%foo is telling the user not to do that. 2018-01-06T22:52:02Z mgsk: (if you're usin packaging) 2018-01-06T22:52:10Z Shinmera: jcowan: Typically % signifies that the function might have more context that it needs, or requires additional intimate knowledge. 2018-01-06T22:52:15Z jcowan: IOW they are both permissive controls 2018-01-06T22:52:33Z aeth: http://www.cliki.net/Naming+conventions 2018-01-06T22:52:34Z jcowan: but one is a stronger control than another? 2018-01-06T22:52:35Z Shinmera: jcowan: Rather than something that you might be able to call and is just internal. 2018-01-06T22:52:40Z mishoo_ quit (Ping timeout: 260 seconds) 2018-01-06T22:52:56Z aeth: cliki calls it: "low-level, fast, dangerous function, or Lisp system specific implementation of foo" 2018-01-06T22:53:04Z fiddlerwoaroof: Xach: what does that look like? Every time I've tried that, sbcl optimizes a bunch of the state functions away 2018-01-06T22:53:21Z aeth: But I've seen it used for things like e.g. helper functions for macros 2018-01-06T22:53:22Z jcowan: That says %foo is "low-level, fast, dangerous function, or Lisp system specific implementation of foo". That makes more sense than just "internal". 2018-01-06T22:53:47Z fiddlerwoaroof: Macrolet is pretty cool as a macroexpansion target too. 2018-01-06T22:54:02Z jcowan: Local macros are something I would never use myself 2018-01-06T22:54:19Z aeth: symbol-macrolet is used all of the time, although it's usually used indirectly via with-accessors 2018-01-06T22:54:31Z jcowan: Yes, that's a special case 2018-01-06T22:54:36Z aeth: It turns foo into (foo some-obj) automatically and saves a ton of typing and parentheses 2018-01-06T22:54:40Z fiddlerwoaroof: I don't usually use them in normal code, but they're useful if you have a macro with a complicated syntax 2018-01-06T22:54:48Z fiddlerwoaroof: e.g. something dsl-y 2018-01-06T22:54:49Z r_______ quit (Ping timeout: 260 seconds) 2018-01-06T22:55:08Z fiddlerwoaroof: you just expand to `(macrolet (...subforms) ,@body) 2018-01-06T22:55:43Z aeth: You should use stuff like that with care, though. Advanced macro usage might not be inspectable with M-. 2018-01-06T22:56:06Z fiddlerwoaroof: It is pretty inspectable with C-c M-e 2018-01-06T22:57:24Z fiddlerwoaroof: The slime macrostepper is pretty amazing 2018-01-06T22:58:24Z jcowan: I forget, are local macros allowed to be mutually recursive? 2018-01-06T22:58:59Z fiddlerwoaroof: I think so: I'm pretty sure macroexpansion runs on the generated code until it stops changing 2018-01-06T23:00:10Z aeth: Iirc cl-sdl2 in its event handling code does something in macros where it manually replaces certain things while walking through the source code in with-sdl-event. Actually, it's really c-let in one of the libraries it uses. But, anyway, (event ...) looks like it exists and it really doesn't, and it was painful to figure out what it was doing. No M-., no C-c M-e. 2018-01-06T23:00:23Z aeth: That's the most annoying advanced macro usage I've seen. 2018-01-06T23:01:23Z aeth: Looks like it's really an autowrap thing 2018-01-06T23:01:46Z fiddlerwoaroof: One thing that's nice about racket is that its macros are designed to give a good debugging experience 2018-01-06T23:02:19Z fiddlerwoaroof: I suspect something similar could be possible in CL, if there was a library for a consistent interface for things like source locations 2018-01-06T23:02:47Z bms_ joined #lisp 2018-01-06T23:03:27Z bms_: Hello. Is gitlab.common-lisp.net not working for anyone else? 502 error. 2018-01-06T23:03:55Z mgsk: bms_: 502 2018-01-06T23:03:56Z jmercouris: bms_: Also not working for me 2018-01-06T23:04:12Z jmercouris: bms_: In the future you can: http://isitdownrightnow.com 2018-01-06T23:04:16Z damke joined #lisp 2018-01-06T23:04:25Z Oladon joined #lisp 2018-01-06T23:04:59Z bms_: Okay, thanks. 2018-01-06T23:05:35Z trocado joined #lisp 2018-01-06T23:06:33Z orivej quit (Remote host closed the connection) 2018-01-06T23:06:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-06T23:07:43Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-06T23:08:01Z varjagg quit (Remote host closed the connection) 2018-01-06T23:08:11Z varjagg joined #lisp 2018-01-06T23:09:00Z randomstrangerb joined #lisp 2018-01-06T23:10:46Z orivej joined #lisp 2018-01-06T23:10:53Z bms_ quit (Quit: Leaving) 2018-01-06T23:15:57Z selwyn joined #lisp 2018-01-06T23:16:29Z makomo joined #lisp 2018-01-06T23:17:19Z Ellusionist quit (Ping timeout: 248 seconds) 2018-01-06T23:18:25Z raynold: Ahh it's a wonderful day 2018-01-06T23:18:31Z jcowan: mgsk: https://www.lua.org/pil/6.3.html is a good example of a tail recursive state machine. It's in Lua, but should be readable. 2018-01-06T23:19:12Z bms_ joined #lisp 2018-01-06T23:19:16Z jcowan: "return foo()" is how you mark a tail call in Lua (I'm not sure why Lua doesn't just figure out where they are, but it doesn't) 2018-01-06T23:20:03Z sigjuice: Should &foo be listed as a convention here? http://www.cliki.net/Naming+conventions 2018-01-06T23:20:36Z phoe: sigjuice: naming conventions for what? 2018-01-06T23:20:56Z phoe: &foo means that FOO is a lambda list keyword. and a list of these for portable code is constant. 2018-01-06T23:20:59Z phoe: clhs lambda-list-keywords 2018-01-06T23:20:59Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_lambda.htm 2018-01-06T23:22:51Z phoe: theoretically, implementations may extend this list; practically, your code won't use them anyway. 2018-01-06T23:24:37Z phoe: unless you're willing to do really weird stuff with reader conditionals like #+awesomecl (defun foo (&amazing bar) (frob bar)) 2018-01-06T23:25:21Z sigjuice: &key etc. have special meaning according to the standard. earmuffs don't. 2018-01-06T23:26:05Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-06T23:26:21Z phoe: yes, and therefore it's not really a naming convention per se. 2018-01-06T23:26:27Z phoe: you don't name things with &foo. 2018-01-06T23:26:35Z jcowan: But it is a convention; you can write (defparameter &foo 32) and then &foo is an ordinary variable 2018-01-06T23:26:36Z p_l: sigjuice: earmuffs are social convention 2018-01-06T23:26:46Z phoe: you use the existing set of &allow-other-keys, &aux, &body, &environment, &key, &optional, &rest, and &whole. 2018-01-06T23:26:57Z phoe: jcowan: ew 2018-01-06T23:27:18Z jcowan: I agree, but that's because it violates a (strong) convention, not because it violates a rule of CL 2018-01-06T23:27:19Z phoe: in this case, yes, the convention says, for Naggum's sake don't do shit like this. 2018-01-06T23:27:30Z mgsk: Cheers, jcowan. Reading 2018-01-06T23:27:39Z jcowan: ergo it belongs in the list of conventions 2018-01-06T23:27:39Z phoe: just like (defvar 2018-01-06T23:27:46Z argoneus quit (Ping timeout: 272 seconds) 2018-01-06T23:27:52Z phoe: (defvar |42| "dffsfd") 2018-01-06T23:27:59Z JuanDaugherty quit (Ping timeout: 248 seconds) 2018-01-06T23:28:16Z jcowan: Vile and disgustium 2018-01-06T23:28:22Z jfb4 joined #lisp 2018-01-06T23:28:31Z phoe: jcowan: correct. With a meaning of "don't use it in your naming". 2018-01-06T23:31:13Z argoneus joined #lisp 2018-01-06T23:31:20Z reu quit (Ping timeout: 255 seconds) 2018-01-06T23:31:39Z sigjuice: &key is not a naming convention. It can't really use !key or something else that I feel like. 2018-01-06T23:33:04Z sigjuice: nevermind. I think I have this backwords :p 2018-01-06T23:33:55Z JenElizabeth joined #lisp 2018-01-06T23:34:02Z jstypo quit (Read error: Connection reset by peer) 2018-01-06T23:34:19Z mgsk: jcowan: tail call optimisation seems like such an obvious thing to do. I wonder why python doesn't do it. Maybe it's harder than it looks. 2018-01-06T23:34:36Z mgsk: jcowan: also I don't see the importance of "state machine" in that article, but interesting nevertheless. 2018-01-06T23:34:45Z orivej_ joined #lisp 2018-01-06T23:36:28Z orivej quit (Read error: Connection reset by peer) 2018-01-06T23:37:16Z funnel quit (Ping timeout: 255 seconds) 2018-01-06T23:37:40Z phoe: mgsk: not always obvious. 2018-01-06T23:38:02Z phoe: suppose that you want to see all stack frames for debugging purposes. suddenly, you can't TCO. 2018-01-06T23:40:03Z mgsk: But what if you only write bug-free? 2018-01-06T23:40:24Z jcowan laughs 2018-01-06T23:41:16Z jcowan: http://funcall.blogspot.com/2011/03/tail-recursion-and-debugging.html 2018-01-06T23:42:35Z hhdave quit (Quit: hhdave) 2018-01-06T23:43:24Z quazimodo joined #lisp 2018-01-06T23:44:22Z josemanuel quit (Quit: leaving) 2018-01-06T23:44:56Z hhdave joined #lisp 2018-01-06T23:51:06Z jstypo joined #lisp 2018-01-06T23:54:27Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-06T23:56:24Z jfb4 joined #lisp 2018-01-06T23:56:46Z reu joined #lisp 2018-01-06T23:56:48Z Ellusionist joined #lisp 2018-01-06T23:59:27Z shifty quit (Ping timeout: 248 seconds) 2018-01-06T23:59:32Z selwyn: is there anyone here who is working on gsll? 2018-01-07T00:00:01Z kozy quit (Remote host closed the connection) 2018-01-07T00:00:37Z kozy joined #lisp 2018-01-07T00:00:40Z selwyn: the version on quicklisp uses gsl v2.3 2018-01-07T00:01:07Z selwyn: i added a few small changes to expose v2.4 functionality which i am using in my project 2018-01-07T00:01:37Z bitch quit (Read error: Connection reset by peer) 2018-01-07T00:01:41Z Lord_of_Life quit (Read error: Connection reset by peer) 2018-01-07T00:03:23Z selwyn: specifically relating to hermite polynomials 2018-01-07T00:04:14Z jcowan: not to be confused with hermite crabs 2018-01-07T00:04:22Z selwyn: i would be happy to turn it into a patch, though i wonder if it is planned to move to v2.4 or not 2018-01-07T00:06:09Z selwyn: also the 'gitlab common lisp' is down, hopefully this is temporary 2018-01-07T00:07:52Z hhdave quit (Quit: hhdave) 2018-01-07T00:10:49Z Ellusionist quit (Ping timeout: 265 seconds) 2018-01-07T00:12:52Z z3t0 joined #lisp 2018-01-07T00:12:56Z z3t0 quit (Client Quit) 2018-01-07T00:12:57Z wxie joined #lisp 2018-01-07T00:13:09Z jmercouris: You know, I'm not sure sure common-lisp.net has any active administration, I emailed about getting a mailing list like 2 months or so ago, and had no response 2018-01-07T00:15:38Z convexferret quit (Ping timeout: 252 seconds) 2018-01-07T00:15:38Z bailon quit (Ping timeout: 252 seconds) 2018-01-07T00:16:44Z rgrau quit (Ping timeout: 252 seconds) 2018-01-07T00:17:12Z Lord_of_Life joined #lisp 2018-01-07T00:17:12Z Lord_of_Life quit (Changing host) 2018-01-07T00:17:12Z Lord_of_Life joined #lisp 2018-01-07T00:17:12Z Lord_of_Life quit (Changing host) 2018-01-07T00:17:12Z Lord_of_Life joined #lisp 2018-01-07T00:17:17Z alms_clozure quit (Ping timeout: 252 seconds) 2018-01-07T00:17:17Z nimiux quit (Ping timeout: 252 seconds) 2018-01-07T00:17:36Z alms_clozure joined #lisp 2018-01-07T00:17:50Z akkad quit (Ping timeout: 252 seconds) 2018-01-07T00:17:55Z pierpa quit (Quit: Page closed) 2018-01-07T00:18:06Z dmiles: jmercouris: might try #common-lisp.net 2018-01-07T00:18:21Z micro quit (Ping timeout: 264 seconds) 2018-01-07T00:18:24Z rgrau joined #lisp 2018-01-07T00:19:12Z nimiux joined #lisp 2018-01-07T00:20:45Z convexferret joined #lisp 2018-01-07T00:22:42Z bailon joined #lisp 2018-01-07T00:24:18Z bitch joined #lisp 2018-01-07T00:25:35Z felideon quit (Read error: No route to host) 2018-01-07T00:29:19Z trocado quit (Ping timeout: 248 seconds) 2018-01-07T00:29:40Z nowhere_man quit (Ping timeout: 265 seconds) 2018-01-07T00:29:56Z akkad joined #lisp 2018-01-07T00:31:19Z Baggers joined #lisp 2018-01-07T00:31:33Z varjagg quit (Remote host closed the connection) 2018-01-07T00:31:44Z varjagg joined #lisp 2018-01-07T00:34:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T00:36:55Z varjagg quit (Ping timeout: 265 seconds) 2018-01-07T00:40:37Z nowhere_man joined #lisp 2018-01-07T00:41:16Z jmercouris: thanks for the tip, at this point though I've kinda resigned to just running my own server at some point if nEXT gets big enough 2018-01-07T00:41:40Z fittestbits joined #lisp 2018-01-07T00:41:45Z pilfink joined #lisp 2018-01-07T00:43:01Z bms_: jmercouris: You make the nEXT browser? I've been hearing about it for a while and now that I'm taking a look at it, it looks really nice. 2018-01-07T00:44:05Z jmercouris: bms_ Well, it isn't just me, but I am the main author yeah 2018-01-07T00:44:11Z jmercouris: thank you for the kind words 2018-01-07T00:44:59Z bms_: Sure thing. I'm setting up my new laptop right now and think it might be a good opportunity to use nEXT as much as I can. 2018-01-07T00:45:52Z jmercouris: Are you on Linux or MacOS? 2018-01-07T00:46:01Z bms_: Linux. 2018-01-07T00:46:22Z jmercouris: Okay, well, a few things remain till I merge GTK in main branch, but I will keep this channel updated, so you'll definitely see it! 2018-01-07T00:46:33Z Baggers: jmercouris: keep up the good work, since vimperator died I'm very tempted to switch 2018-01-07T00:46:47Z bms_: Okay, thanks. 2018-01-07T00:46:47Z jmercouris: Baggers: Thank you :) I hope it will meet your expectations! 2018-01-07T00:48:01Z p_l: to be truly switchable it need µBlock Origin and/or µMatrix :) 2018-01-07T00:48:27Z jmercouris: Ah yeah, that's a challenge that because I'd need to do stuff for the network stack on both Cocoa/Linux, unless I do some naieve js blocking, which is of course possible 2018-01-07T00:48:56Z jmercouris: Belive me, I wish I had an ad-blocker every day 2018-01-07T00:49:09Z jmercouris: It's pretty high up on there on my todo list lol 2018-01-07T00:49:57Z fikka joined #lisp 2018-01-07T00:50:05Z selwyn quit (Remote host closed the connection) 2018-01-07T00:51:46Z turkja joined #lisp 2018-01-07T00:52:11Z _krator44 quit (Ping timeout: 240 seconds) 2018-01-07T00:54:46Z Oladon quit (Quit: Leaving.) 2018-01-07T00:54:51Z fikka quit (Ping timeout: 268 seconds) 2018-01-07T00:56:45Z damke quit (Ping timeout: 264 seconds) 2018-01-07T01:01:08Z funnel joined #lisp 2018-01-07T01:03:42Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-07T01:10:18Z fikka joined #lisp 2018-01-07T01:11:28Z wxie quit (Quit: Bye.) 2018-01-07T01:15:21Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T01:20:24Z Oladon joined #lisp 2018-01-07T01:22:20Z jmercouris: jasom: Are you there? 2018-01-07T01:22:35Z ykoda joined #lisp 2018-01-07T01:23:10Z markong quit (Ping timeout: 260 seconds) 2018-01-07T01:23:12Z _krator44 joined #lisp 2018-01-07T01:28:43Z ykoda quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-01-07T01:30:19Z Xach: Hmm, is there a way to have 600.0 print as 600 but 600.12345 print as 600.12? 2018-01-07T01:30:33Z fikka joined #lisp 2018-01-07T01:30:36Z Xach: I can think of many ways to clean up after 2018-01-07T01:31:26Z jmercouris: minion: memo for jasom: lparallel waiting on a promise for js seems to freeze execution, what could possibly be occuring? I guess that the callback is executed on the same thread, and thus never returns since force is blocking: https://gist.github.com/6ced6e99634f2c10994753c679bacdb2 2018-01-07T01:31:26Z minion: Remembered. I'll tell jasom when he/she/it next speaks. 2018-01-07T01:33:33Z qjube quit (Remote host closed the connection) 2018-01-07T01:35:23Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T01:38:29Z gilberth joined #lisp 2018-01-07T01:39:08Z FreeBirdLjj joined #lisp 2018-01-07T01:42:00Z ykoda joined #lisp 2018-01-07T01:42:48Z red-dot joined #lisp 2018-01-07T01:43:27Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-07T01:45:00Z gilberth: Hi there --- this is off topic --- but is anybody digging the Meltdown exploit? I have not seen any PoC yet, that would allow me to read^Wmeasure more than the L1 cache. 2018-01-07T01:46:49Z Xach: gilberth: this is not a good place 2018-01-07T01:47:28Z gilberth: Xach: Sorry, but I figure, that I'll find the best hackers in #lisp. 2018-01-07T01:47:31Z bms_ quit (Read error: Connection reset by peer) 2018-01-07T01:48:01Z bms_ joined #lisp 2018-01-07T01:48:31Z kenster joined #lisp 2018-01-07T01:49:01Z Xach: gilberth: They are here to discuss common lisp 2018-01-07T01:49:41Z gilberth: Xach: Sorry again, I am pretty aware of this. 2018-01-07T01:50:50Z fikka joined #lisp 2018-01-07T01:51:10Z jcowan quit (Ping timeout: 260 seconds) 2018-01-07T01:53:57Z sebbot quit (Ping timeout: 240 seconds) 2018-01-07T01:54:53Z itruslove quit (Ping timeout: 255 seconds) 2018-01-07T01:55:42Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T01:55:47Z giraffe quit (Ping timeout: 256 seconds) 2018-01-07T02:01:28Z fikka joined #lisp 2018-01-07T02:01:30Z Baggers quit (Remote host closed the connection) 2018-01-07T02:05:37Z dddddd quit (Remote host closed the connection) 2018-01-07T02:06:10Z d4ryus1 joined #lisp 2018-01-07T02:06:11Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T02:08:57Z d4ryus quit (Ping timeout: 240 seconds) 2018-01-07T02:13:10Z patche joined #lisp 2018-01-07T02:13:10Z patche is now known as sebbot 2018-01-07T02:14:25Z craft00 joined #lisp 2018-01-07T02:14:33Z jmercouris: I have a piece of code that I am trying to make synchronous, so in webkit you call something called https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-run-javascript which you pass a callback to 2018-01-07T02:14:50Z jmercouris: so at the conclusion of the JS execution, this callback will be invoked 2018-01-07T02:15:02Z craft00: hello, anybody know about common lisp game in irc now? 2018-01-07T02:15:06Z jmercouris: From what I can tell, the js call, and the callback appear to occur on the same thread 2018-01-07T02:15:15Z Karl_Dscc joined #lisp 2018-01-07T02:15:28Z jmercouris: craft00: Like game engines or? 2018-01-07T02:15:45Z giraffe joined #lisp 2018-01-07T02:15:52Z craft00: no, just a chanel 2018-01-07T02:15:53Z jmercouris: Anyways, I tried to use a promise in order to wait for the callback to be invoked, this caused my system to hang 2018-01-07T02:16:01Z jmercouris: craft00: lispgames I think is the name 2018-01-07T02:16:05Z jmercouris: Something like that 2018-01-07T02:16:55Z aeth: Yes, it's #lispgames 2018-01-07T02:17:18Z craft00: I just try to join it, but false 2018-01-07T02:17:29Z jmercouris: maybe there are two pound signs? 2018-01-07T02:17:42Z aeth: It might require registered nicks because of the recent spam attack on Freenode 2018-01-07T02:17:47Z craft00: now I need a tutorial about game programming by common lisp 2018-01-07T02:18:00Z jmercouris: craft00: That really depends on which framework/path you go 2018-01-07T02:18:09Z jmercouris: There's no de-facto lisp game engine standard 2018-01-07T02:18:21Z jmercouris: It's not like C# or something 2018-01-07T02:18:46Z craft00: something for me to begin programming games? 2018-01-07T02:18:47Z aeth: There are 3 2D and 3 3D engines/frameworks that are released to some degree, and probably just as many that are unreleased. 2018-01-07T02:19:12Z craft00: ok, bad thing 2018-01-07T02:19:15Z itruslove joined #lisp 2018-01-07T02:19:27Z jmercouris: So, anyways, the issue is, webkit_web_view_run_javascript will invoke the callback, so how can I make sure it is on a new thread so that my function can complete upon the js callback? 2018-01-07T02:19:43Z aeth: 2D: https://github.com/vydd/sketch https://gitlab.com/dto/xelf/ https://borodust.org/projects/trivial-gamekit/ 2018-01-07T02:19:56Z aeth: 3D: https://github.com/cbaggers/cepl https://github.com/BradWBeer/clinch https://github.com/borodust/cl-bodge 2018-01-07T02:20:13Z aeth: All of them use OpenGL (via cl-opengl), most of them use SDL2 through cl-sdl2, either directly or indirectly 2018-01-07T02:20:18Z craft00: a documentation? 2018-01-07T02:20:25Z aeth: Some of the higher level ones are based on the lower level ones, too 2018-01-07T02:20:42Z aeth: Documentation is the weak point of the Lisp community. 2018-01-07T02:20:45Z aeth: Some of these might have documentation 2018-01-07T02:20:58Z aeth: Some of these have videos 2018-01-07T02:21:15Z fikka joined #lisp 2018-01-07T02:21:45Z craft00: detail? 2018-01-07T02:22:58Z jmercouris quit (Remote host closed the connection) 2018-01-07T02:23:33Z jmercouris joined #lisp 2018-01-07T02:23:40Z craft00: how do i start with lisp game programming? 2018-01-07T02:23:57Z aeth: #lispgames would probably be more helpful 2018-01-07T02:24:55Z craft00: #lispgames Cannot join channel (+r) - you need to be identified with services 2018-01-07T02:24:59Z craft00: how can i do that? 2018-01-07T02:25:05Z aeth: You need to register with nickserv 2018-01-07T02:25:22Z aeth: https://freenode.net/kb/answer/registration 2018-01-07T02:25:53Z jmercouris: it's such a pain to register on freenode, documentation out of date on so many sources 2018-01-07T02:26:06Z aeth: the top result is out of date information that's marked as such! 2018-01-07T02:26:09Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T02:26:18Z aeth: my link is the #2 result, which isn't marked as out of date (doesn't mean it's not out of date) 2018-01-07T02:27:54Z Karl_Dscc quit (Remote host closed the connection) 2018-01-07T02:28:36Z aeth: I don't like the traditional IRC way of identifying. Fortunately, you can set IRC to auto identify you on connection, at least on Freenode 2018-01-07T02:29:05Z aeth: The traditional way, of messaging NickServ, can lead to you accidentally messaging Nick "Serv " 2018-01-07T02:29:56Z eazar001 joined #lisp 2018-01-07T02:31:07Z aeth: It's up there with shell scripting as being very easy to shoot yourself in the foot with a simple typo. 2018-01-07T02:31:36Z OS-26949 joined #lisp 2018-01-07T02:32:22Z jmercouris: That's true, autoidentification is nice 2018-01-07T02:33:00Z p_l: SASL on IRC is nice 2018-01-07T02:33:32Z craft00: that's nice, thank you all 2018-01-07T02:35:42Z jmercouris: No problem :) 2018-01-07T02:41:34Z fikka joined #lisp 2018-01-07T02:46:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T02:47:46Z Oladon quit (Quit: Leaving.) 2018-01-07T02:49:05Z marusich quit (Ping timeout: 240 seconds) 2018-01-07T02:53:42Z wxie joined #lisp 2018-01-07T02:54:10Z FreeBirdLjj joined #lisp 2018-01-07T02:58:59Z makomo quit (Ping timeout: 252 seconds) 2018-01-07T03:01:50Z jmercouris quit (Remote host closed the connection) 2018-01-07T03:01:51Z fikka joined #lisp 2018-01-07T03:03:08Z damke joined #lisp 2018-01-07T03:03:22Z craft00 quit (Quit: Page closed) 2018-01-07T03:05:21Z ykoda quit (Remote host closed the connection) 2018-01-07T03:05:22Z cromachina quit (Read error: Connection reset by peer) 2018-01-07T03:05:46Z cromachina joined #lisp 2018-01-07T03:06:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T03:16:47Z pilfink quit (Ping timeout: 248 seconds) 2018-01-07T03:17:35Z jcowan joined #lisp 2018-01-07T03:22:09Z fikka joined #lisp 2018-01-07T03:26:55Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T03:29:30Z beach` joined #lisp 2018-01-07T03:34:08Z beach quit (Ping timeout: 272 seconds) 2018-01-07T03:40:24Z craft00 joined #lisp 2018-01-07T03:40:53Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-07T03:41:48Z FreeBirdLjj joined #lisp 2018-01-07T03:42:03Z craft00: Hi, I need some help for my problem. when I installing "http://bodge.borodust.org/dist/org.borodust.bodge/archive/bodge-blobs-windows-x86-64-20171212213226.tgz">, It was an error look up: debugger invoked on a QL-HTTP::END-OF-DATA in thread #: Condition QL-HTTP::END-OF-DATA was signalled. How do I fix that? 2018-01-07T03:42:26Z fikka joined #lisp 2018-01-07T03:43:18Z Xach: craft00: in my experience, it is usually because of a http proxy or something similar. 2018-01-07T03:43:35Z craft00: and? 2018-01-07T03:43:58Z Xach: craft00: and you need to avoid or work with the proxy. do you have a proxy involved that you know of? 2018-01-07T03:44:27Z craft00: Oh no, I don't 2018-01-07T03:44:55Z craft00: So I need to connect a proxy and download again? 2018-01-07T03:45:07Z Xach: craft00: No. If you don't have a proxy, it must be something else. 2018-01-07T03:45:31Z craft00: something what? 2018-01-07T03:45:37Z Xach: Else. 2018-01-07T03:46:23Z Xach: craft00: Do you have other computers you could try it from? 2018-01-07T03:46:42Z craft00: No, I don't 2018-01-07T03:46:54Z Xach: I've been able to use it successfully myself, I am using a mac. 2018-01-07T03:47:19Z craft00: rich man 2018-01-07T03:47:22Z Xach: craft00: Where are you located? Is there a national proxy or firewall? 2018-01-07T03:47:23Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T03:47:43Z craft00: I'm using linux debian 2018-01-07T03:47:45Z Xach: Might there be an anti-virus program intercepting http traffic? 2018-01-07T03:48:14Z craft00: No, I don't thing so. 2018-01-07T03:48:27Z Xach: craft00: Does it happen if you try the same command again? 2018-01-07T03:48:29Z jcowan quit (Remote host closed the connection) 2018-01-07T03:48:37Z craft00: something bad happend but I don't know how to fix it :( 2018-01-07T03:48:54Z craft00: I tried 2018-01-07T03:48:57Z Xach: craft00: Where are you located? Is the network relatively slow or prone to interruption? 2018-01-07T03:48:59Z jcowan joined #lisp 2018-01-07T03:49:44Z craft00: 8.8.8.8: icmp_seq=24933 ttl=48 time=32.1 ms 64 bytes from 8.8.8.8: icmp_seq=24934 ttl=48 time=32.2 ms 64 bytes from 8.8.8.8: icmp_seq=24935 ttl=48 time=32.1 ms 64 bytes from 8.8.8.8: icmp_seq=24936 ttl=48 time=32.1 ms 64 bytes from 8.8.8.8: icmp_seq=24937 ttl=48 time=32.1 ms 64 bytes from 8.8.8.8: icmp_seq=24938 ttl=48 time=32.3 ms 64 bytes from 8.8.8.8: icmp_seq=24939 ttl=48 time=32.0 ms 64 bytes from 8.8.8.8: icmp_seq=24940 ttl=48 t 2018-01-07T03:49:59Z Xach: That does not have much meaning 2018-01-07T03:50:02Z craft00: I don't think my network is slow 2018-01-07T03:50:21Z craft00: why not? 2018-01-07T03:50:24Z Xach: craft00: What command did you use when you got that error? 2018-01-07T03:50:47Z Xach: craft00: 8.8.8.8 is regionally routed 2018-01-07T03:50:52Z craft00: ctrl-C and try again 2018-01-07T03:51:23Z Xach: Pinging bodge.borodust.org would be more relevant 2018-01-07T03:52:57Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-07T03:53:30Z FreeBirdLjj joined #lisp 2018-01-07T03:53:38Z craft00: root [~] ping bodge.borodust.org PING bodge.borodust.org (128.199.46.62) 56(84) bytes of data. 64 bytes from borodust.org (128.199.46.62): icmp_seq=1 ttl=49 time=1191 ms 2018-01-07T03:53:49Z craft00: well, it's slow 2018-01-07T03:53:52Z craft00: bad thing 2018-01-07T03:53:53Z milanj quit (Quit: This computer has gone to sleep) 2018-01-07T03:54:28Z Xach: that could be a source of trouble. 2018-01-07T03:54:37Z craft00: any solution to fix it? 2018-01-07T03:55:05Z Xach: When I had a similar problem I paid to use a content-delivery network. But that is up to borodust. 2018-01-07T03:55:20Z Xach: I don't know what you can do on your end, sorry. 2018-01-07T03:55:57Z craft00: ok friend 2018-01-07T03:56:04Z Xach: Well, I do have one idea! 2018-01-07T03:56:10Z Xach: It is not great but it might work. 2018-01-07T03:57:31Z Xach: craft00: Do you have a ~/quicklisp/dists/org.borodust.bodge/archives/ directory? 2018-01-07T03:58:14Z craft00: yes, so? 2018-01-07T03:58:20Z thinkpad quit (Quit: lawl) 2018-01-07T03:58:40Z Xach: craft00: from that directory, the following command might install everything you need 2018-01-07T03:59:02Z Xach: for f in $(awk '{print $2}' < ../releases.txt );do curl -O $f;done 2018-01-07T03:59:14Z craft00: oh dear, I understand, I will do it 2018-01-07T04:02:48Z fikka joined #lisp 2018-01-07T04:03:11Z ckonstanski joined #lisp 2018-01-07T04:05:05Z Xach: craft00: how is it going? 2018-01-07T04:05:48Z craft00: I trying to download it and I will install it by hand :)) 2018-01-07T04:06:11Z craft00: few seconds to done 2018-01-07T04:07:09Z emacsoma` joined #lisp 2018-01-07T04:07:27Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T04:08:50Z Xach: after those files are fetched, quicklisp should be able to operate on them as though they were downloaded with quicklisp. 2018-01-07T04:08:57Z orivej_ quit (Ping timeout: 256 seconds) 2018-01-07T04:11:11Z megalography quit (Ping timeout: 248 seconds) 2018-01-07T04:13:09Z craft00: I got it :))), thank to you 2018-01-07T04:13:21Z craft00: ~/quicklisp/dists/org.borodust.bodge/archives/ directory thank for it 2018-01-07T04:16:00Z megalography joined #lisp 2018-01-07T04:16:38Z FreeBird_ joined #lisp 2018-01-07T04:18:10Z thinkpad joined #lisp 2018-01-07T04:19:24Z knobo joined #lisp 2018-01-07T04:19:35Z turkja quit (Ping timeout: 268 seconds) 2018-01-07T04:19:55Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-07T04:23:02Z fikka joined #lisp 2018-01-07T04:25:21Z ckonstanski left #lisp 2018-01-07T04:27:57Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T04:28:17Z orivej joined #lisp 2018-01-07T04:34:08Z thinkpad quit (Quit: lawl) 2018-01-07T04:35:18Z beach` is now known as beach 2018-01-07T04:36:57Z damke quit (Ping timeout: 264 seconds) 2018-01-07T04:38:41Z fortitude__ joined #lisp 2018-01-07T04:38:56Z bms_ quit (Ping timeout: 248 seconds) 2018-01-07T04:39:04Z damke joined #lisp 2018-01-07T04:39:39Z beach: Good morning everyone! 2018-01-07T04:40:37Z jasom: Good morning 2018-01-07T04:40:37Z minion: jasom, memo from jmercouris: lparallel waiting on a promise for js seems to freeze execution, what could possibly be occuring? I guess that the callback is executed on the same thread, and thus never returns since force is blocking: https://gist.github.com/6ced6e99634f2c10994753c679bacdb2 2018-01-07T04:41:10Z bms_ joined #lisp 2018-01-07T04:41:17Z jasom: minion: memo for jmercouris: I thought I checked that we aren't on the GTK thread for my macro; did I PR an older version? 2018-01-07T04:41:18Z minion: Remembered. I'll tell jmercouris when he/she/it next speaks. 2018-01-07T04:42:57Z fortitude_ quit (Ping timeout: 256 seconds) 2018-01-07T04:43:23Z fikka joined #lisp 2018-01-07T04:44:54Z OS-26949 quit (Quit: Leaving) 2018-01-07T04:45:00Z schoppenhauer quit (Ping timeout: 260 seconds) 2018-01-07T04:46:39Z pransninja joined #lisp 2018-01-07T04:46:58Z schoppenhauer joined #lisp 2018-01-07T04:47:06Z pransninja: It is crazy how simple lisp is yet it looks so complicated. 2018-01-07T04:47:23Z beach: Doesn't look complicated to me. 2018-01-07T04:47:27Z pransninja: before learning lisp, (map 'vector #'1+ *v*) would have looked so strange to me. 2018-01-07T04:47:31Z pransninja: come on. 2018-01-07T04:47:37Z pransninja: Does that read simple to you? 2018-01-07T04:47:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T04:47:59Z bms_: It looks weird if you don't know it, definitely. 2018-01-07T04:48:15Z pransninja: It is a simple construct, but every token requires understanding what it means in the given context. 2018-01-07T04:48:34Z beach: pransninja: That's the same thing with every language. Nothing special here. 2018-01-07T04:48:37Z pransninja: I think that is the *hard* part of lisp, it is rather contextual, in contrast to more _modern_ languages. 2018-01-07T04:48:50Z fortitude_ joined #lisp 2018-01-07T04:49:38Z bms_: Well, it's really only complicated because it looks nothing like most other languages. S-exps probably scare some people off. 2018-01-07T04:49:42Z beach: Clearly, if you have studied the same family of languages for a long time and then you discover that there are languages that are different, then they look hard to begin with. Again, nothing new. 2018-01-07T04:49:54Z pransninja: No. 2018-01-07T04:49:58Z pransninja: beach: That is not the point. 2018-01-07T04:50:08Z pjb: pransninja: and map(VECTOR,add1,v); wouldn't have looked strange to you? 2018-01-07T04:50:10Z wxie quit (Remote host closed the connection) 2018-01-07T04:51:30Z jmercouris joined #lisp 2018-01-07T04:51:32Z Bike: ', #', and ** almost always mean the same things 2018-01-07T04:51:40Z Bike: regardless of context i mean 2018-01-07T04:52:05Z fortitude__ quit (Ping timeout: 240 seconds) 2018-01-07T04:52:22Z fortitude__ joined #lisp 2018-01-07T04:52:25Z bms_: It depends on where you're coming from. If you started in C-style languages (like I did), map(VECTOR, add1, v); looks normal. 2018-01-07T04:52:37Z Bike: sure, but it's this complaint about context i don't get 2018-01-07T04:52:39Z pjb: Anyways, the problem with other languages is that you assume the context and meaning of what you read, and you're wrong almost all the time, without knowing it. 2018-01-07T04:52:40Z jmercouris: jasom: this isn't for your macro, it's for the js execution which I also need to synchronize 2018-01-07T04:52:40Z minion: jmercouris, memo from jasom: I thought I checked that we aren't on the GTK thread for my macro; did I PR an older version? 2018-01-07T04:52:46Z Bike: those things don't have different meanings in different contexts 2018-01-07T04:53:08Z jmercouris: jasom: I tried following your approach (at least I think I did), but couldn't get execution to not freeze 2018-01-07T04:53:10Z Bike: you have to know what MAP is going to do with them, but that's just a matter of knowing what one function does, which is a pretty common thing across programming languages 2018-01-07T04:53:13Z pjb: for example, people believe that in C a+b will add two integers. Wrong! 2018-01-07T04:53:21Z jmercouris: pjb: How so? 2018-01-07T04:53:51Z pransninja: Bike: I think lisp reuses many of the tokens in strange ways. 2018-01-07T04:53:58Z pransninja: * has so many meanings lisp. 2018-01-07T04:54:02Z pjb: if a and b are unsigned, it's a modular operation, otherwise it's unspecified when the sum cannot be held in the signed result type. 2018-01-07T04:54:04Z fikka joined #lisp 2018-01-07T04:54:15Z pransninja: Where in most languages, it just *, maybe there is the ** power, and C-block comments, but * is just that. 2018-01-07T04:54:20Z pransninja: Also, - means mines. 2018-01-07T04:54:22Z beach: jmercouris: And one could be a pointer. 2018-01-07T04:54:37Z pransninja: So a-b is a minus b, but in lisp, it is not minus at all. 2018-01-07T04:54:39Z Bike: in lisp it's just a part of a token, though those tokens indeed have different conventional meanings 2018-01-07T04:54:48Z jasom: jmercouris: you will deadlock if you block on a promise that is submitted to the current thread 2018-01-07T04:54:49Z pransninja: Yes. 2018-01-07T04:54:55Z Bike: so it's not that things are different in different contexts, it's just that lisp is lexed differently than you're used to 2018-01-07T04:54:55Z fortitude_ quit (Ping timeout: 248 seconds) 2018-01-07T04:54:59Z jmercouris: jasom: Right, that makes sense of course 2018-01-07T04:55:11Z pransninja: Whatever conventional or part of language makes little different that same token means different things. 2018-01-07T04:55:16Z jasom: jmercouris: easiest way to check is to just add a line that prints the name of the current thread before you block on the promise. Then when you deadlock the last name printed is what caused the issue 2018-01-07T04:55:17Z jmercouris: jasom: The issue therefore how I might get the callback to invoke on a separate thread 2018-01-07T04:55:18Z pjb: pransninja: * is a symbol, it has only few meanings: as a function it's the multiplication, as a variable, it's most recent primary result, in type specifiers, it denotes some type or dimension wild-card. 2018-01-07T04:55:38Z pjb: pransninja: what you don't belong is that *a* is not different from xax syntactically. 2018-01-07T04:55:43Z Bike: #' and ' however don't have as many meanings, and mean the same thing practically anywhere in a lisp program except in a string 2018-01-07T04:55:43Z pransninja: pjb: in variable names, as *ear-muffs* it is something else. 2018-01-07T04:55:48Z jmercouris: jasom: (print bt:thread-name)? 2018-01-07T04:55:56Z pransninja: What other language exists where * can exist in so many different ways? 2018-01-07T04:55:58Z pjb: No, it doesn't mean anything in *eaer-muffs*! 2018-01-07T04:56:00Z jasom: if you know it's issuing on the same thread, no need to do a promise 2018-01-07T04:56:02Z jasom: jmercouris: yeah 2018-01-07T04:56:05Z jmercouris: I am pretty confident that is the issue, but I guess it is best to check 2018-01-07T04:56:12Z jasom: jmercouris: probably ad a (Terpri) as well 2018-01-07T04:56:25Z Bike: pransninja: any other language that allows * as part of a token, probably. this seems like a mere convention difference than something very deep. 2018-01-07T04:56:35Z pjb: pransninja: read chapter 2. 2018-01-07T04:56:40Z pransninja: Bike: Can you give me an example? 2018-01-07T04:56:48Z Bike: of another language that has * as part of tokens? 2018-01-07T04:56:50Z jmercouris: jasom: Okay, I still need some way to block though, because even though it may be on the same thread, C is invoking the callback at some time after my function already returns 2018-01-07T04:56:58Z pransninja: pjb: I am on chapter 11, so obviously I know lisp pretty damn well ;) 2018-01-07T04:56:59Z jasom: parjanya: it's like FOO_BAR for constants in C; 2018-01-07T04:57:04Z pransninja: Bike: Can you name one? 2018-01-07T04:57:12Z knobo quit (Ping timeout: 268 seconds) 2018-01-07T04:57:19Z Bike: not off the top of my head, no. that wasn't really my point, though. 2018-01-07T04:57:25Z pransninja: Also, a language where allows - in names. 2018-01-07T04:57:32Z pransninja: Bike: I think there isn't any. 2018-01-07T04:57:36Z jmercouris: jasom: See this line here: https://github.com/nEXT-Browser/nEXT/blob/gtk/next/source/gtk/gtk.lisp#L227 2018-01-07T04:57:41Z Bike: you were phrasing your complaint as some deep property of language design but it sounds like it's coming down to using characters in ways you aren't used to. 2018-01-07T04:57:43Z jmercouris: Or rather that function 2018-01-07T04:57:46Z pransninja: Which makes lisp/scheme et al more contextual. 2018-01-07T04:57:51Z Bike: how is it "contextual"? 2018-01-07T04:57:54Z jasom: jmercouris: you can't do it blocking if you only have an async call and you are already running in the thread in which it will be run 2018-01-07T04:58:12Z jasom: jmercouris: call/cc would allow this, but it exists not in common lisp 2018-01-07T04:58:18Z Bike: in C "-" means things in different contexts, and can't be part of a token except maybe if it's in a trigraph 2018-01-07T04:58:27Z Bike: part of a symbol, rather 2018-01-07T04:58:27Z damke_ joined #lisp 2018-01-07T04:58:32Z pransninja: Bike: different things, as in? 2018-01-07T04:58:35Z bms_: I think Apple's Swift might allow * in variable names. It allows emoji (who knows why?) and I don't remember * meaning anything else in Swift. 2018-01-07T04:58:44Z pjb: there are no symbols in C, only identifiers and other such tokens. 2018-01-07T04:58:45Z jmercouris: jasom: What if I were to spawn a new thread for the call and have the promise in the main thread or something? 2018-01-07T04:58:53Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T04:58:53Z FreeBird_ quit (Remote host closed the connection) 2018-01-07T04:58:57Z bms_: Of course, I could be wrong, I never went too far with Swift. 2018-01-07T04:59:07Z Bike: in C it can be the - binary operator, the - unary operator, --, ??- 2018-01-07T04:59:22Z Bike: it's a bit confusing at first, but usually doesn't present a problem, at least speaking for myself 2018-01-07T04:59:29Z pjb: -= 2018-01-07T04:59:33Z pjb: -> 2018-01-07T04:59:37Z jasom: jmercouris: there is no need to do a callback at all if you are already in the main thread, right? 2018-01-07T04:59:43Z Bike: * of course means both multiplication and dereference, which does sometimes confuse me, but i don't think this is a major flaw or anything 2018-01-07T04:59:48Z pransninja: pjb: okay, maybe you have a point. 2018-01-07T05:00:06Z pransninja: But I still feel like lisp overloads many of the tokens. 2018-01-07T05:00:09Z Bike: though the lexer hack could be considered a real flaw. 2018-01-07T05:00:13Z pransninja: but that is my impression so far anyways. 2018-01-07T05:00:21Z damke quit (Ping timeout: 264 seconds) 2018-01-07T05:00:24Z resttime: It's contextual in C++ too I think as well since you can overload operators 2018-01-07T05:00:28Z jmercouris: jasom: I'm not opting for doing a callback, that's the nature of the webkit api 2018-01-07T05:00:38Z pransninja: resttime: Yes. true. 2018-01-07T05:00:59Z pransninja: I think I am over stating how contextual stuff are in lisp compared to other languages. 2018-01-07T05:01:05Z aindilis` quit (Ping timeout: 256 seconds) 2018-01-07T05:01:15Z pransninja: But good lord (map 'vector #'1+ *v*) still looks weird to me. :P 2018-01-07T05:01:24Z Bike: i don't understand the "contextual" part. in lisp, outside of strings and stuff * is always part of a symbol. as it happens, * is a symbol with pretty different meanings from *v*, but that's just because they're different names. "print" and "function" mean pretty different things as well, sort of deal 2018-01-07T05:02:04Z pjb: pransninja: you can write it as: (map (quote vector) (function add1) v) 2018-01-07T05:02:10Z beach: pransninja: Yes, we get it. Just don't imagine this is an objective observation. It is all relative to what you already know. 2018-01-07T05:02:25Z craft00 quit (Quit: Page closed) 2018-01-07T05:02:40Z pjb: pransninja: with: (defun add1 (x) (1+ x)) (let ((v *v*)) (map (quote vector) (function add1) v)) 2018-01-07T05:02:45Z gilberth quit (Ping timeout: 265 seconds) 2018-01-07T05:02:50Z pransninja: pjb: But is that lisp "proper"? 2018-01-07T05:02:55Z pjb: yes. 2018-01-07T05:02:58Z pransninja: I still have to be able to read how people write lisp 2018-01-07T05:03:01Z jmercouris: jasom: Something like this: https://gist.github.com/6d6983aae8d089861805defe5b055ad8 2018-01-07T05:03:11Z jmercouris: Am I making sense or is this not possible? 2018-01-07T05:03:16Z aeth: pransninja: *v* is supposed to look weird to you. You shouldn't use *...*s unless you have a good reason, which is why they stand out 2018-01-07T05:03:40Z fikka joined #lisp 2018-01-07T05:03:40Z aeth: 1+ is perfectly natural. 1- is... unfortunate. (1- x) looks like (1 - x) but is really (x - 1) 2018-01-07T05:03:45Z loli: isn't *..* because the variables are dynamic 2018-01-07T05:03:51Z loli: and thus denote they have special scoping 2018-01-07T05:03:56Z pransninja: aeth: I thought globals were meant to have earmuffs? 2018-01-07T05:03:56Z aeth: inc and dec probably would have been more natural than 1+ and 1-, and would have had parallels in incf and decf 2018-01-07T05:04:03Z jasom: jmercouris: there's no point to the (force promise) at the end 2018-01-07T05:04:08Z aeth: pransninja: dynamically scoped globals 2018-01-07T05:04:16Z pransninja: so defvars? 2018-01-07T05:04:20Z aeth: and defparameter 2018-01-07T05:04:30Z pransninja: cool beans 2018-01-07T05:04:33Z pransninja: back to reading I go 2018-01-07T05:04:37Z pransninja: you guys are a good bunch. 2018-01-07T05:04:40Z jasom: jmercouris: you have to force the promise on a new thread, and if you are, then it's no longer synchronouse 2018-01-07T05:04:41Z aeth: Implementations can have lexically scoped globals, they're just not portable 2018-01-07T05:05:05Z jmercouris: jasom: In the example I gave, web-view-execute will return BEFORE the callback is invoked 2018-01-07T05:05:07Z aeth: And you can have local dynamically scoped things, they're just not useful unless you're overriding a global, e.g. you can do this: (let ((*standard-output* some-stream)) ...) 2018-01-07T05:05:12Z pransninja: Note: guys was used in a general sense and I do not condone the exclusion of people based on gender or other kind of identity. 2018-01-07T05:05:14Z pransninja: lel. 2018-01-07T05:05:20Z aeth: The point of these variables are so you don't need to pass streams all the way down the call stack to where you actually print 2018-01-07T05:05:29Z aeth: And you can just use format t or whatever if you rebind *standard-output* 2018-01-07T05:05:32Z jmercouris: jasom: At least I believe it to be so 2018-01-07T05:05:37Z aeth: (At least, as long as you stay wtihin a thread. Threads make them complicated.) 2018-01-07T05:05:48Z jmercouris: jasom: Is there no way that I may get the return value of the callback within web-view-execute? 2018-01-07T05:06:40Z jasom: jmercouris: it *must* return before the callback is invoked *if* you are in the thread in which it will be invoked 2018-01-07T05:07:18Z jasom: if you can manage to not ever call web-view-execute from the thread in which the callback will execute then you can make it blocking 2018-01-07T05:07:18Z jmercouris: jasom: Ok, let me verify that assumption first, one moment please 2018-01-07T05:07:46Z jmercouris: jasom: I'm afraid if I change the context of that call, then the callback will also execute in that new thread 2018-01-07T05:08:13Z jmercouris: which is why I wanted a macro like (execute-in-new-thread) or something where I could do the webkit-web-view-run-javascript call 2018-01-07T05:08:45Z fikka quit (Ping timeout: 263 seconds) 2018-01-07T05:09:16Z jasom: jmercouris: the callback can only be scheduled in a thread that is running an event loop for webkit 2018-01-07T05:09:23Z jpx__ is now known as jpxe 2018-01-07T05:10:23Z jasom: jmercouris: there's no magic here 2018-01-07T05:10:24Z pransninja: What is the difference between Vectors and Lists? #() vs '()? 2018-01-07T05:10:35Z jasom: pransninja: one is a linked list, the other is a vector 2018-01-07T05:10:39Z loli: they are different data structures 2018-01-07T05:10:46Z jasom: pransninja: as in the CS 101 definition of those two terms 2018-01-07T05:10:52Z pransninja: lists are linked list? 2018-01-07T05:10:55Z jasom: pransninja: yes 2018-01-07T05:10:56Z loli: yes 2018-01-07T05:11:00Z Bike: the links are cons cells. 2018-01-07T05:11:01Z pransninja: righto. 2018-01-07T05:11:02Z jmercouris: pransninja: They don't have to be, but in the context of lisp, yes 2018-01-07T05:11:11Z pransninja: So very expensive to walk through compared to vectors? 2018-01-07T05:11:31Z loli: arbitrary access is expensive, not walking through 2018-01-07T05:11:37Z jmercouris: pransninja: Not necessarily, a linked list may have a data structure on top like a skip list, or something 2018-01-07T05:11:37Z pransninja: jasom: CS 101 covers vectors and lists in a language agnostic way? ;) 2018-01-07T05:11:39Z loli: lists are very easy to deconstruct 2018-01-07T05:11:39Z Bike: linear rather than constant time random access. 2018-01-07T05:11:46Z Bike: pransninja: well, hopefully 2018-01-07T05:12:03Z jmercouris: pransninja: Or it could be an arraylist 2018-01-07T05:12:07Z jasom: pransninja: walking them is identical asymptotically, random access is slow on lists 2018-01-07T05:12:19Z loli: arraylists are really just extensible arrays 2018-01-07T05:12:26Z jmercouris: loli: mostly 2018-01-07T05:12:37Z Bike: the implementation putting something on top of basic lists in lisp is unlikely, because it does have to be possible to access them as a bunch of conses 2018-01-07T05:12:50Z jasom: pransninja: fair enough, I think that was a 200 level class 2018-01-07T05:13:43Z jasom is old so college just feels like all the same year now 2018-01-07T05:13:57Z aeth: There is one additional thing about vectors vs. lists. Lists contain elements of type T. Arrays can be specialized to contain elements of one type (usually numeric, with the exception of characters, and implementation-specific with the exception of bits and characters) 2018-01-07T05:14:10Z pransninja: jasom: ;) I think while vector is expected to be sequential, list can be other than linked list, in general cs sense. 2018-01-07T05:14:26Z loli: it's a shame I can't type the elements of my lists in CL 2018-01-07T05:14:32Z aeth: (a vector in CL is just a 1D array) 2018-01-07T05:14:46Z jasom: pransninja: right, which is why I specifically said "linked list" 2018-01-07T05:14:52Z nika joined #lisp 2018-01-07T05:14:58Z pransninja: righto 2018-01-07T05:15:07Z pransninja: So stick with vector unless you need list? 2018-01-07T05:15:13Z pransninja: or the other way around? 2018-01-07T05:15:23Z loli: use what is natural for the algorithm 2018-01-07T05:15:26Z pransninja: or if you need random access, vector, otherwise list? 2018-01-07T05:15:56Z jasom: pransninja: if you want to share structure, add to the beginning and don't need random access, list. Otherwise vector 2018-01-07T05:15:58Z pransninja: loli: Some thumb rules help the mere mortal. 2018-01-07T05:16:16Z loli: I tend to use structs, and lists mostly as I adhere to the functional style 2018-01-07T05:16:20Z jasom: pransninja: also lisp has easy destructuring of lists builtin. apply, destructurig-bind &c. 2018-01-07T05:16:31Z aeth: loli: You can type them, with structs! Just create a new cons element whose car contains something of a given type and whose cdr must be (or null your-new-cons-type). Unfortunately, I tested this in CCL, ECL, and SBCL, and this only works perfectly on SBCL. For the other two, one doesn't type check in the constructor and the other doesn't type check on access (I forget which) 2018-01-07T05:16:51Z loli: that's a shame 2018-01-07T05:16:55Z loli: I'll keep that in mind 2018-01-07T05:16:58Z aeth: If you do some implementation-specific workarounds for ECL and CCL, you can get it working everywhere. 2018-01-07T05:17:01Z loli: when I make adt's I really want to type my lists 2018-01-07T05:17:09Z Oladon joined #lisp 2018-01-07T05:17:11Z jasom: pransninja: one of the reason for using functional types in clojure was to allow what lisp traditionally does with lists to work on other datatypes 2018-01-07T05:17:19Z sebbot quit (Ping timeout: 248 seconds) 2018-01-07T05:18:03Z pransninja: aeth: That is more or less how PHP implements it's infamous bucket of everything arrays. 2018-01-07T05:18:11Z pransninja: Though, in C, obviously. 2018-01-07T05:18:13Z jasom: loli: yeah, the lack of recursive algebraic types in lisp is a real limitation. It's easy to see that this falls out of the fact that lisp is untyped; you can't efficiently check the type of (CONS X Y) for recursive types unless you already strongly know the value of Y, but as lisp is untyped you can't strongly know the type of Y 2018-01-07T05:18:25Z JenElizabeth quit (Remote host closed the connection) 2018-01-07T05:18:32Z loli: aeth: I might be able to try a work around some time for this, the only issue is that I don't get reduce or mapcar from it 2018-01-07T05:18:36Z loli: jasom: I found a nice work around 2018-01-07T05:18:42Z JenElizabeth joined #lisp 2018-01-07T05:18:53Z loli: I use deftype, with many structs and an ending symbol 2018-01-07T05:19:00Z loli: I can write defmethods for all of them 2018-01-07T05:19:15Z aeth: (Btw, by everywhere I do mean everywhere, btw, not just ECL and CCL, since combined they fail in every possible way I can think of, so you'd just need to keep a list of where a given implementation fails.) 2018-01-07T05:19:59Z loli: yes and you can do #+ to fix it 2018-01-07T05:20:07Z loli: if you find a fix for every way it is borken 2018-01-07T05:20:09Z loli: broken* 2018-01-07T05:20:20Z jmercouris: jasom: they are indeed on the same thread 2018-01-07T05:20:40Z loli: jasom: I might make a macro that automatically generates an ADT. It wouldn't be hard 2018-01-07T05:20:46Z aeth: Right, so you make the constructor name %make-foo in implementations where the type-checking in the constructor is broken and for those implementations only define an inline make-foo that calls %make-foo after type checking. 2018-01-07T05:20:59Z loli: and have it's own special little defmethod 2018-01-07T05:21:03Z aeth: And you can do something similar for the accessors. 2018-01-07T05:21:25Z pransninja: How do you properly indent (map 'vector #'(lambda which I want to be multi line) *v*) 2018-01-07T05:21:33Z pransninja: Does the *v*) go in it's own line? 2018-01-07T05:21:48Z jasom: pransninja: yes 2018-01-07T05:21:50Z aeth: pransninja: each thing should go on its own line 2018-01-07T05:22:07Z loli: the statement is short enough that I put it on one line, if the lambda gets big 1 line for each argument 2018-01-07T05:22:12Z jasom: pransninja: anything that would be indented lower than the current line should get a newline 2018-01-07T05:22:15Z loli: I keep the first argument with the function name 2018-01-07T05:22:21Z pransninja: So a line for 'vector too? 2018-01-07T05:22:25Z jasom: pransninja: with the exception of ) of course 2018-01-07T05:22:25Z pransninja: and not have it next to map? 2018-01-07T05:22:32Z pransninja: jasom: of course. :0 2018-01-07T05:22:35Z pransninja: :)* 2018-01-07T05:22:35Z jasom: pransninja: that's more a style question 2018-01-07T05:22:43Z pransninja: righto. 2018-01-07T05:22:52Z pransninja: Is there a paste that you guys prefer? 2018-01-07T05:22:55Z jasom: pransninja: I've seen that both ways. 2018-01-07T05:23:04Z pransninja: online paste, that is. 2018-01-07T05:23:22Z jasom: pransninja: the former official paste got spammed to death, so whatever now. gist will syntax highlight lisp, so it's what I use, but anything is fine 2018-01-07T05:23:42Z pransninja: jasom: I want to know what happened, haha. 2018-01-07T05:23:54Z fikka joined #lisp 2018-01-07T05:23:56Z aeth: pransninja: The capcha was weak, it was just a 4-5 digit number 2018-01-07T05:24:00Z pransninja: "Due to continued abuse, this service has been disabled" what is the story? 2018-01-07T05:24:07Z pransninja: oh 2018-01-07T05:24:11Z pransninja: that should be easy to fix? 2018-01-07T05:24:20Z jasom: pransninja: 1000s of spam pastes per day. The maintainer no longer used it 2018-01-07T05:24:31Z Bike: if you have suggestions, you can give them in what was it, #common-lisp.net? 2018-01-07T05:24:33Z aeth: pransninja: There are *many* ways to fix it. The maintainer is just not interested in fixing it, I guess 2018-01-07T05:24:48Z pransninja: maybe I can do this as a pet project. 2018-01-07T05:24:55Z pransninja: will the let me use the subdomain? 2018-01-07T05:25:00Z jmercouris: pransninja: Let's not get ahead of ourselves here 2018-01-07T05:25:14Z pransninja: Who manages lisp.org? 2018-01-07T05:25:36Z aindilis joined #lisp 2018-01-07T05:25:56Z pransninja: I have some ideas, I could try compiling sbcl to asm.js and run it on the browser. 2018-01-07T05:26:01Z aeth: The home page has just been a tribute to McCarthy since 2011. https://lisp.org/ 2018-01-07T05:26:06Z pransninja: Ka bom! magical lisp paste. 2018-01-07T05:26:30Z aeth: pransninja: asm.js is no longer recommended, web assembly is the new way forward 2018-01-07T05:26:40Z aeth: iirc, web assembly does not yet support GCed languages, but it's on the roadmap 2018-01-07T05:27:13Z aeth: Clasp (for LLVM), ECL (maybe?), and ABCL (there is a JVM->WASM effort) should be the easiest to port, not SBCL 2018-01-07T05:27:25Z pransninja: You know John MacCarthy's eyebrows reminds me of Oscar Wilde's "Life imitates Art far more than Art imitates Life". 2018-01-07T05:27:33Z pransninja: PS. I have very similar eyebrows, so I get to make a joke. 2018-01-07T05:27:50Z pransninja: aeth: I know llvm has been ported, so probably clasp is the way to go then. 2018-01-07T05:28:08Z aeth: My guess is that Clasp and ABCL should be the easiest, followed by ECL. 2018-01-07T05:28:22Z smasta joined #lisp 2018-01-07T05:28:24Z pransninja: That is a solid guess, I think. 2018-01-07T05:28:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T05:28:32Z pransninja: pretty sure I saw an llvm port somewhere. 2018-01-07T05:28:47Z rme: I have every confidence that web assembly will end up being a mostly-unsuitable target for a Common Lisp compiler. 2018-01-07T05:28:47Z pransninja: Yup https://kripken.github.io/llvm.js/demo.html 2018-01-07T05:28:49Z pransninja: been done. 2018-01-07T05:29:25Z aeth: ABCL will be easier than Clasp, probably. 2018-01-07T05:29:28Z pransninja: rme: Why is that? 2018-01-07T05:30:05Z igemnace joined #lisp 2018-01-07T05:30:11Z rme: For the same reason llvm is a mostly-unsuitable target for it. 2018-01-07T05:30:34Z pransninja: Wait, if you can already run LLVM ASM on Browser (it is an llvm vm, I believe), then wouldn't Clasp be the easiest? 2018-01-07T05:30:35Z aeth: pransninja: CL needs things that C doesn't need, like an efficient way to handle multiple return values. 2018-01-07T05:30:57Z pransninja: aeth: So, does that means, Go would have trouble too? 2018-01-07T05:30:59Z rme: The people involved either don't know CL, or don't care, or both. 2018-01-07T05:31:10Z pransninja: well. 2018-01-07T05:31:21Z pransninja: I think a good solution should work with just about any language. 2018-01-07T05:31:24Z pransninja: kinda like JVM. 2018-01-07T05:31:33Z pransninja: Not that JVM is great, but you can compile just about any language to jvm. 2018-01-07T05:31:36Z aeth: rme: that's strange since wasm uses s-expressions and Scheme also has multiple return values 2018-01-07T05:31:45Z aeth: Are they clojurists or something? 2018-01-07T05:31:54Z Bike: disadvantage number one would be needing the clasp runtime, which is several hundred MB 2018-01-07T05:31:55Z rme: Even the JVM isn't a totally great target. Clojure doesn't have tail-call elimination because of JVM limitations. 2018-01-07T05:31:58Z Bike: ecl is smaller, i guess 2018-01-07T05:32:27Z rme: aeth: I suppose they could have improved it since I last looked, but I'm not too hopeful. 2018-01-07T05:32:44Z jasom: pransninja: go is easier because the number of return values is known at the time of call 2018-01-07T05:32:57Z pransninja: talking of which 2018-01-07T05:33:01Z SuperJen joined #lisp 2018-01-07T05:33:09Z pransninja: how do you even do multiple returns in CL? 2018-01-07T05:33:10Z jasom: pransninja: e.g. you must do x,y = foo() you can't do x = foo() and implicitly discard the second value in go 2018-01-07T05:33:16Z jasom: clhs values 2018-01-07T05:33:17Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_values.htm 2018-01-07T05:33:18Z jasom: pransninja: ^^ 2018-01-07T05:33:22Z FreeBirdLjj joined #lisp 2018-01-07T05:33:34Z jasom: pransninja: floor/round/truncate all return multiple values 2018-01-07T05:33:46Z aeth: In addition, multiple values are pretty useful 2018-01-07T05:33:46Z pransninja: I see 2018-01-07T05:33:52Z rme: That makes imperative loops in Clojure look kind of strange (they have to use the recur form). But Clojure people will just say that you are loser if you write an imperative loop, anyway. :-) 2018-01-07T05:33:53Z pransninja: they sure damn are 2018-01-07T05:34:00Z aeth: I use multiple values to write pure functions for mathematical vectors of sizes 3 and 4 2018-01-07T05:34:17Z aeth: Vectors would otherwise either have to cons or modify 2018-01-07T05:34:22Z loli: does clojure have an imperative loop, their loop is really recursion 2018-01-07T05:34:23Z fikka joined #lisp 2018-01-07T05:34:24Z jmercouris: jasom: is there no way around this problem? 2018-01-07T05:34:29Z jmercouris: jasom: I can't think of anything 2018-01-07T05:34:30Z loli: it shuns imperative solutions due to being functional 2018-01-07T05:35:09Z jasom: jmercouris: it's bad design to require an asynchronous call from the thread that is going to do what you want. I can't think of away around, other than moving all of your code out of that thread 2018-01-07T05:35:16Z pransninja: loli: If they don't have tail call elimination, recursion for loop sounds like trouble. 2018-01-07T05:35:25Z pransninja: as rme said. 2018-01-07T05:35:32Z jmercouris: jasom: But it is not my design :( 2018-01-07T05:35:33Z loli: parjanya: they can simulate loops 2018-01-07T05:35:37Z jasom: jmercouris: I know 2018-01-07T05:35:50Z loli: for example Let over lambda puts TCO in CL through a macro with gotos 2018-01-07T05:36:12Z loli: it should be considered reucrsion, just the user doing the compilers job 2018-01-07T05:36:12Z jasom: they don't use recursion for loops in clojure their loop is not recursion 2018-01-07T05:36:29Z pransninja: Yeah, I hope so. 2018-01-07T05:36:30Z loli: it is not a form of recursion? 2018-01-07T05:36:35Z JenElizabeth quit (Ping timeout: 265 seconds) 2018-01-07T05:36:49Z jasom: loli: it sort of is, but it's an explicit loop construct 2018-01-07T05:36:49Z pransninja: Because without tail call elimination, how do you even loop with recursion? 2018-01-07T05:37:12Z loli: pransninja: you bake it in with gotos, it's what compilers do for languages with TCO 2018-01-07T05:37:20Z loli: lambda the ultimate goto talks about that 2018-01-07T05:37:28Z aindilis quit (Remote host closed the connection) 2018-01-07T05:37:34Z pransninja: loli: sauce? 2018-01-07T05:37:38Z jasom: (loop BINDINGS ... (recur new binding values)) <-- it looks like that 2018-01-07T05:38:00Z loli: yes it basically does a labels 2018-01-07T05:38:05Z loli: and you call it right away 2018-01-07T05:38:06Z jasom: that is *clearly* a looping construct 2018-01-07T05:38:12Z loli: pransninja: http://library.readscheme.org/page1.html 2018-01-07T05:38:33Z pransninja: loli: Thanks! 2018-01-07T05:38:35Z loli: jasom: would you consider recursion a looping construct 2018-01-07T05:38:42Z loli: if so then you're correct 2018-01-07T05:38:44Z wxie joined #lisp 2018-01-07T05:39:03Z jasom: loli: this is just GOTO + bindings, which is much more limited than recursion 2018-01-07T05:39:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T05:39:24Z jasom: loli: it is isomorphic only to self-recursive tail calls. That's a loop. 2018-01-07T05:39:28Z loli: I see 2018-01-07T05:39:29Z loli: thank you 2018-01-07T05:39:41Z pransninja: i think if the stack grows, then it is not a loop. Isn't that the difference of loop and recursion? 2018-01-07T05:39:46Z jasom: pransninja: nope 2018-01-07T05:39:46Z loli: pransninja: https://github.com/thephoeron/let-over-lambda/blob/master/let-over-lambda.lisp#L313 2018-01-07T05:40:08Z loli: this is the let over lambda code for the Tail call in CL 2018-01-07T05:40:09Z jasom: pransninja: all tail-calls in scheme are guaranteed to not grow the stack 2018-01-07T05:40:32Z aindilis joined #lisp 2018-01-07T05:40:44Z jasom: pransninja: most compiled tail calls in most CL implementations with high optimization values will also not grow the stack. 2018-01-07T05:41:00Z jasom: pransninja: even GCC won't allocate a new stack frame for a tail call on high optimization levels 2018-01-07T05:41:03Z pransninja: So it becomes a loop? ;) 2018-01-07T05:41:16Z pransninja: I know that is binding the rules, but how do you define recursion vs iteration? 2018-01-07T05:41:21Z jasom: pransninja: it's arbitrary control transfer; it's only a loop if it's a recursive tail call 2018-01-07T05:41:25Z pransninja: at least, in general sense? 2018-01-07T05:41:32Z jasom: pransninja: recursive is self-referential 2018-01-07T05:41:52Z pransninja: Hmmm. 2018-01-07T05:42:13Z pransninja: loli: I will read through! and try to understand it. 2018-01-07T05:42:32Z jasom: pransninja: If the result of F is defined in terms of F (including using functions that might be defined in terms of F) then it is recursive 2018-01-07T05:43:01Z jasom: this is why I think clojure's loop is not recursive; there is no defined in terms of self, it's rather an explicit "do another iteration" 2018-01-07T05:43:23Z loli: jasom: would you consider fold a looping mechnism instead of recursion? 2018-01-07T05:43:36Z jasom: but it's a well known theorum that one can always transform a loop into a tail-recursive form 2018-01-07T05:43:54Z jasom: loli: inasmuch as HoF are either, map/fold &c. I would call looping 2018-01-07T05:43:57Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-07T05:44:03Z rme: I look at it as a question of notation. 2018-01-07T05:44:22Z rme: When the computational process runs in constant space, that's iterative. 2018-01-07T05:44:39Z jasom: loli: obviously they could be defined either way. 2018-01-07T05:44:54Z loli: yes I choose to view them as recursion due to no mutation 2018-01-07T05:45:00Z loli: that's where I tend to place the term looping 2018-01-07T05:45:12Z pjb: loli: if you have a defective keyboard, it's easy enough to get a good one and change it. 2018-01-07T05:45:30Z pjb: loli: so now you may be able to type your list elements. 2018-01-07T05:45:39Z loli: thank you pjb 2018-01-07T05:45:53Z loli: that would solve that problem 2018-01-07T05:45:53Z rme: Whether that process is notated using tagbody and go or as a tail-recursive function call makes no difference. 2018-01-07T05:45:58Z pjb: loli: I would advise a Das Keyboard, but there are cheaper options. 2018-01-07T05:46:22Z jasom: loli: (loop repeat 5 collect 'a) ; <-- no mutation there; is it recursive? 2018-01-07T05:46:46Z loli: does "loop" not mutate things as it does this computation? 2018-01-07T05:46:51Z loli: let me see the expansion 2018-01-07T05:46:54Z pjb: loli: unspecified. 2018-01-07T05:46:59Z jasom: loli: that's up to the implementation 2018-01-07T05:47:01Z loli: it can ve either then 2018-01-07T05:47:05Z loli: can be either* 2018-01-07T05:47:12Z pjb: You cannot rely on one expansion, another implementation may do it otherwise. 2018-01-07T05:47:27Z jasom: loli: let's look at the disassembly of a tail-call in haskell and see if it mutates registers :) 2018-01-07T05:47:36Z pjb: or the RAM! 2018-01-07T05:47:37Z loli: I'm sure it does 2018-01-07T05:47:38Z loli: haha 2018-01-07T05:47:43Z jasom: loli: therefor it's not recursive! 2018-01-07T05:47:49Z pjb: unless you have a lambda calculus processor. 2018-01-07T05:48:00Z loli: ahh but jasom, nothing is recursive 2018-01-07T05:48:20Z sebbot joined #lisp 2018-01-07T05:48:31Z loli: so just put a not infront of my statements 2018-01-07T05:48:33Z loli: and it's all fine 2018-01-07T05:48:49Z jasom: any definition that relies on what the implementation does is not useful for discussing recursion vs iteration. A compiler is free to transform a tail-recursive function to a loop or not (in most languages) and that ought not change if it's considered recursive 2018-01-07T05:48:54Z loli: also jasom you forgot one thing, you don't tail call in Haskell 2018-01-07T05:48:59Z loli: you let laziness take you away 2018-01-07T05:49:04Z jmercouris: jasom: I do not think there is literally any way around this, and if there is, I cannot think of i 2018-01-07T05:49:07Z jmercouris: think of it* 2018-01-07T05:49:23Z jasom: jmercouris: what code will actually need the result? 2018-01-07T05:49:45Z jmercouris: jasom: Anythink can call web-view-execute to get the JS result 2018-01-07T05:49:59Z jmercouris: jasom: For example, in link-hints, it gets an array of links, and associated hints that it uses 2018-01-07T05:50:06Z jasom: jmercouris: hmmm 2018-01-07T05:50:17Z jasom: jmercouris: you may have to change web-view-execute to CPS style 2018-01-07T05:50:31Z pransninja: jasom: So that means that the discussion of stack in the context of recursion vs iteration is out of scope? 2018-01-07T05:50:38Z jmercouris: jasom: I might, but how will that work within the synchronous cocoa context? 2018-01-07T05:50:47Z jasom: pransninja: In my opinion, yes 2018-01-07T05:50:55Z jasom: jmercouris: just call the callback immediately 2018-01-07T05:51:22Z pransninja: jasom: Fair point, considering that most languages let the compiler do whatever it fancies. 2018-01-07T05:51:41Z jmercouris: jasom: Feels so wrong, there must be a way 2018-01-07T05:51:47Z jasom: pransninja: scheme and python are the two that immediately come to mind for having requirements 2018-01-07T05:52:07Z jasom: jmercouris: what happens if the javascript has a delay in it? The whole thread hangs for that time? 2018-01-07T05:52:16Z jasom: jmercouris: surely cocoa has an asynchronous interface? 2018-01-07T05:52:24Z pransninja: jasom: for low level details of implementing recursion and iteration? 2018-01-07T05:52:28Z jmercouris: jasom: the newest one, but since ffigen is broken I am using a quite old api 2018-01-07T05:52:29Z jasom: pransninja: yes 2018-01-07T05:52:41Z rme: However, the whole point of fussing over "proper tail recursion" is that it is safe for space. 2018-01-07T05:52:46Z jasom: jmercouris: *sigh* the world is truely an imperfect place 2018-01-07T05:52:47Z pransninja: jasom: interesting. 2018-01-07T05:53:17Z jasom: pransninja: scheme requires all tail-calls to consume zero extra space. Python reuires all calls to allocate a stack frame. 2018-01-07T05:53:22Z jmercouris: jasom: Seems like I will have to do CPS 2018-01-07T05:53:46Z pransninja: jasom: to what end goal? specially the Python's requirement? 2018-01-07T05:53:56Z jmercouris: I'll probably introduce some macro like (with-java-script-result (script) (...forms)) 2018-01-07T05:53:58Z jasom: pransninja: the BDFL thinks it hinders debuggability 2018-01-07T05:54:21Z fikka joined #lisp 2018-01-07T05:54:38Z pransninja: jasom: How is it different than debugging a simple goto loop? 2018-01-07T05:54:54Z loli: taking away stack frames is something he doesn't want to do 2018-01-07T05:54:58Z pransninja: Or is that where the BDFL aspect comes into question ;) 2018-01-07T05:55:17Z jasom: pransninja: that's where the BDFL aspect comes in, though you can find his reasonings on the mailing list I'm sure 2018-01-07T05:55:54Z pransninja: I like the discussions of language design very interesting. 2018-01-07T05:56:16Z pransninja: It is interesting because there is so much opinions in what ought to be mostly objective. 2018-01-07T05:56:22Z rme: I've worked with a client who wanted ccl never to do tail calls for debugging reasons. 2018-01-07T05:56:33Z loli: rme: but what about debug 3? 2018-01-07T05:56:36Z pransninja: But then again, it is design, and that says a lot about the opinions aspect. 2018-01-07T05:56:46Z loli: doesn't that just remove TCO? 2018-01-07T05:56:53Z rme: They wanted it as standard optimize settings. 2018-01-07T05:57:11Z jasom thought ccl had lots of optimization tunables 2018-01-07T05:57:19Z jasom: or am I thinking of sbcl? 2018-01-07T05:57:21Z loli: huh, that's rather strange 2018-01-07T05:57:30Z Bike: "I want to tune how things are optimized, but without actually touching the dials"? 2018-01-07T05:57:39Z fortitude__ is now known as fortitude_ 2018-01-07T05:57:41Z rme: There's a thing called a compiler policy in ccl that lets you tweak stuff like that on a more fine-grained basis. 2018-01-07T05:58:40Z rme: Clients. Can't live with 'em, can't live without 'em. 2018-01-07T05:59:11Z pransninja: Is SBCL hastables O(1)? 2018-01-07T05:59:14Z loli: huh, did that effect your solutions much 2018-01-07T05:59:17Z loli: yes pransninja 2018-01-07T05:59:18Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T05:59:26Z loli: I assume you mean for lookup 2018-01-07T05:59:31Z pransninja: So a real hash table. :) 2018-01-07T05:59:31Z pransninja: Yes. 2018-01-07T06:01:34Z damke joined #lisp 2018-01-07T06:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T06:03:59Z sebbot quit (Ping timeout: 256 seconds) 2018-01-07T06:04:46Z rme: For small amounts of data, though, searching an alist or a plist might be faster than a hash table lookup. 2018-01-07T06:05:34Z rme: It's interesting how CL exposes these performance trade-offs. 2018-01-07T06:05:36Z pransninja: Is the only way to call '(format t "much wow") is to eval it? 2018-01-07T06:06:31Z Bike: you mean like you have a function that receives that list? 2018-01-07T06:06:37Z nika quit 2018-01-07T06:07:00Z pransninja: rme: I will read about them, currently playing around with hashmaps, and true to most other things, I like how it gives you perf trade-offs with different :test funcs. 2018-01-07T06:07:27Z pransninja: Bike: As in, I save that on a variable and later execute it. 2018-01-07T06:07:53Z Bike: that's what eval does, sure. but whether you HAVE to use eval depends on what other forms you want to allow 2018-01-07T06:08:05Z pransninja: say I have (defvar wow '(format t "wow")) 2018-01-07T06:08:07Z loli: for example you can stick it in a macro 2018-01-07T06:08:16Z loli: and no funcall would be needed 2018-01-07T06:08:17Z pransninja: and now the time has come to say print wow. 2018-01-07T06:08:31Z Bike: what i'm saying is, if you have (defvar wow '(let ((x "wow")) (format t x))), does that have to work as well? 2018-01-07T06:08:49Z loli: (macrolet ((te () '(format t "wow"))) (te)) 2018-01-07T06:09:00Z pransninja: Yes, so not really looking for macros. 2018-01-07T06:09:21Z Bike: so, yes, if you want to evaluate an arbitrary expression you have to evaluate it, basically. 2018-01-07T06:09:29Z pransninja: I am looking into the eval business right now 2018-01-07T06:09:31Z Bike: though i'd caution against designing your system in this way. 2018-01-07T06:09:38Z pransninja: so want to see how else you can execute what eval does. 2018-01-07T06:09:58Z loli: eval should be used very sparingly 2018-01-07T06:09:59Z pransninja: Just a learning exercise in eval, not being evil with my code, just yet anyways ;) 2018-01-07T06:10:19Z Bike: (eval x) is mostly equivalent to (funcall (compile nil `(lambda () ,x))), for one 2018-01-07T06:10:59Z pransninja: Ah. 2018-01-07T06:11:00Z Bike: you could also write your own eval in terms of apply and such. 2018-01-07T06:11:02Z pransninja: that is cool. 2018-01-07T06:11:15Z pransninja: So the lisp runtime comes with a lisp compiler? 2018-01-07T06:11:32Z Bike: yes (some commercial implementations allow or require the compiler to be removed in deployed applications) 2018-01-07T06:11:36Z jcowan: Haskell and Scala both allow * (or any symbol or punc mark) in the name of an operator 2018-01-07T06:11:56Z pransninja: jcowan: Too late to the party, I am afraid. ;P 2018-01-07T06:14:44Z fikka joined #lisp 2018-01-07T06:15:15Z sebbot joined #lisp 2018-01-07T06:18:09Z jmercouris quit (Ping timeout: 265 seconds) 2018-01-07T06:19:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T06:20:59Z Bike quit (Quit: Lost terminal) 2018-01-07T06:21:23Z randomstrangerb quit (Remote host closed the connection) 2018-01-07T06:21:34Z FreeBirdLjj joined #lisp 2018-01-07T06:22:33Z emacsoma` quit (Ping timeout: 265 seconds) 2018-01-07T06:22:43Z randomstrangerb joined #lisp 2018-01-07T06:23:41Z pransninja quit (Quit: Page closed) 2018-01-07T06:25:42Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-07T06:26:44Z safe joined #lisp 2018-01-07T06:28:46Z Oladon quit (Quit: Leaving.) 2018-01-07T06:31:59Z aeth: Any language that separates things with whitespace should permit just about anything 2018-01-07T06:32:36Z aeth: You don't need s-expressions to write foo-bar, you just need to require "4 - 5" instead of "4-5" 2018-01-07T06:34:57Z fikka joined #lisp 2018-01-07T06:34:59Z sebbot quit (Quit: Lost terminal) 2018-01-07T06:39:29Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T06:40:38Z _krator44 quit (Ping timeout: 255 seconds) 2018-01-07T06:41:55Z asarch quit (Quit: Leaving) 2018-01-07T06:45:02Z orivej quit (Ping timeout: 252 seconds) 2018-01-07T06:45:58Z _krator44 joined #lisp 2018-01-07T06:47:05Z jasom: did pransninja leave? I was going to suggest a lambda in teh defvar; that's the obvious solution 2018-01-07T06:47:58Z orivej joined #lisp 2018-01-07T06:49:37Z krwq joined #lisp 2018-01-07T06:49:46Z patche joined #lisp 2018-01-07T06:49:46Z patche is now known as sebbot 2018-01-07T06:50:45Z krwq: hello, is there an easy way to write defmethod which would do something like (defmethod foo ((arg (eql (or :a :b)))) ...)? 2018-01-07T06:53:07Z jasom: krwq: pretty sure there isn't 2018-01-07T06:53:09Z orivej quit (Ping timeout: 264 seconds) 2018-01-07T06:55:13Z krwq: jasom: thanks, I saw https://github.com/fukamachi/cl-dbi/blob/master/src/driver.lisp#L35 but I'd like to not couple defgeneric and defmethod code together 2018-01-07T06:55:17Z fikka joined #lisp 2018-01-07T06:59:35Z gilberth joined #lisp 2018-01-07T06:59:53Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T07:02:33Z beach: krwq: Just create an auxiliary function with the body, and call it from two methods. 2018-01-07T07:10:43Z groovy2shoes quit (Ping timeout: 252 seconds) 2018-01-07T07:10:59Z safe quit (Read error: Connection reset by peer) 2018-01-07T07:11:15Z krwq: beach: that's what I did but was wondering if there was some syntax for that already 2018-01-07T07:15:31Z fikka joined #lisp 2018-01-07T07:20:30Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T07:23:11Z turkja joined #lisp 2018-01-07T07:26:01Z fikka joined #lisp 2018-01-07T07:28:20Z yeticry quit (Ping timeout: 260 seconds) 2018-01-07T07:30:27Z yeticry joined #lisp 2018-01-07T07:31:08Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T07:32:53Z eazar001 quit (Quit: WeeChat 2.0.1) 2018-01-07T07:35:14Z rippa joined #lisp 2018-01-07T07:36:01Z fikka joined #lisp 2018-01-07T07:36:28Z damke_ joined #lisp 2018-01-07T07:38:45Z damke quit (Ping timeout: 264 seconds) 2018-01-07T07:40:48Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T07:41:08Z attila_lendvai joined #lisp 2018-01-07T07:41:25Z igemnace quit (Read error: Connection reset by peer) 2018-01-07T07:42:22Z igemnace joined #lisp 2018-01-07T07:44:23Z attila_lendvai quit (Client Quit) 2018-01-07T07:46:17Z fikka joined #lisp 2018-01-07T07:47:11Z Oddity quit (Ping timeout: 248 seconds) 2018-01-07T07:51:06Z fikka quit (Ping timeout: 268 seconds) 2018-01-07T07:52:31Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-07T07:53:46Z DeadTrickster quit (Remote host closed the connection) 2018-01-07T07:54:06Z randomstrangerb joined #lisp 2018-01-07T07:54:09Z Oddity joined #lisp 2018-01-07T07:54:09Z Oddity quit (Changing host) 2018-01-07T07:54:09Z Oddity joined #lisp 2018-01-07T07:55:34Z conceivably quit (Remote host closed the connection) 2018-01-07T07:56:07Z DeadTrickster joined #lisp 2018-01-07T07:56:31Z moei quit (Quit: Leaving...) 2018-01-07T07:58:10Z lnxm8 joined #lisp 2018-01-07T08:00:08Z _krator44 quit (Quit: --) 2018-01-07T08:01:35Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-07T08:02:51Z randomstrangerb joined #lisp 2018-01-07T08:04:14Z bms_ quit (Ping timeout: 252 seconds) 2018-01-07T08:06:19Z fikka joined #lisp 2018-01-07T08:06:23Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-07T08:10:37Z phoe: krwq: not in vanilla CLOS. 2018-01-07T08:11:13Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T08:11:28Z phoe: AFAIK (or :a :b) up there will evaluate to :a since it's a normal Lisp form. 2018-01-07T08:18:07Z arbv quit (Ping timeout: 248 seconds) 2018-01-07T08:18:54Z damke joined #lisp 2018-01-07T08:21:51Z damke__ joined #lisp 2018-01-07T08:21:52Z orivej joined #lisp 2018-01-07T08:21:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T08:22:46Z kenster quit (Remote host closed the connection) 2018-01-07T08:23:45Z damke quit (Ping timeout: 264 seconds) 2018-01-07T08:26:33Z lnxm8 left #lisp 2018-01-07T08:26:35Z fikka joined #lisp 2018-01-07T08:28:26Z orivej quit (Ping timeout: 252 seconds) 2018-01-07T08:30:07Z damke joined #lisp 2018-01-07T08:31:26Z fikka quit (Ping timeout: 276 seconds) 2018-01-07T08:33:21Z damke__ quit (Ping timeout: 264 seconds) 2018-01-07T08:35:57Z fortitude_ quit (Ping timeout: 240 seconds) 2018-01-07T08:37:02Z fikka joined #lisp 2018-01-07T08:40:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-07T08:41:42Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T08:41:56Z logicmoo joined #lisp 2018-01-07T08:42:57Z dmiles quit (Ping timeout: 264 seconds) 2018-01-07T08:45:01Z damke_ joined #lisp 2018-01-07T08:46:07Z _krator44 joined #lisp 2018-01-07T08:47:03Z fikka joined #lisp 2018-01-07T08:48:07Z igemnace quit (Read error: Connection reset by peer) 2018-01-07T08:48:21Z damke quit (Ping timeout: 264 seconds) 2018-01-07T08:48:34Z igemnace joined #lisp 2018-01-07T08:49:11Z damke joined #lisp 2018-01-07T08:50:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T08:51:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T08:56:53Z krwq quit (Remote host closed the connection) 2018-01-07T08:58:01Z versatile joined #lisp 2018-01-07T09:00:41Z damke_ joined #lisp 2018-01-07T09:01:18Z damke quit (Read error: Connection reset by peer) 2018-01-07T09:05:24Z LocaMocha is now known as Sauvin 2018-01-07T09:06:36Z moei joined #lisp 2018-01-07T09:07:11Z fikka joined #lisp 2018-01-07T09:07:44Z orivej joined #lisp 2018-01-07T09:12:01Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T09:13:03Z orivej quit (Ping timeout: 248 seconds) 2018-01-07T09:20:53Z knobo joined #lisp 2018-01-07T09:21:11Z mishoo_ joined #lisp 2018-01-07T09:21:41Z knobo quit (Client Quit) 2018-01-07T09:21:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T09:22:23Z damke_ joined #lisp 2018-01-07T09:22:44Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-07T09:27:29Z fikka joined #lisp 2018-01-07T09:30:49Z damke joined #lisp 2018-01-07T09:31:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T09:31:46Z hexfive joined #lisp 2018-01-07T09:32:15Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T09:35:45Z damke quit (Ping timeout: 264 seconds) 2018-01-07T09:36:44Z orivej joined #lisp 2018-01-07T09:43:34Z orivej quit (Ping timeout: 265 seconds) 2018-01-07T09:44:46Z narendraj9 joined #lisp 2018-01-07T09:47:43Z fikka joined #lisp 2018-01-07T09:52:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T09:57:16Z damke joined #lisp 2018-01-07T10:01:15Z fikka joined #lisp 2018-01-07T10:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-07T10:04:47Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-07T10:09:59Z pilfink joined #lisp 2018-01-07T10:12:18Z craft00 joined #lisp 2018-01-07T10:19:41Z hexfive quit (Quit: re-evaluating their poor programming decisions) 2018-01-07T10:25:50Z damke_ joined #lisp 2018-01-07T10:26:36Z resttime quit (Quit: Leaving) 2018-01-07T10:26:58Z makomo joined #lisp 2018-01-07T10:30:35Z arbv joined #lisp 2018-01-07T10:30:44Z craft00 quit (Ping timeout: 260 seconds) 2018-01-07T10:31:41Z Karl_Dscc joined #lisp 2018-01-07T10:32:48Z orivej joined #lisp 2018-01-07T10:33:14Z nowhereman_ joined #lisp 2018-01-07T10:33:22Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-07T10:33:41Z Ellusionist joined #lisp 2018-01-07T10:35:11Z arbv quit (Ping timeout: 248 seconds) 2018-01-07T10:36:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T10:40:49Z damke_ joined #lisp 2018-01-07T10:45:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T10:46:37Z damke joined #lisp 2018-01-07T10:47:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T10:50:20Z damke_ joined #lisp 2018-01-07T10:51:14Z fikka joined #lisp 2018-01-07T10:51:21Z damke quit (Ping timeout: 246 seconds) 2018-01-07T10:53:23Z myrkraverk quit (Remote host closed the connection) 2018-01-07T10:54:57Z Ellusionist quit (Ping timeout: 264 seconds) 2018-01-07T10:56:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T10:57:08Z arbv joined #lisp 2018-01-07T10:58:13Z sebbot quit (Quit: Lost terminal) 2018-01-07T10:58:51Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-07T10:59:10Z nowhereman_ joined #lisp 2018-01-07T11:01:48Z fikka joined #lisp 2018-01-07T11:03:39Z dddddd joined #lisp 2018-01-07T11:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T11:04:47Z Karl_Dscc quit (Remote host closed the connection) 2018-01-07T11:04:55Z qjube joined #lisp 2018-01-07T11:06:34Z varjagg joined #lisp 2018-01-07T11:06:47Z Ellusionist joined #lisp 2018-01-07T11:07:58Z shifty joined #lisp 2018-01-07T11:11:10Z pilfink quit (Ping timeout: 260 seconds) 2018-01-07T11:15:22Z craft00 joined #lisp 2018-01-07T11:15:30Z craft00 quit (Client Quit) 2018-01-07T11:15:53Z orivej quit (Ping timeout: 265 seconds) 2018-01-07T11:16:15Z orivej joined #lisp 2018-01-07T11:16:42Z random-nick joined #lisp 2018-01-07T11:21:45Z beach` joined #lisp 2018-01-07T11:24:00Z milanj joined #lisp 2018-01-07T11:25:04Z orivej quit (Ping timeout: 265 seconds) 2018-01-07T11:26:05Z beach quit (Ping timeout: 252 seconds) 2018-01-07T11:28:41Z narendraj9 quit (Remote host closed the connection) 2018-01-07T11:29:42Z quazimodo joined #lisp 2018-01-07T11:38:48Z EvW joined #lisp 2018-01-07T11:42:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T11:44:29Z scymtym quit (Ping timeout: 276 seconds) 2018-01-07T11:45:13Z milanj_ joined #lisp 2018-01-07T11:47:47Z milanj quit (Ping timeout: 265 seconds) 2018-01-07T11:48:11Z orivej joined #lisp 2018-01-07T11:50:14Z damke_ joined #lisp 2018-01-07T11:51:25Z fluke` joined #lisp 2018-01-07T11:51:31Z Karl_Dscc joined #lisp 2018-01-07T11:53:37Z makomo quit (Ping timeout: 256 seconds) 2018-01-07T11:56:17Z orivej quit (Ping timeout: 248 seconds) 2018-01-07T11:58:33Z fikka joined #lisp 2018-01-07T12:01:59Z qjube quit (Quit: qjube) 2018-01-07T12:03:07Z scymtym joined #lisp 2018-01-07T12:03:17Z Jen joined #lisp 2018-01-07T12:03:40Z fikka quit (Ping timeout: 260 seconds) 2018-01-07T12:04:32Z prometheus_falli quit (Remote host closed the connection) 2018-01-07T12:04:47Z Ellusionist quit (Ping timeout: 248 seconds) 2018-01-07T12:05:32Z gravicappa joined #lisp 2018-01-07T12:06:16Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T12:07:33Z SuperJen quit (Ping timeout: 264 seconds) 2018-01-07T12:08:01Z fluke` quit (Remote host closed the connection) 2018-01-07T12:08:31Z fluke` joined #lisp 2018-01-07T12:08:58Z fikka joined #lisp 2018-01-07T12:09:46Z wg1024 joined #lisp 2018-01-07T12:09:47Z Karl_Dscc quit (Remote host closed the connection) 2018-01-07T12:09:50Z red-dot joined #lisp 2018-01-07T12:11:15Z fluke` quit (Remote host closed the connection) 2018-01-07T12:11:28Z quazimodo quit (Ping timeout: 265 seconds) 2018-01-07T12:11:45Z fluke` joined #lisp 2018-01-07T12:13:51Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T12:14:56Z wg1024 quit (Quit: Leaving.) 2018-01-07T12:18:24Z random-nick quit (Remote host closed the connection) 2018-01-07T12:20:15Z fluke` quit (Remote host closed the connection) 2018-01-07T12:20:38Z random-nick joined #lisp 2018-01-07T12:20:41Z fluke` joined #lisp 2018-01-07T12:20:53Z markong joined #lisp 2018-01-07T12:21:15Z versatile quit (Quit: WeeChat 1.4) 2018-01-07T12:23:38Z quazimodo joined #lisp 2018-01-07T12:23:45Z dim: Happy New Year lispers! 2018-01-07T12:25:05Z Shinmera: Wish I could say it was 2018-01-07T12:26:57Z easye: Shinmera: is at any more unhappier than 2017 was? 2018-01-07T12:27:23Z Shinmera: Kinda early to say that, don't you think? 2018-01-07T12:27:50Z easye: Well, human history is pretty miserable in the first place. So, I have low expectations... 2018-01-07T12:28:25Z easye: There's ELS 2018 to look forward to. 2018-01-07T12:28:59Z fikka joined #lisp 2018-01-07T12:34:09Z kolb: Human history is the main reason why pessimism is foolish 2018-01-07T12:34:49Z kolb: You want to contract sickness 100 years ago? 2018-01-07T12:35:09Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T12:35:22Z kolb: Happy new year:-) 2018-01-07T12:38:18Z easye: kolb: Same to you! 2018-01-07T12:40:49Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-07T12:40:58Z fikka joined #lisp 2018-01-07T12:41:50Z orivej joined #lisp 2018-01-07T12:44:04Z kolb: My predictions for ELS 2018: lots of missed talks but many cool drinks at the beach 2018-01-07T12:44:12Z fluke` quit (Read error: Connection reset by peer) 2018-01-07T12:44:36Z fluke` joined #lisp 2018-01-07T12:45:27Z fikka quit (Ping timeout: 246 seconds) 2018-01-07T12:46:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-07T12:47:05Z makomo joined #lisp 2018-01-07T12:48:56Z easye is looking forward to chats. Especially to share experiences with using CL to make tooling to deal with the mess that is known as "crypto-currencies". 2018-01-07T12:50:43Z jackdaniel is looking forward to make a photo on a beach with beach` sharing a jackdaniel's drink :p 2018-01-07T12:52:11Z phoe: sipping jackdaniel while laying on a beach? 2018-01-07T12:52:24Z kolb: LOL 2018-01-07T12:52:26Z phoe: this sounds horribly wrong and horribly lispy at the same time 2018-01-07T12:52:38Z phoe: ELS'18 is indeed going to be fun 2018-01-07T12:52:39Z kolb: I have to be there 2018-01-07T12:54:05Z makomo quit (Ping timeout: 240 seconds) 2018-01-07T12:55:26Z kolb: Which poor soul has to deal with crypto currencies? (I really only know from bitcoin in meatspace by friends... procuring things.) 2018-01-07T12:56:31Z kolb: I figured it was mostly a hype for gamblers other than that 2018-01-07T13:01:12Z easye is dealing with crypto-currencies. 2018-01-07T13:01:17Z fikka joined #lisp 2018-01-07T13:03:08Z kolb: easye: with ABCL? at the edge of invention I see :-) 2018-01-07T13:03:13Z easye: I really don't know the endgame, but what happening with Bitcoin, Ethereum, Sia, and others makes this period of experimentation with store of value and smart contracts mediated by decentralized trust systems as important as the 1993-1995 (NSF commercializing the "internet" 2018-01-07T13:04:29Z easye: Usually these days I develop with CCL. I use ABCL wihen I need to bridge to Java ecosystem, which is mainly to get access to OWL2-capable reasoners and cheap SPARQL endpoints. 2018-01-07T13:06:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T13:06:57Z nirved joined #lisp 2018-01-07T13:07:00Z kolb: gogo CCL :-) 2018-01-07T13:07:10Z TCZ joined #lisp 2018-01-07T13:07:34Z kolb: easye: I heard that bitcoin mining draws more power than some nation states nowadays, how do you feel about that? 2018-01-07T13:07:45Z easye: Warmer? 2018-01-07T13:07:50Z kolb: :-) 2018-01-07T13:07:57Z easye cries for the loss of entropy. 2018-01-07T13:09:11Z easye: But since we are barely a type I Kardashev, there is a lot of other waste I would think we should get mad at. Not much we can do until we build a partial Dyson mesh. 2018-01-07T13:10:26Z easye: s/loss/increase of/ 2018-01-07T13:10:57Z kolb: while this IMHO goes astray at the end, I found this talk (http://www.antipope.org/charlie/blog-static/2018/01/dude-you-broke-the-future.html) somewhat stimulating, it portrays corporations as the actual AI of our generation, and smart contracts as the questionable continuation of that 2018-01-07T13:11:04Z kolb: paper-clip maximizers and such 2018-01-07T13:11:21Z EvW quit (Ping timeout: 246 seconds) 2018-01-07T13:13:04Z kolb: what’s a dyson mesh? 2018-01-07T13:13:42Z easye: The precursor to a sphere. A bunch of solar arrays, the scaffolding for a sphere. (I just made this up). 2018-01-07T13:14:45Z kolb: ah yeah just found the article for dyson sphere. so may I ask what it is you are doing in particular with cryptographic currencies? 2018-01-07T13:15:23Z TCZ quit (Quit: Leaving) 2018-01-07T13:16:24Z easye: Right now I am preparing to issue and disburse ERC-20 tokens for while modeling how to securitize payrolls streams via smart contracts. 2018-01-07T13:17:28Z kolb: sci-fi dystopia writes itself :D 2018-01-07T13:17:44Z shifty quit (Ping timeout: 252 seconds) 2018-01-07T13:19:24Z easye: kolb: thanks for the Stross link to the talk at 34C3. 2018-01-07T13:20:57Z _krator44 quit (Ping timeout: 240 seconds) 2018-01-07T13:21:35Z fikka joined #lisp 2018-01-07T13:23:00Z varjagg quit (Ping timeout: 265 seconds) 2018-01-07T13:23:51Z lnostdal quit (Excess Flood) 2018-01-07T13:24:07Z wxie quit (Quit: Bye.) 2018-01-07T13:24:09Z lnostdal joined #lisp 2018-01-07T13:25:55Z kolb: so a dyson sphere/mesh would darken the sun and we’d heat and vitamin d-bask artificially?^^ 2018-01-07T13:26:02Z kolb: vampires will be happy 2018-01-07T13:26:32Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T13:26:35Z easye: Naw, we'd put the Dyson sphere at least around Saturn. 2018-01-07T13:26:47Z easye: I like the sun. 2018-01-07T13:28:20Z easye: Anyways, this ain't very CL related, so I will share the hope that CL will still be running in some form when we start building such structures as a species. Of course, I hope we have standardized a few things since 1993... 2018-01-07T13:28:25Z thinkpad joined #lisp 2018-01-07T13:28:46Z easye: But now is the time to experiment with what will be standard in 10, 100 years. 2018-01-07T13:30:57Z xantoz quit (Ping timeout: 265 seconds) 2018-01-07T13:32:24Z orivej joined #lisp 2018-01-07T13:37:54Z pjb: kolb: one can live a long time on grilled sardines, so you could just throw away your return ticket and stay on Marbella's beaches for ever. 2018-01-07T13:38:14Z orivej quit (Ping timeout: 276 seconds) 2018-01-07T13:39:06Z pjb: kolb: vitamine D wouldn't be an issue anymore once you live on a dyson sphere. 2018-01-07T13:39:16Z thinkpad quit (Quit: lawl) 2018-01-07T13:39:32Z mishoo__ joined #lisp 2018-01-07T13:39:47Z easye envisions a technomadic Lisp beach-bum fellowship. 2018-01-07T13:40:35Z kolb: count me out I like my hills and meadows 2018-01-07T13:41:05Z mishoo_ quit (Ping timeout: 260 seconds) 2018-01-07T13:41:52Z fikka joined #lisp 2018-01-07T13:41:56Z easye: I would keep the Earth as it is, as well as all the terrestial bodies. If we build a mesh that we can "shutter" dynamically, we can keep the Sun shining on the Earth. Isn't the point of the Dyson sphere to harvest the energy of that huge local fusion reactor? 2018-01-07T13:42:16Z pjb: solar panels on laptop. wifi on the beach. 2018-01-07T13:43:05Z thinkpad joined #lisp 2018-01-07T13:43:10Z pjb: http://www.marbellafamilyfun.com/free-wifi-marbella.html 2018-01-07T13:46:41Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T13:46:44Z easye: While I guess there are those who envision the inside of a Dyson sphere at 1 AU as a huge "inverted Earth", I think that would be way too many people to be around. Personally, I'd rather make a Ringworld at, say, 1.3 AU. 2018-01-07T13:47:20Z borodust: is there autoresponse bot around? 2018-01-07T13:47:28Z easye: minion: help 2018-01-07T13:47:28Z minion: There are multiple help modules. Try ``/msg minion help kind'', where kind is one of: "lookups", "helping others", "adding terms", "aliasing terms", "forgetting", "memos", "avoiding memos", "nicknames", "goodies", "eliza", "advice", "apropos", "acronyms". 2018-01-07T13:48:00Z borodust: or notify-when-online bot :) 2018-01-07T13:48:05Z Shinmera: Colleen: help notify 2018-01-07T13:48:05Z Colleen: Command Syntax: notify TARGET &STRING MESSAGE 2018-01-07T13:48:05Z Colleen: Documentation: Send a notification message that will be displayed as soon as the user speaks again. 2018-01-07T13:49:07Z Shinmera: Colleen: notify Shinmera quit wastin' your Sunday! 2018-01-07T13:49:07Z Colleen: Are you feeling lonely? 2018-01-07T13:49:09Z Shinmera: Yes 2018-01-07T13:49:56Z brendyn quit (Ping timeout: 276 seconds) 2018-01-07T13:50:07Z borodust: Shinmera: thanks! 2018-01-07T13:50:34Z kolb: Shinmera: its called serenity ;-) 2018-01-07T13:51:43Z borodust: Colleen: notify craft00 run "rm -rf ~/quicklisp/dists/quicklisp/software/static-vectors-v1.8.*" and try loading trivial-gamekit again 2018-01-07T13:51:43Z Colleen: borodust: Got it. I'll let craft00 know as soon as possible. 2018-01-07T13:52:00Z thinkpad quit (Quit: lawl) 2018-01-07T13:52:19Z xantoz joined #lisp 2018-01-07T13:53:58Z varjagg joined #lisp 2018-01-07T13:54:46Z peterpp joined #lisp 2018-01-07T13:55:07Z phoe: does CASE use EQ or EQL as a test? 2018-01-07T13:55:13Z phoe: CLHS only says "based on its identity". 2018-01-07T13:55:15Z xantoz quit (Read error: Connection reset by peer) 2018-01-07T13:55:41Z borodust: Colleen: notify craft00 and just in case do (ql:update-all-dists) before loading trivial-gamekit 2018-01-07T13:55:41Z Colleen: borodust: Got it. I'll let craft00 know as soon as possible. 2018-01-07T13:55:48Z Shinmera: phoe: EQL 2018-01-07T13:55:59Z xantoz joined #lisp 2018-01-07T13:56:08Z Shinmera: Unless otherwise specified the test is always EQL 2018-01-07T13:56:26Z phoe: Shinmera: can you find me a part of the standard that says it's always EQL? 2018-01-07T13:56:37Z Shinmera: It was linked here just a day or two ago 2018-01-07T13:56:43Z Shinmera: Too lazy to look it up right now 2018-01-07T13:56:49Z phoe: Okay, I'll look for it... 2018-01-07T13:57:57Z Folkol joined #lisp 2018-01-07T13:58:17Z JuanDaugherty joined #lisp 2018-01-07T14:00:11Z phoe: clhs glossary/same 2018-01-07T14:00:11Z xantoz quit (Read error: Connection reset by peer) 2018-01-07T14:00:11Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_s.htm#same 2018-01-07T14:01:09Z xantoz joined #lisp 2018-01-07T14:01:30Z phoe: Shinmera: found it, "Since eq is used only rarely in this specification, eql is the default predicate when none is mentioned explicitly." 2018-01-07T14:01:33Z phoe: Thanks. 2018-01-07T14:01:57Z phoe: ...but 2018-01-07T14:02:01Z phoe: clhs case 2018-01-07T14:02:01Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_case_.htm 2018-01-07T14:02:04Z phoe: " These macros allow the conditional execution of a body of forms in a clause that is selected by matching the test-key on the basis of its identity." 2018-01-07T14:02:09Z fikka joined #lisp 2018-01-07T14:02:12Z phoe: "...of its identity." - this implies EQ. 2018-01-07T14:02:20Z phoe: And henceforth might be a bug in the specification. 2018-01-07T14:03:10Z Jen quit (Remote host closed the connection) 2018-01-07T14:03:28Z Shinmera: "identity" is not specified. "identical" is, but it doesn't use that word. 2018-01-07T14:03:28Z Jen joined #lisp 2018-01-07T14:03:54Z mfiano: I think the fact that it also says unless a specific test is written, it is assumed to be EQL, so it covers its mistake :) 2018-01-07T14:06:55Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T14:08:31Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-07T14:11:23Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T14:13:10Z phoe: oh well, https://github.com/phoe/clus-data/issues/35 2018-01-07T14:13:28Z varjagg quit (Read error: Connection reset by peer) 2018-01-07T14:16:44Z varjagg joined #lisp 2018-01-07T14:22:24Z fikka joined #lisp 2018-01-07T14:22:50Z quazimodo joined #lisp 2018-01-07T14:23:45Z kobain joined #lisp 2018-01-07T14:24:19Z Ellusionist joined #lisp 2018-01-07T14:26:57Z fikka quit (Ping timeout: 246 seconds) 2018-01-07T14:27:32Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-07T14:28:49Z randomstrangerb joined #lisp 2018-01-07T14:36:22Z EvW joined #lisp 2018-01-07T14:37:51Z beach` is now known as beach 2018-01-07T14:37:55Z fluke` quit (Ping timeout: 265 seconds) 2018-01-07T14:38:38Z bms_ joined #lisp 2018-01-07T14:41:49Z red-dot joined #lisp 2018-01-07T14:42:44Z fikka joined #lisp 2018-01-07T14:44:24Z d4ryus1 is now known as d4ryus 2018-01-07T14:44:28Z ykoda joined #lisp 2018-01-07T14:44:28Z damke joined #lisp 2018-01-07T14:44:37Z SaganMan joined #lisp 2018-01-07T14:46:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T14:47:35Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T14:47:39Z bms_ quit (Quit: Mutter: www.mutterirc.com) 2018-01-07T14:47:57Z damke_ joined #lisp 2018-01-07T14:50:45Z damke quit (Ping timeout: 264 seconds) 2018-01-07T14:52:39Z orivej joined #lisp 2018-01-07T14:57:50Z Bike joined #lisp 2018-01-07T15:02:54Z eivarv joined #lisp 2018-01-07T15:03:00Z fikka joined #lisp 2018-01-07T15:04:01Z ryanbw quit (Ping timeout: 256 seconds) 2018-01-07T15:05:00Z eivarv quit (Client Quit) 2018-01-07T15:06:31Z fluke` joined #lisp 2018-01-07T15:07:16Z makomo joined #lisp 2018-01-07T15:07:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T15:07:44Z orivej quit (Ping timeout: 248 seconds) 2018-01-07T15:07:48Z eivarv joined #lisp 2018-01-07T15:13:11Z EvW quit (Ping timeout: 240 seconds) 2018-01-07T15:14:25Z orivej joined #lisp 2018-01-07T15:23:15Z fikka joined #lisp 2018-01-07T15:25:33Z jfb4 quit (Ping timeout: 264 seconds) 2018-01-07T15:26:00Z ikopico joined #lisp 2018-01-07T15:27:27Z jfb4 joined #lisp 2018-01-07T15:28:11Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T15:30:27Z ikopico quit (Quit: ZNC 1.6.4+deb1 - http://znc.in) 2018-01-07T15:33:40Z jfb4 quit (Ping timeout: 260 seconds) 2018-01-07T15:33:44Z fikka joined #lisp 2018-01-07T15:37:36Z jfb4 joined #lisp 2018-01-07T15:37:58Z EvW1 joined #lisp 2018-01-07T15:38:32Z fikka quit (Ping timeout: 268 seconds) 2018-01-07T15:41:54Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T15:42:13Z damke joined #lisp 2018-01-07T15:42:46Z red-dot joined #lisp 2018-01-07T15:45:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T15:46:09Z mishoo_ joined #lisp 2018-01-07T15:48:00Z mishoo__ quit (Ping timeout: 265 seconds) 2018-01-07T15:52:39Z Murii joined #lisp 2018-01-07T15:53:45Z fikka joined #lisp 2018-01-07T15:54:29Z damke_ joined #lisp 2018-01-07T15:55:11Z Ellusionist quit (Ping timeout: 268 seconds) 2018-01-07T15:56:05Z ikopico joined #lisp 2018-01-07T15:57:21Z damke quit (Ping timeout: 264 seconds) 2018-01-07T15:58:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T15:59:59Z orivej quit (Ping timeout: 252 seconds) 2018-01-07T16:01:31Z orivej joined #lisp 2018-01-07T16:04:12Z fikka joined #lisp 2018-01-07T16:06:35Z ikopico quit (Quit: ZNC 1.6.4+deb1 - http://znc.in) 2018-01-07T16:06:49Z ikopico joined #lisp 2018-01-07T16:08:30Z ikopico quit (Client Quit) 2018-01-07T16:08:45Z ikopico joined #lisp 2018-01-07T16:08:47Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T16:10:19Z orivej quit (Ping timeout: 256 seconds) 2018-01-07T16:10:47Z damke joined #lisp 2018-01-07T16:14:07Z _krator44 joined #lisp 2018-01-07T16:14:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T16:14:17Z fikka joined #lisp 2018-01-07T16:15:41Z wol joined #lisp 2018-01-07T16:16:03Z ikopico quit (Quit: ZNC 1.6.4+deb1 - http://znc.in) 2018-01-07T16:16:20Z ikopico joined #lisp 2018-01-07T16:17:01Z ikopico quit (Client Quit) 2018-01-07T16:17:41Z ikopico joined #lisp 2018-01-07T16:17:58Z heurist`_ quit (Ping timeout: 252 seconds) 2018-01-07T16:18:55Z orivej joined #lisp 2018-01-07T16:19:10Z fikka quit (Ping timeout: 260 seconds) 2018-01-07T16:20:05Z ryanbw joined #lisp 2018-01-07T16:20:21Z ikopico quit (Client Quit) 2018-01-07T16:21:41Z ckonstanski joined #lisp 2018-01-07T16:22:39Z sellout- joined #lisp 2018-01-07T16:23:27Z orivej quit (Ping timeout: 240 seconds) 2018-01-07T16:24:16Z ikopico joined #lisp 2018-01-07T16:24:17Z fikka joined #lisp 2018-01-07T16:24:31Z ckonstanski quit (Read error: Connection reset by peer) 2018-01-07T16:27:04Z Oladon joined #lisp 2018-01-07T16:29:05Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T16:29:11Z bms_ joined #lisp 2018-01-07T16:29:14Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-07T16:33:41Z sellout- quit (Quit: Leaving.) 2018-01-07T16:34:38Z fikka joined #lisp 2018-01-07T16:36:07Z ikopico quit (Quit: ZNC 1.6.4+deb1 - http://znc.in) 2018-01-07T16:37:30Z ikopico joined #lisp 2018-01-07T16:39:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T16:45:35Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T16:45:35Z SaganMan quit (Quit: laters) 2018-01-07T16:45:35Z red-dot joined #lisp 2018-01-07T16:45:36Z fikka joined #lisp 2018-01-07T16:45:36Z heurist`_ joined #lisp 2018-01-07T16:48:24Z orivej joined #lisp 2018-01-07T16:48:57Z turkja quit (Ping timeout: 264 seconds) 2018-01-07T16:49:23Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T16:54:21Z orivej quit (Ping timeout: 264 seconds) 2018-01-07T16:55:28Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-07T16:57:34Z jfb4 joined #lisp 2018-01-07T17:00:39Z asarch joined #lisp 2018-01-07T17:00:56Z Oladon quit (Read error: Connection reset by peer) 2018-01-07T17:03:24Z ryanbw quit (Ping timeout: 265 seconds) 2018-01-07T17:04:43Z fikka joined #lisp 2018-01-07T17:07:07Z Arcaelyx joined #lisp 2018-01-07T17:10:08Z fikka quit (Ping timeout: 276 seconds) 2018-01-07T17:11:01Z EvW joined #lisp 2018-01-07T17:11:38Z ryanbw joined #lisp 2018-01-07T17:11:56Z Ellusionist joined #lisp 2018-01-07T17:11:56Z xantoz quit (Read error: Connection reset by peer) 2018-01-07T17:12:20Z xantoz joined #lisp 2018-01-07T17:15:10Z fikka joined #lisp 2018-01-07T17:19:59Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T17:21:37Z mn3m joined #lisp 2018-01-07T17:22:10Z Ellusionist quit (Ping timeout: 260 seconds) 2018-01-07T17:23:45Z makomo quit (Ping timeout: 248 seconds) 2018-01-07T17:33:32Z shka joined #lisp 2018-01-07T17:35:10Z fikka joined #lisp 2018-01-07T17:39:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T17:42:29Z peterpp: how can I check in a function definition if what the user passed is a place? 2018-01-07T17:43:04Z Shinmera: Functions don't deal with places. 2018-01-07T17:43:18Z peterpp: oh they don't? 2018-01-07T17:43:57Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T17:44:06Z peterpp: I guess I have some misconceptions here 2018-01-07T17:44:20Z Shinmera: A form is a place if: it returns a value when evaluated, and it can be used as a SETF place expression. 2018-01-07T17:44:36Z red-dot joined #lisp 2018-01-07T17:44:49Z Shinmera: A "place" is thus a question of SETF machinery. 2018-01-07T17:45:58Z Shinmera: When a function receives an expression it cannot use it as a place, because the expression needs to be available at compile time for SETF to be able to interpret it as one. 2018-01-07T17:47:17Z Shinmera: peterpp: What exactly are you trying to do? 2018-01-07T17:47:42Z peterpp: I'm just going through 'ansi common lisp' 2018-01-07T17:47:56Z peterpp: and it was a question that popped up in my mind while doing the exercises 2018-01-07T17:48:30Z peterpp: thanks for enlightening me 2018-01-07T17:50:01Z Shinmera: What you can do is use get-setf-expansion to get what SETF would use in its expansion 2018-01-07T17:50:33Z openthesky joined #lisp 2018-01-07T17:50:58Z Shinmera: Note however that what you get there will not tell you whether the expression is necessarily usable as a place, as there's a default expansion that is returned for expressions not handled through define-setf-expansion 2018-01-07T17:52:27Z Ellusionist joined #lisp 2018-01-07T17:52:27Z Shinmera: Either way, the point is that a "place" is more a concept than a tangible, concrete thing. 2018-01-07T17:55:23Z fikka joined #lisp 2018-01-07T17:58:50Z phoe: in other words, CL doesn not have first-class places. 2018-01-07T17:59:53Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T18:00:00Z Shinmera: It gets a bit washy because with some trickery (possibly implementation-dependent) you can determine whether an expression is usable as a setf place. 2018-01-07T18:01:09Z Karl_Dscc joined #lisp 2018-01-07T18:01:20Z josemanuel joined #lisp 2018-01-07T18:05:55Z fikka joined #lisp 2018-01-07T18:10:27Z fikka quit (Ping timeout: 256 seconds) 2018-01-07T18:14:09Z gravicappa quit (Ping timeout: 264 seconds) 2018-01-07T18:15:05Z jarwin joined #lisp 2018-01-07T18:15:05Z jarwin is now known as Jarwin 2018-01-07T18:15:54Z fikka joined #lisp 2018-01-07T18:17:33Z pjb: peterpp: a function can take as argument a closure that accesses the place. 2018-01-07T18:18:53Z pjb: peterpp: see http://informatimago.com/articles/usenet.html#C-like-pointers-in-Lisp 2018-01-07T18:19:09Z pjb: peterpp: but it's better to use a more functional style. 2018-01-07T18:20:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-07T18:21:25Z trocado joined #lisp 2018-01-07T18:22:41Z heurist`_ is now known as heurist 2018-01-07T18:23:59Z phoe: pjb: things like (lambda (x) (setf (someplace) x))? 2018-01-07T18:25:35Z trocado quit (Ping timeout: 248 seconds) 2018-01-07T18:26:10Z fikka joined #lisp 2018-01-07T18:26:43Z Ven`` joined #lisp 2018-01-07T18:26:43Z bms_ quit (Remote host closed the connection) 2018-01-07T18:27:12Z bms_ joined #lisp 2018-01-07T18:28:12Z pjb: phoe: yes. 2018-01-07T18:28:47Z pjb: wrapped in nice macros. 2018-01-07T18:30:47Z logicmoo: the ever sought locative 2018-01-07T18:30:55Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T18:33:30Z SuperJen joined #lisp 2018-01-07T18:34:38Z phoe: I first read "the ever sought laxative" 2018-01-07T18:37:29Z Jen quit (Ping timeout: 255 seconds) 2018-01-07T18:42:46Z kobain quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-07T18:44:42Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T18:45:33Z red-dot joined #lisp 2018-01-07T18:45:33Z jcowan: Yes, places are one of the fairly small number of things in CL that are second-class (other things being macros, tagbody tags, and a few others) 2018-01-07T18:45:57Z Ven`` quit (Ping timeout: 264 seconds) 2018-01-07T18:46:08Z fikka joined #lisp 2018-01-07T18:46:20Z Shinmera: types 2018-01-07T18:48:53Z Ven`` joined #lisp 2018-01-07T18:48:58Z phoe: Shinmera: types are first class in Lisp 2018-01-07T18:49:05Z phoe: which surprisingly doesn't prevent from being second class at the same time 2018-01-07T18:49:05Z varjagg quit (Ping timeout: 260 seconds) 2018-01-07T18:50:05Z pjb: jcowan: macros are first class: (funcall (macro-function 'cond) '(cond (x nil) (t t)) nil) #| --> (if x (progn nil) (cond (t t))) |# 2018-01-07T18:50:17Z shifty joined #lisp 2018-01-07T18:50:22Z phoe: ^ 2018-01-07T18:51:06Z phoe: also what do you mean by tagbody tags not being first class? 2018-01-07T18:51:09Z Shinmera: phoe: They're not first class in the sense that they don't have a distinct type of their own. 2018-01-07T18:51:17Z phoe: ooooh, right. 2018-01-07T18:51:23Z jcowan: pjb: I would rather say that it is possible to coerce a macro to a first-class type 2018-01-07T18:51:28Z pjb: this is not required for first classness. 2018-01-07T18:51:39Z phoe: macros don't have this either now that I think of it. 2018-01-07T18:52:14Z phoe: jcowan: what first-class operations do macros *not* support? 2018-01-07T18:52:35Z pjb: As soon as something can be bound to a variable, basically, it's first class. 2018-01-07T18:52:59Z pjb: (tagbody (let ((tag 'end)) (go tag)) end) proves that tags are not first class. 2018-01-07T18:53:26Z pjb: (let ((k (macro-function 'cond))) (funcall k '(cond (x nil) (t t)) nil)) #| --> (if x (progn nil) (cond (t t))) |# proves that macros are first class. 2018-01-07T18:54:13Z pjb: (let ((vs (values 1 2 3))) vs) #| --> 1 |# proves that multiple values are not first class. 2018-01-07T18:54:38Z random-nick quit (Remote host closed the connection) 2018-01-07T18:54:47Z fikka quit (Ping timeout: 276 seconds) 2018-01-07T18:55:03Z pjb: (let ((l (list 1 2 3))) (let ((p (second l))) (setf p 42)) l) #| --> (1 2 3) |# proves that places are not first class. 2018-01-07T18:55:03Z jcowan: I would add that a first-class value has to be containable in a (suitably typed) data structure, passable as an argument, and returnable as a function value 2018-01-07T18:55:26Z pjb: jcowan: in lisp, anything that can be bound to a variable has those properties. 2018-01-07T18:55:31Z pjb: The suitable type being T 2018-01-07T18:55:34Z jcowan: Algol 60 had arrays of tags, but no tag-valued functions 2018-01-07T18:55:49Z jcowan: I am speaking more generally 2018-01-07T18:56:06Z phoe: you can contain macro functions in any data structure you want, you can pass it as an argument and return it as a function value 2018-01-07T18:56:13Z pjb: Granted you can refine the definition for more generality. Nonetheless, macros are first class. 2018-01-07T18:56:18Z phoe: s/macro // 2018-01-07T18:56:27Z bms_ quit (Remote host closed the connection) 2018-01-07T18:56:27Z phoe: you can do it for all sorts of functions. macro functions are no exception. 2018-01-07T18:57:07Z jcowan: Of course macro functions are first class, the question is whether that makes macros first class. 2018-01-07T18:57:26Z bms_ joined #lisp 2018-01-07T18:57:53Z phoe: what is a macro? 2018-01-07T18:58:02Z phoe: clhs glossary/macro 2018-01-07T18:58:02Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_m.htm#macro 2018-01-07T18:58:35Z jcowan: Point. 2018-01-07T18:58:37Z phoe: 1) is a form and therefore an atom or a list, both are first class. 2) is a function, which is first class. 3) is a symbol, which is first [1;5Dclass. 2018-01-07T18:58:41Z smasta joined #lisp 2018-01-07T18:58:52Z phoe: 3) can also be (setf something) methinks. 2018-01-07T18:58:56Z phoe: ...actually wait a second 2018-01-07T18:59:15Z phoe: no, it can't. 2018-01-07T18:59:22Z phoe: therefore a symbol, even simpler. 2018-01-07T18:59:32Z pmetzger joined #lisp 2018-01-07T19:00:04Z phoe: "what is a macro? a miserable little pile of Lisp forms" 2018-01-07T19:00:09Z smasta left #lisp 2018-01-07T19:00:42Z logicmoo: well functions (including i suppose macro functions) are missing a couple nice things that would make them more first class.. being able to compare them with each other and analyse them outside of executing them 2018-01-07T19:01:14Z pjb: Remember, in lisp, everything (that exists) is of type T. 2018-01-07T19:01:33Z logicmoo: for example they might always present a lambda-list 2018-01-07T19:01:36Z erikc joined #lisp 2018-01-07T19:01:56Z Ven`` quit (Ping timeout: 276 seconds) 2018-01-07T19:02:30Z logicmoo: instead they are often opache pointers that dont throw an error if you use them as a first argement to funcall 2018-01-07T19:03:39Z phoe: logicmoo: that's beyond the standard, but implementations often provide the mechanism to retrieve a lambda list from a function object 2018-01-07T19:03:42Z phoe: swank uses this a real lot 2018-01-07T19:03:53Z phoe: comparing them with each other is doable, they're EQ to each other 2018-01-07T19:04:07Z phoe: I mean, a function is EQ to itself 2018-01-07T19:04:09Z Ven`` joined #lisp 2018-01-07T19:04:09Z phoe: and itself only 2018-01-07T19:04:53Z phoe: as for comparing functions, it's undecidable in general if two functions return the same results for all inputs 2018-01-07T19:05:27Z libreman quit (Ping timeout: 240 seconds) 2018-01-07T19:05:28Z phoe: as for analyzing them outside of executing them, what do you mean? 2018-01-07T19:05:33Z phoe: you can always #'DISASSEMBLE if that's what you mean 2018-01-07T19:05:56Z logicmoo: always? 2018-01-07T19:06:06Z phoe: functions? yes 2018-01-07T19:06:09Z phoe: clhs disassemble 2018-01-07T19:06:09Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_disass.htm 2018-01-07T19:06:25Z phoe: the implementation is permitted to return anything as a result of DISASSEMBLE 2018-01-07T19:06:28Z phoe: but usually it's useful stuff. 2018-01-07T19:07:00Z KZiemian joined #lisp 2018-01-07T19:07:51Z pjb: First-classness doesn't imply random operations. There may be rules on how to use those values. A lambda-list is a sexp with a specified format. You can bind them to variables, pass them as function arguments, obtain them as function result (since they're mere lists), and you can use them in a lambda expression passed to COMPILE, EVAL or COERCE. There's no need to have a function to go from FUNCTION to lambda-lists. 2018-01-07T19:08:22Z logicmoo: i suppose most lisps are much better at return a result to dissassemble than with lambda list 2018-01-07T19:08:22Z fourier joined #lisp 2018-01-07T19:08:33Z phoe: logicmoo: nah 2018-01-07T19:08:51Z fourier quit (Changing host) 2018-01-07T19:08:51Z fourier joined #lisp 2018-01-07T19:08:55Z phoe: #'DISASSEMBLE is a part of the standard, so it's somewhat implied that the implementation should implement it 2018-01-07T19:09:00Z phoe: (somehow) 2018-01-07T19:09:27Z phoe: and for returning lambda lists, implementations return these anyway, 2018-01-07T19:09:33Z phoe: https://github.com/Shinmera/trivial-arguments 2018-01-07T19:09:59Z phoe: this falls back to SWANK which implements it somewhat portably across implementations. 2018-01-07T19:10:07Z logicmoo: ah nice this is the closer-mop as to clos is but for function arglists? 2018-01-07T19:10:23Z fikka joined #lisp 2018-01-07T19:10:50Z Ellusionist quit (Ping timeout: 252 seconds) 2018-01-07T19:10:50Z KZiemian quit (Client Quit) 2018-01-07T19:10:52Z logicmoo: (works arround the various impls who dont equally implement things) 2018-01-07T19:11:52Z phoe: all portability libraries are like this. 2018-01-07T19:12:00Z fourier quit (Remote host closed the connection) 2018-01-07T19:12:31Z phoe: trivial-arguments is for lambda lists, trivial-garbage is for finalizers/garbage collection/weak hash tables, bordeaux-threads is for threads, usocket is for TCP/UDP networking, ... 2018-01-07T19:12:58Z phoe: ..., ASDF is for system definition. 2018-01-07T19:13:12Z bms_ quit (Quit: Leaving) 2018-01-07T19:13:36Z varjagg joined #lisp 2018-01-07T19:13:47Z logicmoo: no trivial-dissasembly ? 2018-01-07T19:14:09Z phoe: uh 2018-01-07T19:14:09Z logicmoo joking 2018-01-07T19:14:10Z phoe: why? 2018-01-07T19:14:13Z phoe: ...xD 2018-01-07T19:14:24Z phoe: (incf logicmoo) 2018-01-07T19:15:20Z fikka quit (Ping timeout: 260 seconds) 2018-01-07T19:16:14Z KZiemian joined #lisp 2018-01-07T19:16:19Z Ven`` quit (Ping timeout: 265 seconds) 2018-01-07T19:16:33Z Jarwin quit (Ping timeout: 264 seconds) 2018-01-07T19:17:09Z KZiemian: hey 2018-01-07T19:17:39Z KZiemian: I need to know standards of documention CL code and making doctstring 2018-01-07T19:17:59Z KZiemian: is Google Style Guide authoritative or should I look to other sources? 2018-01-07T19:18:05Z KZiemian: https://google.github.io/styleguide/lispguide.xml 2018-01-07T19:18:35Z groovy2shoes joined #lisp 2018-01-07T19:18:42Z libreman joined #lisp 2018-01-07T19:18:56Z Ven`` joined #lisp 2018-01-07T19:19:51Z Jarwin joined #lisp 2018-01-07T19:20:04Z Jarwin quit (Client Quit) 2018-01-07T19:20:20Z logicmoo: practically if there is a way to squeeze out FUNCTION-LAMBDA-EXPRESSIONs from function then ok they feel first class to me 2018-01-07T19:20:49Z fikka joined #lisp 2018-01-07T19:22:28Z logicmoo: (irregardless of having differnt code per impl.. (that would only be whining)) 2018-01-07T19:22:57Z KZiemian: phoe: hey 2018-01-07T19:23:02Z KZiemian: phoe: are you here? 2018-01-07T19:23:05Z EvW quit (Ping timeout: 265 seconds) 2018-01-07T19:23:23Z fortitude_ joined #lisp 2018-01-07T19:23:59Z phoe: KZiemian: sup 2018-01-07T19:24:09Z phoe: let's talk on Discord 2018-01-07T19:24:10Z sigjuice: KZiemian google can't tell you or me what to do :) 2018-01-07T19:24:26Z KZiemian: phoe: ok 2018-01-07T19:24:42Z KZiemian: sigjuice: but communiut can and I don't want to mess it up 2018-01-07T19:24:57Z damke quit (Ping timeout: 264 seconds) 2018-01-07T19:25:09Z phoe: logicmoo: you still can't transmit compiled functions from one Lisp implementation to the other 2018-01-07T19:25:24Z KZiemian: sigjuice: in "Succesful Lisp" is nice line 2018-01-07T19:25:30Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T19:25:33Z phoe: if there is a way to squeeze out FUNCTION-DUMP and FUNCTION-UNDUMP from function then they ok they feel first class to me. 2018-01-07T19:26:04Z KZiemian: sigjuice: rule of thumb stay, that if you write code like these you should be shoot 2018-01-07T19:27:13Z sigjuice: KZiemian are you saying I will get shot if I don't obey google? 2018-01-07T19:29:14Z shifty quit (Ping timeout: 276 seconds) 2018-01-07T19:30:02Z damke_ joined #lisp 2018-01-07T19:31:01Z terpri quit (Remote host closed the connection) 2018-01-07T19:31:05Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-07T19:31:11Z fikka joined #lisp 2018-01-07T19:31:29Z KZiemian: sigjuice: not Google 2018-01-07T19:31:59Z KZiemian: sigjuice: rather "obvious things" are dengerous to both of us 2018-01-07T19:32:11Z pjb: logicmoo: the definition of first-class doesn't involve function-lambda-expression. 2018-01-07T19:32:27Z pjb: This is why this function can return nil. 2018-01-07T19:33:36Z logicmoo: pjb: thus my gripe, perhaps there could be a use for trival-lambda-expressions 2018-01-07T19:33:41Z nowhereman_ joined #lisp 2018-01-07T19:33:51Z logicmoo: trivial* 2018-01-07T19:34:43Z logicmoo: "Help! I am using trivial lambda expressions" 2018-01-07T19:35:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T19:38:38Z pjb: logicmoo: there should be no need, because if it is possible at all to obtain it, then function-lambda-expression should return it. Otherwise you can deem it a defect in your implementation and complain with the vendor. 2018-01-07T19:39:04Z KZiemian quit (Ping timeout: 260 seconds) 2018-01-07T19:39:19Z pjb: Perhaps you mean trivial-lambda-list ? 2018-01-07T19:40:49Z fikka joined #lisp 2018-01-07T19:40:56Z drcode quit (Ping timeout: 276 seconds) 2018-01-07T19:43:32Z drcode joined #lisp 2018-01-07T19:44:07Z jack_rabbit quit (Quit: Leaving) 2018-01-07T19:44:40Z logicmoo: i think trivial-arguments would be trivial-lambda-lists so i guess that is covered 2018-01-07T19:45:11Z fikka quit (Ping timeout: 240 seconds) 2018-01-07T19:45:38Z EvW1 joined #lisp 2018-01-07T19:46:07Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T19:46:52Z terpri joined #lisp 2018-01-07T19:47:00Z random-nick joined #lisp 2018-01-07T19:47:03Z Oladon joined #lisp 2018-01-07T19:50:41Z frob joined #lisp 2018-01-07T19:50:49Z frob quit (Client Quit) 2018-01-07T19:51:15Z fikka joined #lisp 2018-01-07T19:53:34Z openthesky quit (Ping timeout: 252 seconds) 2018-01-07T19:53:35Z ykoda quit (Ping timeout: 252 seconds) 2018-01-07T19:54:11Z scymtym quit (Ping timeout: 240 seconds) 2018-01-07T19:55:51Z fikka quit (Ping timeout: 256 seconds) 2018-01-07T19:57:33Z fortitude quit (Ping timeout: 256 seconds) 2018-01-07T19:59:23Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-07T19:59:47Z jack_rabbit joined #lisp 2018-01-07T20:00:35Z randomstrangerb joined #lisp 2018-01-07T20:00:47Z damke joined #lisp 2018-01-07T20:01:15Z fikka joined #lisp 2018-01-07T20:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T20:04:28Z katco[m] joined #lisp 2018-01-07T20:05:17Z sz0 joined #lisp 2018-01-07T20:06:03Z fikka quit (Ping timeout: 256 seconds) 2018-01-07T20:08:45Z eivarv quit (Quit: Sleep) 2018-01-07T20:10:55Z eivarv joined #lisp 2018-01-07T20:11:32Z fikka joined #lisp 2018-01-07T20:12:29Z peterpp: is anyone here using manardb or something similar in production? 2018-01-07T20:12:58Z bms_ joined #lisp 2018-01-07T20:13:58Z vancan1ty joined #lisp 2018-01-07T20:14:19Z Folkol quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-07T20:14:43Z Folkol joined #lisp 2018-01-07T20:14:49Z openthesky joined #lisp 2018-01-07T20:14:58Z openthesky quit (Changing host) 2018-01-07T20:14:58Z openthesky joined #lisp 2018-01-07T20:16:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-07T20:17:00Z red-dot joined #lisp 2018-01-07T20:19:11Z openthesky quit (Ping timeout: 248 seconds) 2018-01-07T20:19:44Z mn3m quit (Ping timeout: 248 seconds) 2018-01-07T20:22:46Z openthesky joined #lisp 2018-01-07T20:25:06Z ykoda joined #lisp 2018-01-07T20:25:17Z ykoda quit (Read error: Connection reset by peer) 2018-01-07T20:26:51Z al-damiri joined #lisp 2018-01-07T20:29:18Z openthesky quit (Ping timeout: 265 seconds) 2018-01-07T20:30:03Z wladz_ joined #lisp 2018-01-07T20:31:05Z Murii quit (Ping timeout: 240 seconds) 2018-01-07T20:31:32Z fikka joined #lisp 2018-01-07T20:32:01Z Ven`` quit (Ping timeout: 248 seconds) 2018-01-07T20:33:36Z Poeticode_ joined #lisp 2018-01-07T20:33:36Z dotcra joined #lisp 2018-01-07T20:33:41Z jself_ joined #lisp 2018-01-07T20:33:50Z Ellusionist joined #lisp 2018-01-07T20:34:12Z les` joined #lisp 2018-01-07T20:35:03Z Poeticode quit (*.net *.split) 2018-01-07T20:35:03Z antoszka quit (*.net *.split) 2018-01-07T20:35:03Z rme quit (*.net *.split) 2018-01-07T20:35:04Z ArthurAGleckler[ quit (*.net *.split) 2018-01-07T20:35:04Z hdurer[m] quit (*.net *.split) 2018-01-07T20:35:04Z abbe quit (*.net *.split) 2018-01-07T20:35:04Z tkd quit (*.net *.split) 2018-01-07T20:35:04Z jself quit (*.net *.split) 2018-01-07T20:35:04Z dotc quit (*.net *.split) 2018-01-07T20:35:04Z les quit (*.net *.split) 2018-01-07T20:35:04Z wladz quit (*.net *.split) 2018-01-07T20:35:04Z salva quit (*.net *.split) 2018-01-07T20:35:25Z abbe joined #lisp 2018-01-07T20:36:25Z Ven`` joined #lisp 2018-01-07T20:36:28Z fikka quit (Ping timeout: 252 seconds) 2018-01-07T20:36:34Z eivarv quit (Quit: Sleep) 2018-01-07T20:37:27Z akkad quit (Ping timeout: 240 seconds) 2018-01-07T20:37:27Z raydeejay quit (Ping timeout: 240 seconds) 2018-01-07T20:37:57Z rgrau quit (Ping timeout: 240 seconds) 2018-01-07T20:37:58Z raydeejay joined #lisp 2018-01-07T20:41:18Z rgrau joined #lisp 2018-01-07T20:47:02Z scymtym joined #lisp 2018-01-07T20:47:35Z eivarv joined #lisp 2018-01-07T20:49:02Z damke_ joined #lisp 2018-01-07T20:49:44Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-07T20:50:21Z akkad joined #lisp 2018-01-07T20:51:21Z damke quit (Ping timeout: 264 seconds) 2018-01-07T20:51:50Z fikka joined #lisp 2018-01-07T20:54:01Z marusich joined #lisp 2018-01-07T20:56:50Z fikka quit (Ping timeout: 260 seconds) 2018-01-07T20:58:08Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-07T20:59:23Z Oladon quit (Quit: Leaving.) 2018-01-07T21:01:57Z Ellusionist quit (Ping timeout: 240 seconds) 2018-01-07T21:02:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T21:02:17Z fikka joined #lisp 2018-01-07T21:02:40Z salva joined #lisp 2018-01-07T21:04:17Z hdurer[m] joined #lisp 2018-01-07T21:06:35Z pjb quit (Remote host closed the connection) 2018-01-07T21:07:00Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T21:07:15Z rme joined #lisp 2018-01-07T21:07:15Z antoszka joined #lisp 2018-01-07T21:07:15Z ArthurAGleckler[ joined #lisp 2018-01-07T21:07:15Z tkd joined #lisp 2018-01-07T21:08:12Z pjb joined #lisp 2018-01-07T21:08:52Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-07T21:12:19Z fikka joined #lisp 2018-01-07T21:12:32Z bms_ quit (Remote host closed the connection) 2018-01-07T21:12:49Z pjb quit (Ping timeout: 255 seconds) 2018-01-07T21:14:15Z openthesky joined #lisp 2018-01-07T21:14:15Z openthesky quit (Changing host) 2018-01-07T21:14:15Z openthesky joined #lisp 2018-01-07T21:15:01Z bms_ joined #lisp 2018-01-07T21:15:23Z peterpp is now known as pagnol 2018-01-07T21:16:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-07T21:17:07Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T21:17:54Z red-dot joined #lisp 2018-01-07T21:18:25Z openthesky quit (Disconnected by services) 2018-01-07T21:23:21Z DeadTrickster_ joined #lisp 2018-01-07T21:26:20Z jcowan quit (Ping timeout: 265 seconds) 2018-01-07T21:26:27Z DeadTrickster quit (Ping timeout: 240 seconds) 2018-01-07T21:27:58Z mtd joined #lisp 2018-01-07T21:28:31Z bgardner quit (Ping timeout: 248 seconds) 2018-01-07T21:32:22Z fikka joined #lisp 2018-01-07T21:32:44Z pagnol quit (Read error: No route to host) 2018-01-07T21:33:45Z pagnol joined #lisp 2018-01-07T21:36:31Z Shinmera: phoe: Trivial-arguments does not use swank. 2018-01-07T21:37:27Z fikka quit (Ping timeout: 265 seconds) 2018-01-07T21:38:58Z zmt00 joined #lisp 2018-01-07T21:44:26Z jfb4 quit (Ping timeout: 276 seconds) 2018-01-07T21:46:03Z jfb4 joined #lisp 2018-01-07T21:46:54Z fikka joined #lisp 2018-01-07T21:47:49Z fikka quit (Client Quit) 2018-01-07T21:48:18Z fikka joined #lisp 2018-01-07T21:48:48Z jcowan joined #lisp 2018-01-07T21:49:51Z pierpa joined #lisp 2018-01-07T21:51:43Z attila_lendvai joined #lisp 2018-01-07T21:54:45Z rumbler31 joined #lisp 2018-01-07T21:57:41Z fiddlerwoaroof_ joined #lisp 2018-01-07T21:58:57Z fiddlerwoaroof quit (Ping timeout: 248 seconds) 2018-01-07T22:00:35Z random-nick quit (Remote host closed the connection) 2018-01-07T22:01:05Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-07T22:02:25Z eazar001 joined #lisp 2018-01-07T22:02:32Z eivarv quit (Quit: Sleep) 2018-01-07T22:03:36Z brendyn joined #lisp 2018-01-07T22:05:05Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-07T22:05:08Z eivarv joined #lisp 2018-01-07T22:05:26Z fluke` quit (Read error: Connection reset by peer) 2018-01-07T22:06:02Z wxie joined #lisp 2018-01-07T22:06:22Z milanj_ joined #lisp 2018-01-07T22:08:31Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-07T22:09:20Z quazimodo joined #lisp 2018-01-07T22:10:23Z fluke joined #lisp 2018-01-07T22:10:29Z sellout- joined #lisp 2018-01-07T22:10:43Z fluke is now known as Guest81799 2018-01-07T22:11:12Z nowhere_man joined #lisp 2018-01-07T22:11:17Z Guest81799 quit (Read error: Connection reset by peer) 2018-01-07T22:15:33Z sellout- quit (Quit: Leaving.) 2018-01-07T22:16:43Z attila_lendvai joined #lisp 2018-01-07T22:18:29Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T22:18:56Z eazar001 quit (Quit: WeeChat 2.0.1) 2018-01-07T22:23:32Z bms_ quit (Remote host closed the connection) 2018-01-07T22:25:56Z thijso joined #lisp 2018-01-07T22:26:45Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-07T22:28:26Z jfb4 joined #lisp 2018-01-07T22:28:33Z openthesky joined #lisp 2018-01-07T22:28:42Z pmetzger quit 2018-01-07T22:32:45Z quazimodo quit (Ping timeout: 264 seconds) 2018-01-07T22:34:07Z quazimodo joined #lisp 2018-01-07T22:38:37Z epony quit (Quit: QUIT) 2018-01-07T22:38:58Z sellout- joined #lisp 2018-01-07T22:40:22Z sellout- quit (Client Quit) 2018-01-07T22:40:46Z damke_ joined #lisp 2018-01-07T22:41:30Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-07T22:41:50Z nowhere_man joined #lisp 2018-01-07T22:44:38Z fluke` joined #lisp 2018-01-07T22:49:06Z red-dot joined #lisp 2018-01-07T22:49:36Z Karl_Dscc quit (Remote host closed the connection) 2018-01-07T22:49:37Z shka quit (Ping timeout: 248 seconds) 2018-01-07T22:49:43Z phoe: Shinmera: wait, it doesn't fall back to swank in case nothing works? 2018-01-07T22:56:19Z Shinmera: It doesn't because there's no point. 2018-01-07T22:56:25Z Shinmera: It includes all the implementation swank supports 2018-01-07T22:57:47Z phoe: TIL. Thanks. 2018-01-07T22:58:13Z Shinmera: It used to fall back on swank but I removed that as it introduced the optional dependency mess into the FASL 2018-01-07T22:59:47Z Shinmera: And as mentioned there's no point 2018-01-07T23:00:08Z Shinmera: If new implementations spring out of the ether they'll have a plethora of other wrapper libraries to update already anyway 2018-01-07T23:00:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-07T23:01:52Z dddddd quit (Remote host closed the connection) 2018-01-07T23:03:50Z damke__ joined #lisp 2018-01-07T23:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-07T23:04:00Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-07T23:04:25Z mathrick quit (Ping timeout: 252 seconds) 2018-01-07T23:05:38Z bms_ joined #lisp 2018-01-07T23:06:45Z Shinmera: On that note I'd be happy if someone could add the few missing implementations to Dissect 2018-01-07T23:07:38Z wxie quit (Remote host closed the connection) 2018-01-07T23:07:42Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-07T23:07:45Z Shinmera: (adding locals and in-frame evaluation to it would also be nice) 2018-01-07T23:10:28Z josemanuel quit (Quit: leaving) 2018-01-07T23:15:33Z epony joined #lisp 2018-01-07T23:16:48Z epony quit (Max SendQ exceeded) 2018-01-07T23:17:59Z epony joined #lisp 2018-01-07T23:19:16Z Oladon joined #lisp 2018-01-07T23:21:51Z mishoo_ quit (Ping timeout: 265 seconds) 2018-01-07T23:22:36Z SuperJen quit (Remote host closed the connection) 2018-01-07T23:23:56Z attila_lendvai joined #lisp 2018-01-07T23:23:56Z attila_lendvai quit (Changing host) 2018-01-07T23:23:56Z attila_lendvai joined #lisp 2018-01-07T23:26:33Z Kaisyu joined #lisp 2018-01-07T23:34:17Z jstypo quit (Read error: Connection reset by peer) 2018-01-07T23:38:35Z pillton quit (Ping timeout: 248 seconds) 2018-01-07T23:38:59Z quazimodo joined #lisp 2018-01-07T23:42:32Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-07T23:44:05Z varjagg quit (Ping timeout: 265 seconds) 2018-01-07T23:45:17Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-07T23:45:38Z nowhere_man joined #lisp 2018-01-07T23:46:39Z rumbler31 quit (Remote host closed the connection) 2018-01-07T23:48:25Z ckonstanski joined #lisp 2018-01-07T23:49:41Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-07T23:50:52Z jstypo joined #lisp 2018-01-07T23:58:25Z attila_lendvai joined #lisp 2018-01-08T00:05:05Z aindilis quit (Ping timeout: 252 seconds) 2018-01-08T00:05:46Z CharlieBrown quit (Remote host closed the connection) 2018-01-08T00:05:48Z Jach[m] quit (Remote host closed the connection) 2018-01-08T00:05:49Z RichardPaulBck[m quit (Read error: Connection reset by peer) 2018-01-08T00:05:50Z hdurer[m] quit (Read error: Connection reset by peer) 2018-01-08T00:05:54Z equalunique[m] quit (Write error: Connection reset by peer) 2018-01-08T00:05:54Z kammd[m] quit (Remote host closed the connection) 2018-01-08T00:05:55Z plll[m] quit (Read error: Connection reset by peer) 2018-01-08T00:05:56Z ArthurAGleckler[ quit (Remote host closed the connection) 2018-01-08T00:05:58Z mhitchman[m] quit (Remote host closed the connection) 2018-01-08T00:05:58Z hiq[m] quit (Read error: Connection reset by peer) 2018-01-08T00:05:59Z dirb quit (Read error: Connection reset by peer) 2018-01-08T00:05:59Z katco[m] quit (Read error: Connection reset by peer) 2018-01-08T00:05:59Z kfdenden[m] quit (Remote host closed the connection) 2018-01-08T00:05:59Z cryptomarauder quit (Remote host closed the connection) 2018-01-08T00:06:46Z mathrick joined #lisp 2018-01-08T00:07:52Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T00:08:10Z drcode quit (Ping timeout: 260 seconds) 2018-01-08T00:10:42Z red-dot joined #lisp 2018-01-08T00:12:05Z jcowan quit (Ping timeout: 240 seconds) 2018-01-08T00:13:00Z easye` joined #lisp 2018-01-08T00:14:46Z CharlieBrown joined #lisp 2018-01-08T00:15:14Z les` quit (Ping timeout: 276 seconds) 2018-01-08T00:15:53Z Riviera- quit (Ping timeout: 276 seconds) 2018-01-08T00:15:53Z pchrist quit (Ping timeout: 276 seconds) 2018-01-08T00:15:53Z jasom quit (Ping timeout: 276 seconds) 2018-01-08T00:16:28Z vancan1ty quit (Ping timeout: 265 seconds) 2018-01-08T00:17:50Z easye quit (Ping timeout: 276 seconds) 2018-01-08T00:18:53Z randomstrangerb quit (Ping timeout: 265 seconds) 2018-01-08T00:20:05Z randomstrangerb joined #lisp 2018-01-08T00:20:23Z Oladon quit (Quit: Leaving.) 2018-01-08T00:20:28Z les joined #lisp 2018-01-08T00:22:41Z prometheus_falli joined #lisp 2018-01-08T00:23:23Z attila_lendvai joined #lisp 2018-01-08T00:24:00Z pchrist joined #lisp 2018-01-08T00:24:09Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-08T00:27:54Z Riviera- joined #lisp 2018-01-08T00:28:08Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T00:28:28Z jasom joined #lisp 2018-01-08T00:29:55Z mhitchman[m] joined #lisp 2018-01-08T00:29:55Z kammd[m] joined #lisp 2018-01-08T00:29:55Z Jach[m] joined #lisp 2018-01-08T00:29:55Z kfdenden[m] joined #lisp 2018-01-08T00:29:56Z RichardPaulBck[m joined #lisp 2018-01-08T00:29:56Z equalunique[m] joined #lisp 2018-01-08T00:29:56Z hdurer[m] joined #lisp 2018-01-08T00:29:56Z cryptomarauder joined #lisp 2018-01-08T00:29:56Z plll[m] joined #lisp 2018-01-08T00:29:56Z hiq[m] joined #lisp 2018-01-08T00:30:02Z katco[m] joined #lisp 2018-01-08T00:30:03Z dirb joined #lisp 2018-01-08T00:30:04Z ArthurAGleckler[ joined #lisp 2018-01-08T00:30:25Z gigetoo quit (Ping timeout: 248 seconds) 2018-01-08T00:31:25Z gigetoo joined #lisp 2018-01-08T00:32:31Z JenElizabeth joined #lisp 2018-01-08T00:34:11Z jcowan joined #lisp 2018-01-08T00:35:23Z randomstrangerb quit (Ping timeout: 276 seconds) 2018-01-08T00:35:39Z fikka quit (Ping timeout: 268 seconds) 2018-01-08T00:36:36Z randomstrangerb joined #lisp 2018-01-08T00:41:34Z orivej joined #lisp 2018-01-08T00:42:52Z attila_lendvai joined #lisp 2018-01-08T00:45:45Z orivej quit (Ping timeout: 246 seconds) 2018-01-08T00:46:38Z antonv joined #lisp 2018-01-08T00:49:41Z randomstrangerb quit (Ping timeout: 276 seconds) 2018-01-08T00:50:54Z randomstrangerb joined #lisp 2018-01-08T00:51:04Z fikka joined #lisp 2018-01-08T00:55:56Z fikka quit (Ping timeout: 255 seconds) 2018-01-08T00:57:44Z randomstrangerb quit (Ping timeout: 252 seconds) 2018-01-08T00:57:53Z antonv quit (Remote host closed the connection) 2018-01-08T00:59:00Z randomstrangerb joined #lisp 2018-01-08T01:00:19Z megalography quit (Quit: Leaving.) 2018-01-08T01:00:59Z broccolistem quit (Quit: WeeChat 2.1-dev) 2018-01-08T01:01:26Z fikka joined #lisp 2018-01-08T01:02:54Z eivarv quit (Quit: Sleep) 2018-01-08T01:03:06Z broccolistem joined #lisp 2018-01-08T01:03:44Z SuperJen joined #lisp 2018-01-08T01:06:06Z smurfrobot quit (Remote host closed the connection) 2018-01-08T01:06:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-08T01:07:27Z JenElizabeth quit (Ping timeout: 246 seconds) 2018-01-08T01:07:57Z smurfrob_ joined #lisp 2018-01-08T01:11:51Z pierpa quit (Quit: Page closed) 2018-01-08T01:11:51Z fikka joined #lisp 2018-01-08T01:12:22Z shifty joined #lisp 2018-01-08T01:12:54Z varjagg joined #lisp 2018-01-08T01:12:55Z smurfrob_ quit (Ping timeout: 260 seconds) 2018-01-08T01:15:01Z orivej joined #lisp 2018-01-08T01:16:59Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T01:17:38Z varjagg quit (Ping timeout: 276 seconds) 2018-01-08T01:17:38Z itruslove quit (Ping timeout: 276 seconds) 2018-01-08T01:17:50Z smurfrobot joined #lisp 2018-01-08T01:21:27Z fikka joined #lisp 2018-01-08T01:22:08Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-08T01:23:24Z itruslove joined #lisp 2018-01-08T01:25:51Z Arcaelyx quit (Read error: Connection reset by peer) 2018-01-08T01:26:00Z fikka quit (Ping timeout: 246 seconds) 2018-01-08T01:26:33Z orivej quit (Ping timeout: 265 seconds) 2018-01-08T01:26:39Z smurfrobot joined #lisp 2018-01-08T01:26:54Z Arcaelyx joined #lisp 2018-01-08T01:28:18Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T01:31:23Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T01:32:27Z markong quit (Ping timeout: 256 seconds) 2018-01-08T01:35:10Z smurfrobot joined #lisp 2018-01-08T01:35:59Z mathrick quit (Ping timeout: 248 seconds) 2018-01-08T01:36:38Z igemnace joined #lisp 2018-01-08T01:39:35Z smurfrobot quit (Ping timeout: 255 seconds) 2018-01-08T01:41:12Z nirved quit (Quit: Leaving) 2018-01-08T01:41:40Z fikka joined #lisp 2018-01-08T01:43:18Z attila_lendvai joined #lisp 2018-01-08T01:43:45Z turkja joined #lisp 2018-01-08T01:46:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T01:47:22Z vancan1ty joined #lisp 2018-01-08T01:48:47Z orivej joined #lisp 2018-01-08T01:52:07Z fikka joined #lisp 2018-01-08T01:53:39Z shifty quit (Ping timeout: 246 seconds) 2018-01-08T01:56:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-08T02:01:39Z smurfrobot joined #lisp 2018-01-08T02:03:22Z emaczen joined #lisp 2018-01-08T02:04:15Z orivej quit (Ping timeout: 248 seconds) 2018-01-08T02:04:36Z d4ryus1 joined #lisp 2018-01-08T02:05:37Z jameser joined #lisp 2018-01-08T02:06:23Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-08T02:06:51Z pagnol quit (Quit: Ex-Chat) 2018-01-08T02:06:54Z ckonstanski quit (Remote host closed the connection) 2018-01-08T02:07:05Z openthesky quit (Quit: Page closed) 2018-01-08T02:07:33Z test1600 joined #lisp 2018-01-08T02:07:35Z d4ryus quit (Ping timeout: 256 seconds) 2018-01-08T02:09:29Z smurfrobot joined #lisp 2018-01-08T02:12:08Z fikka joined #lisp 2018-01-08T02:14:24Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T02:15:33Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-08T02:17:26Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T02:19:33Z erikc quit 2018-01-08T02:19:54Z smurfrobot joined #lisp 2018-01-08T02:22:34Z fikka joined #lisp 2018-01-08T02:24:33Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T02:27:17Z fikka quit (Ping timeout: 255 seconds) 2018-01-08T02:28:28Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T02:29:50Z Zhivago joined #lisp 2018-01-08T02:29:58Z Zhivago quit (Changing host) 2018-01-08T02:29:58Z Zhivago joined #lisp 2018-01-08T02:32:36Z fikka joined #lisp 2018-01-08T02:34:28Z orivej joined #lisp 2018-01-08T02:34:50Z zooey quit (Remote host closed the connection) 2018-01-08T02:35:32Z zooey joined #lisp 2018-01-08T02:37:13Z smasta joined #lisp 2018-01-08T02:37:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-08T02:43:52Z attila_lendvai joined #lisp 2018-01-08T02:51:14Z orivej quit (Ping timeout: 276 seconds) 2018-01-08T02:51:57Z brendyn quit (Ping timeout: 240 seconds) 2018-01-08T02:52:01Z FreeBirdLjj joined #lisp 2018-01-08T02:52:39Z fikka joined #lisp 2018-01-08T02:57:25Z fikka quit (Ping timeout: 265 seconds) 2018-01-08T03:00:25Z damke joined #lisp 2018-01-08T03:03:05Z fikka joined #lisp 2018-01-08T03:03:21Z damke__ quit (Ping timeout: 264 seconds) 2018-01-08T03:04:53Z vancan1ty quit (Ping timeout: 276 seconds) 2018-01-08T03:08:08Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T03:09:40Z randomstrangerb quit (Ping timeout: 255 seconds) 2018-01-08T03:10:54Z randomstrangerb joined #lisp 2018-01-08T03:11:58Z rumbler31 joined #lisp 2018-01-08T03:13:10Z fikka joined #lisp 2018-01-08T03:13:19Z varjagg joined #lisp 2018-01-08T03:15:49Z rumbler31 quit (Remote host closed the connection) 2018-01-08T03:15:51Z EvW1 quit (Ping timeout: 240 seconds) 2018-01-08T03:17:27Z varjagg quit (Ping timeout: 240 seconds) 2018-01-08T03:18:32Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T03:21:32Z orivej joined #lisp 2018-01-08T03:22:01Z rumbler31 joined #lisp 2018-01-08T03:23:31Z fikka joined #lisp 2018-01-08T03:25:46Z pillton joined #lisp 2018-01-08T03:27:16Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-08T03:28:00Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T03:28:17Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T03:31:45Z rumbler31 quit (Remote host closed the connection) 2018-01-08T03:32:42Z smasta quit (Ping timeout: 265 seconds) 2018-01-08T03:33:04Z sonologico quit (Ping timeout: 255 seconds) 2018-01-08T03:33:18Z nowhere_man quit (Remote host closed the connection) 2018-01-08T03:33:24Z fikka joined #lisp 2018-01-08T03:33:41Z nowhere_man joined #lisp 2018-01-08T03:37:11Z emacsomancer quit (Ping timeout: 240 seconds) 2018-01-08T03:38:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-08T03:39:46Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-08T03:40:11Z Xal quit (Ping timeout: 255 seconds) 2018-01-08T03:40:47Z orivej quit (Ping timeout: 248 seconds) 2018-01-08T03:41:00Z rumbler31 joined #lisp 2018-01-08T03:41:58Z Arcaelyx joined #lisp 2018-01-08T03:42:49Z attila_lendvai joined #lisp 2018-01-08T03:43:49Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T03:47:39Z rumbler31 quit (Remote host closed the connection) 2018-01-08T03:52:12Z asarch quit (Quit: Leaving) 2018-01-08T03:52:27Z rumbler31 joined #lisp 2018-01-08T03:53:32Z fikka joined #lisp 2018-01-08T03:53:55Z red-dot joined #lisp 2018-01-08T03:58:32Z fikka quit (Ping timeout: 268 seconds) 2018-01-08T03:58:39Z orivej joined #lisp 2018-01-08T04:01:14Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-08T04:01:55Z FreeBirdLjj joined #lisp 2018-01-08T04:05:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-08T04:06:58Z Oladon joined #lisp 2018-01-08T04:10:22Z nika joined #lisp 2018-01-08T04:13:49Z fikka joined #lisp 2018-01-08T04:16:16Z beach: Good morning everyone! 2018-01-08T04:16:27Z bms_: Hello! 2018-01-08T04:19:06Z fikka quit (Ping timeout: 265 seconds) 2018-01-08T04:22:14Z orivej quit (Ping timeout: 276 seconds) 2018-01-08T04:24:18Z fikka joined #lisp 2018-01-08T04:27:34Z prometheus_falli joined #lisp 2018-01-08T04:28:02Z bms_ quit (Quit: Leaving) 2018-01-08T04:28:48Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T04:29:23Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T04:34:18Z fikka joined #lisp 2018-01-08T04:35:01Z jmercouris joined #lisp 2018-01-08T04:35:26Z jmercouris: I've written the following macro: https://gist.github.com/c03beb8186575f488f35e2cf8c2bac61 2018-01-08T04:35:48Z jmercouris: What I would like to do is process the symbol result in the lambda list, but I'm not sure how to do that 2018-01-08T04:35:54Z FreeBirdLjj joined #lisp 2018-01-08T04:36:03Z jmercouris: The only thing that comes to mind is nesting another lambda 2018-01-08T04:36:31Z bgardner joined #lisp 2018-01-08T04:36:50Z Bike: how do you want to "process"? what is "the symbol result"? 2018-01-08T04:37:10Z jmercouris: the symbol result is ",symbol" this is the third argument to interface:web-view-execute 2018-01-08T04:37:27Z attila_lendvai joined #lisp 2018-01-08T04:37:28Z jmercouris: interface:web-view-execute will funcall the lambda defined in the macro 2018-01-08T04:37:48Z jmercouris: I want to decode the json result before passing it directly 2018-01-08T04:38:09Z jmercouris: sorry, that was a really bad explanation, let me rephrase it 2018-01-08T04:38:36Z jmercouris: I have a macro called with-parenscript which will execute some parenscript in a webview and return the result in a lambda 2018-01-08T04:38:39Z jmercouris: this is the macro I posted 2018-01-08T04:38:41Z smasta joined #lisp 2018-01-08T04:39:16Z jmercouris: What I would like to do is somehow execute cl-json:decode-json-from-string upon that result before it is passed to the macro 2018-01-08T04:39:32Z jmercouris: s/macro/lamdba 2018-01-08T04:39:47Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T04:39:54Z jmercouris: does that still not make sense? I am pretty tired 2018-01-08T04:40:28Z Bike: how about you have that same expansion, except (lambda ([gensym]) (let ((,symbol (decode-json-from-string [gensym]))) ,@body))? 2018-01-08T04:40:48Z jmercouris: what does [gensym] do? 2018-01-08T04:40:53Z jmercouris: I've never seen square brackets in code 2018-01-08T04:41:06Z mfiano: generates a unique symbol such that the it doesn't conflict with the user's body code 2018-01-08T04:41:44Z jmercouris: Bike: Yes, that makes sense, thank you 2018-01-08T04:41:59Z Bike: it's nto actual syntax 2018-01-08T04:42:01Z mfiano: He was denoting that you should use a gensym'd symbol instead of a literal symbol 2018-01-08T04:42:05Z attila_lendvai1 joined #lisp 2018-01-08T04:42:05Z attila_lendvai quit (Disconnected by services) 2018-01-08T04:42:05Z attila_lendvai1 quit (Changing host) 2018-01-08T04:42:05Z attila_lendvai1 joined #lisp 2018-01-08T04:42:11Z jmercouris: Ah damnit 2018-01-08T04:42:14Z Bike: i mean to do (let ((something (gensym))) `(lambda (,something) ...)) 2018-01-08T04:42:14Z jmercouris: I thought it could just make one 2018-01-08T04:43:11Z jmercouris: But what should I make the symbol? 2018-01-08T04:43:14Z smurfrobot joined #lisp 2018-01-08T04:43:17Z jmercouris: The user might accidentally use it 2018-01-08T04:43:22Z Bike: what? 2018-01-08T04:43:28Z mfiano: umm 2018-01-08T04:43:29Z jmercouris: the one generated 2018-01-08T04:43:31Z Bike: use the gensym function, it makes a new symbol 2018-01-08T04:43:37Z Bike: the user can't access it unless you let them 2018-01-08T04:43:41Z jmercouris: Okay I see 2018-01-08T04:43:47Z jmercouris: How is that possible? 2018-01-08T04:44:01Z jmercouris: You've written (lambda (gensym)) wouldn't the symbol be accessible within the lambda body? 2018-01-08T04:44:05Z beach: What would you do in order to access it? 2018-01-08T04:44:14Z schoppenhauer quit (Ping timeout: 265 seconds) 2018-01-08T04:44:18Z jmercouris: Just on accident, not on purpose 2018-01-08T04:44:25Z beach: But how? 2018-01-08T04:44:28Z beach: What would you type? 2018-01-08T04:44:30Z fikka joined #lisp 2018-01-08T04:44:52Z jmercouris: Ah, ok I didn't understand gensym 2018-01-08T04:45:02Z jmercouris: so if I don't pass any args it will make some random symbol for me it seems 2018-01-08T04:45:03Z bgardner quit (Read error: Connection reset by peer) 2018-01-08T04:45:04Z beach: I suggest you go read On Lisp. 2018-01-08T04:45:50Z beach: It is all about macro programming, and it explains why the use of GENSYM is essential to avoid unintentional capture. 2018-01-08T04:45:56Z schoppenhauer joined #lisp 2018-01-08T04:46:15Z jmercouris: just downloaded it 2018-01-08T04:46:26Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-08T04:46:29Z jmercouris: I'll try to get to it, I've already got quite a list :D 2018-01-08T04:46:30Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-08T04:46:36Z jmercouris: or a queue rather 2018-01-08T04:47:12Z pransninja joined #lisp 2018-01-08T04:48:08Z smurfrobot quit (Ping timeout: 255 seconds) 2018-01-08T04:48:14Z beach: I understand. But if you are going to write macros as part of your code, it is essential that you get them right. 2018-01-08T04:48:27Z jmercouris: Yeah, mine are an absolute mess right now 2018-01-08T04:48:28Z FreeBirdLjj joined #lisp 2018-01-08T04:48:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T04:48:59Z jmercouris: earlier bike had given me a good explanation, but I still don't know all the functions/tips and tricks available 2018-01-08T04:49:18Z jmercouris: so I understand the defmacro form a lot more than I used to, but for example, I didn't know about the existence of gensym 2018-01-08T04:49:42Z attila_lendvai1 quit (Ping timeout: 272 seconds) 2018-01-08T04:52:59Z orivej joined #lisp 2018-01-08T04:53:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T04:53:42Z igemnace joined #lisp 2018-01-08T04:54:36Z red-dot joined #lisp 2018-01-08T04:54:36Z fikka joined #lisp 2018-01-08T04:59:15Z fikka quit (Ping timeout: 260 seconds) 2018-01-08T05:04:56Z fikka joined #lisp 2018-01-08T05:05:37Z attila_lendvai joined #lisp 2018-01-08T05:06:45Z nsrahmad joined #lisp 2018-01-08T05:09:29Z fikka quit (Ping timeout: 256 seconds) 2018-01-08T05:09:51Z orivej quit (Ping timeout: 265 seconds) 2018-01-08T05:12:57Z manualcrank quit (Quit: WeeChat 2.0.1) 2018-01-08T05:13:43Z varjagg joined #lisp 2018-01-08T05:15:02Z fikka joined #lisp 2018-01-08T05:17:29Z smurfrobot joined #lisp 2018-01-08T05:18:42Z varjagg quit (Ping timeout: 268 seconds) 2018-01-08T05:19:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-08T05:22:25Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T05:24:19Z shifty joined #lisp 2018-01-08T05:25:03Z fikka joined #lisp 2018-01-08T05:25:19Z smurfrobot joined #lisp 2018-01-08T05:27:20Z orivej joined #lisp 2018-01-08T05:28:20Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T05:29:37Z fikka quit (Ping timeout: 248 seconds) 2018-01-08T05:29:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T05:30:23Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-08T05:30:44Z smurfrobot joined #lisp 2018-01-08T05:36:33Z orivej quit (Ping timeout: 248 seconds) 2018-01-08T05:37:24Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T05:38:09Z pransninja quit (Ping timeout: 260 seconds) 2018-01-08T05:38:14Z smurfrobot joined #lisp 2018-01-08T05:38:35Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-08T05:39:27Z jameser quit (Ping timeout: 240 seconds) 2018-01-08T05:41:35Z jameser joined #lisp 2018-01-08T05:42:19Z orivej joined #lisp 2018-01-08T05:42:43Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T05:43:57Z jcowan quit (Ping timeout: 246 seconds) 2018-01-08T05:44:20Z attila_lendvai joined #lisp 2018-01-08T05:45:09Z fikka joined #lisp 2018-01-08T05:50:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-08T05:50:36Z Bike quit (Quit: Lost terminal) 2018-01-08T05:50:38Z nsrahmad quit (Ping timeout: 276 seconds) 2018-01-08T05:53:40Z epony quit (Quit: QUIT) 2018-01-08T05:54:13Z Xal joined #lisp 2018-01-08T05:54:33Z smurfrobot joined #lisp 2018-01-08T05:55:33Z fikka joined #lisp 2018-01-08T05:55:44Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-08T05:57:26Z jfb4 joined #lisp 2018-01-08T05:59:51Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T06:00:18Z oleo quit (Quit: Leaving) 2018-01-08T06:00:57Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-08T06:01:07Z raynold: ahh it's a wonderful day 2018-01-08T06:02:11Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T06:02:17Z damke_ joined #lisp 2018-01-08T06:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-08T06:15:34Z fikka joined #lisp 2018-01-08T06:15:56Z smurfrobot joined #lisp 2018-01-08T06:18:36Z emacsomancer joined #lisp 2018-01-08T06:19:52Z JuanDaugherty joined #lisp 2018-01-08T06:20:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T06:20:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-08T06:21:12Z damke joined #lisp 2018-01-08T06:22:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-08T06:24:01Z logicmoo: a macro-function always has the signature as (&whole w env) ? 2018-01-08T06:24:49Z smurfrobot joined #lisp 2018-01-08T06:25:59Z fikka joined #lisp 2018-01-08T06:26:30Z reverse_light joined #lisp 2018-01-08T06:26:45Z logicmoo: oh i see its just (waswhole env) 2018-01-08T06:28:30Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T06:29:37Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-08T06:30:51Z fikka quit (Ping timeout: 268 seconds) 2018-01-08T06:31:59Z SlashLife quit (Changing host) 2018-01-08T06:31:59Z SlashLife joined #lisp 2018-01-08T06:32:34Z SlashLife quit (Changing host) 2018-01-08T06:32:34Z SlashLife joined #lisp 2018-01-08T06:36:10Z fikka joined #lisp 2018-01-08T06:37:56Z smurfrobot joined #lisp 2018-01-08T06:38:47Z orivej quit (Ping timeout: 265 seconds) 2018-01-08T06:39:49Z shka joined #lisp 2018-01-08T06:40:13Z Karl_Dscc joined #lisp 2018-01-08T06:41:12Z fikka quit (Ping timeout: 265 seconds) 2018-01-08T06:41:54Z pjb joined #lisp 2018-01-08T06:42:07Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-08T06:42:10Z fluke` quit (Ping timeout: 265 seconds) 2018-01-08T06:43:29Z beach: Yes, a macro function takes the entire form and an environment object as arguments. 2018-01-08T06:43:43Z attila_lendvai joined #lisp 2018-01-08T06:45:26Z rippa joined #lisp 2018-01-08T06:46:13Z fikka joined #lisp 2018-01-08T06:47:58Z smasta quit (Ping timeout: 265 seconds) 2018-01-08T06:53:41Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T06:55:42Z randomstrangerb quit (Ping timeout: 246 seconds) 2018-01-08T06:56:10Z orivej joined #lisp 2018-01-08T06:56:17Z vlatkoB joined #lisp 2018-01-08T06:56:57Z randomstrangerb joined #lisp 2018-01-08T06:57:11Z smurfrobot joined #lisp 2018-01-08T06:57:15Z rumbler31 quit (Remote host closed the connection) 2018-01-08T06:57:23Z Oladon quit (Quit: Leaving.) 2018-01-08T06:57:52Z jameser quit (Remote host closed the connection) 2018-01-08T06:58:55Z jameser joined #lisp 2018-01-08T07:00:19Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-08T07:01:39Z smurfrobot quit (Ping timeout: 246 seconds) 2018-01-08T07:02:32Z varjagg joined #lisp 2018-01-08T07:03:25Z fikka joined #lisp 2018-01-08T07:06:38Z smurfrobot joined #lisp 2018-01-08T07:07:02Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-08T07:07:18Z varjagg quit (Ping timeout: 265 seconds) 2018-01-08T07:10:47Z pyx joined #lisp 2018-01-08T07:10:51Z pyx quit (Client Quit) 2018-01-08T07:10:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T07:11:19Z scymtym quit (Ping timeout: 256 seconds) 2018-01-08T07:11:29Z Karl_Dscc quit (Remote host closed the connection) 2018-01-08T07:13:16Z equalunique[m] quit (*.net *.split) 2018-01-08T07:13:16Z antoszka quit (*.net *.split) 2018-01-08T07:13:16Z rme quit (*.net *.split) 2018-01-08T07:13:16Z tkd quit (*.net *.split) 2018-01-08T07:13:52Z rme joined #lisp 2018-01-08T07:13:54Z antoszka joined #lisp 2018-01-08T07:14:12Z tkd joined #lisp 2018-01-08T07:14:38Z equalunique[m] joined #lisp 2018-01-08T07:15:56Z Murii joined #lisp 2018-01-08T07:15:57Z gabiruh quit (Ping timeout: 240 seconds) 2018-01-08T07:16:04Z smurfrobot joined #lisp 2018-01-08T07:17:56Z gabiruh joined #lisp 2018-01-08T07:20:50Z smurfrobot quit (Ping timeout: 265 seconds) 2018-01-08T07:23:41Z fortitude__ joined #lisp 2018-01-08T07:26:55Z fortitude_ quit (Ping timeout: 248 seconds) 2018-01-08T07:28:03Z eivarv joined #lisp 2018-01-08T07:28:40Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T07:32:48Z epony joined #lisp 2018-01-08T07:33:05Z flamebeard joined #lisp 2018-01-08T07:33:48Z Jen joined #lisp 2018-01-08T07:34:30Z epony quit (Max SendQ exceeded) 2018-01-08T07:34:41Z mishoo_ joined #lisp 2018-01-08T07:34:52Z epony joined #lisp 2018-01-08T07:35:59Z orivej quit (Ping timeout: 248 seconds) 2018-01-08T07:37:52Z SuperJen quit (Ping timeout: 255 seconds) 2018-01-08T07:38:45Z chens joined #lisp 2018-01-08T07:38:46Z smurfrobot joined #lisp 2018-01-08T07:43:41Z attila_lendvai joined #lisp 2018-01-08T07:43:41Z attila_lendvai quit (Changing host) 2018-01-08T07:43:41Z attila_lendvai joined #lisp 2018-01-08T07:43:45Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-08T07:43:49Z eivarv quit (Quit: Sleep) 2018-01-08T07:44:02Z quazimodo quit (Ping timeout: 265 seconds) 2018-01-08T07:48:49Z smurfrobot joined #lisp 2018-01-08T07:53:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T07:55:57Z smurfrobot joined #lisp 2018-01-08T08:00:37Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-08T08:10:04Z chens quit (Read error: Connection reset by peer) 2018-01-08T08:10:29Z chens joined #lisp 2018-01-08T08:14:00Z fikka quit (Ping timeout: 265 seconds) 2018-01-08T08:17:04Z dddddd joined #lisp 2018-01-08T08:17:38Z wurui1 joined #lisp 2018-01-08T08:19:55Z fikka joined #lisp 2018-01-08T08:20:21Z scymtym joined #lisp 2018-01-08T08:22:44Z shka quit (Ping timeout: 276 seconds) 2018-01-08T08:24:25Z fikka quit (Ping timeout: 256 seconds) 2018-01-08T08:24:29Z shka joined #lisp 2018-01-08T08:28:28Z smurfrobot joined #lisp 2018-01-08T08:28:50Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T08:29:53Z shka quit (Ping timeout: 248 seconds) 2018-01-08T08:30:10Z trittweiler joined #lisp 2018-01-08T08:31:04Z Shinmera: PCL also discusses gensyms and things like that. 2018-01-08T08:31:53Z wurui1 left #lisp 2018-01-08T08:32:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T08:35:04Z DeadTrickster_ quit (Remote host closed the connection) 2018-01-08T08:35:46Z smurfrobot joined #lisp 2018-01-08T08:36:12Z wurui joined #lisp 2018-01-08T08:38:32Z chens quit (Read error: Connection reset by peer) 2018-01-08T08:38:55Z chens joined #lisp 2018-01-08T08:39:43Z fikka joined #lisp 2018-01-08T08:40:19Z wurui left #lisp 2018-01-08T08:40:21Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-08T08:43:55Z attila_lendvai joined #lisp 2018-01-08T08:43:55Z attila_lendvai quit (Changing host) 2018-01-08T08:43:55Z attila_lendvai joined #lisp 2018-01-08T08:44:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T08:47:23Z beach: Right. 2018-01-08T08:48:25Z Cymew joined #lisp 2018-01-08T08:50:02Z smurfrobot joined #lisp 2018-01-08T08:50:13Z fikka joined #lisp 2018-01-08T08:50:21Z beach: jmercouris: It is a very bad idea to define functions or macros with names in the keyword package. 2018-01-08T08:50:41Z beach: jmercouris: Top-level comments in a file should start with three semicolons. 2018-01-08T08:51:01Z Shinmera: He's not here right now and I'm not sure he reads the logs 2018-01-08T08:51:35Z beach: Maybe so. Just putting it down before I forget. 2018-01-08T08:52:22Z beach: jmercouris: Also, I am not sure that it is justified to make :INPUT a macro, rather than an ordinary function. 2018-01-08T08:54:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T08:55:05Z fikka quit (Ping timeout: 265 seconds) 2018-01-08T08:55:15Z smurfrobot joined #lisp 2018-01-08T08:57:00Z beach: jmercouris: (or (not x) (and x y)) can be simplified. 2018-01-08T08:58:35Z arduo joined #lisp 2018-01-08T08:59:24Z beach: I'll stop there for now. 2018-01-08T08:59:36Z smurfrobot quit (Ping timeout: 246 seconds) 2018-01-08T08:59:41Z chens` joined #lisp 2018-01-08T08:59:57Z damke_ joined #lisp 2018-01-08T09:00:11Z fikka joined #lisp 2018-01-08T09:02:41Z smurfrobot joined #lisp 2018-01-08T09:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-08T09:02:57Z chens quit (Ping timeout: 256 seconds) 2018-01-08T09:03:28Z schweers joined #lisp 2018-01-08T09:04:51Z fikka quit (Ping timeout: 246 seconds) 2018-01-08T09:07:11Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-08T09:07:29Z dec0n joined #lisp 2018-01-08T09:07:30Z schweers quit (Remote host closed the connection) 2018-01-08T09:08:58Z schweers joined #lisp 2018-01-08T09:11:12Z fikka joined #lisp 2018-01-08T09:11:14Z hhdave joined #lisp 2018-01-08T09:14:58Z orivej joined #lisp 2018-01-08T09:15:51Z arduo quit (Remote host closed the connection) 2018-01-08T09:16:01Z z3t0 joined #lisp 2018-01-08T09:20:22Z smurfrobot joined #lisp 2018-01-08T09:20:27Z orivej quit (Ping timeout: 240 seconds) 2018-01-08T09:22:09Z nowhereman_ joined #lisp 2018-01-08T09:24:34Z nowhere_man quit (Ping timeout: 265 seconds) 2018-01-08T09:27:57Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-08T09:28:22Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T09:30:21Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-08T09:30:59Z schweers quit (Ping timeout: 276 seconds) 2018-01-08T09:38:55Z smurfrobot joined #lisp 2018-01-08T09:42:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-08T09:44:34Z attila_lendvai joined #lisp 2018-01-08T09:45:19Z random-nick joined #lisp 2018-01-08T09:45:20Z smurfrobot joined #lisp 2018-01-08T09:46:35Z fikka quit (Ping timeout: 276 seconds) 2018-01-08T09:48:50Z trittweiler_ joined #lisp 2018-01-08T09:48:50Z trittweiler quit (Read error: Connection reset by peer) 2018-01-08T09:51:08Z hhdave quit (Ping timeout: 276 seconds) 2018-01-08T09:52:27Z fikka joined #lisp 2018-01-08T09:56:32Z schweers joined #lisp 2018-01-08T09:58:46Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T10:00:47Z milanj_ joined #lisp 2018-01-08T10:03:49Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-08T10:06:25Z d4ryus1 is now known as d4ryus 2018-01-08T10:11:33Z eivarv joined #lisp 2018-01-08T10:13:07Z attila_lendvai joined #lisp 2018-01-08T10:15:13Z DeadTrickster joined #lisp 2018-01-08T10:15:44Z chens` quit (Remote host closed the connection) 2018-01-08T10:21:03Z test1600 quit (Quit: Leaving) 2018-01-08T10:23:28Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T10:24:45Z jameser quit (Ping timeout: 260 seconds) 2018-01-08T10:25:13Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T10:27:44Z red-dot joined #lisp 2018-01-08T10:30:42Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-08T10:38:43Z attila_lendvai joined #lisp 2018-01-08T10:39:03Z milanj_ joined #lisp 2018-01-08T10:40:20Z kushal quit (Quit: ZNC 1.6.3 - http://znc.in) 2018-01-08T10:43:10Z Tobbi joined #lisp 2018-01-08T10:51:49Z zkat quit (Read error: Connection reset by peer) 2018-01-08T10:52:29Z zkat joined #lisp 2018-01-08T10:53:51Z nika quit (Remote host closed the connection) 2018-01-08T11:01:14Z damke joined #lisp 2018-01-08T11:03:53Z kushal joined #lisp 2018-01-08T11:03:53Z kushal quit (Changing host) 2018-01-08T11:03:53Z kushal joined #lisp 2018-01-08T11:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-08T11:08:26Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-08T11:09:04Z parjanya quit (Ping timeout: 272 seconds) 2018-01-08T11:11:56Z vaporatorius quit (Remote host closed the connection) 2018-01-08T11:13:28Z jameser joined #lisp 2018-01-08T11:14:26Z jameser quit (Client Quit) 2018-01-08T11:17:37Z thinkpad joined #lisp 2018-01-08T11:18:01Z al-damiri joined #lisp 2018-01-08T11:20:30Z ck_ quit (Remote host closed the connection) 2018-01-08T11:25:31Z vlatkoB_ joined #lisp 2018-01-08T11:26:01Z drcode joined #lisp 2018-01-08T11:27:51Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T11:28:34Z vlatkoB quit (Ping timeout: 252 seconds) 2018-01-08T11:29:00Z red-dot joined #lisp 2018-01-08T11:29:29Z wildbartty joined #lisp 2018-01-08T11:30:03Z kajo quit (Quit: WeeChat 2.0) 2018-01-08T11:34:27Z thinkpad quit (Quit: lawl) 2018-01-08T11:35:14Z kajo joined #lisp 2018-01-08T11:36:46Z orivej joined #lisp 2018-01-08T11:40:08Z orivej quit (Client Quit) 2018-01-08T11:41:22Z thinkpad joined #lisp 2018-01-08T11:41:25Z orivej joined #lisp 2018-01-08T11:49:40Z fikka quit (Ping timeout: 268 seconds) 2018-01-08T11:54:02Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T12:02:26Z fikka joined #lisp 2018-01-08T12:04:15Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-08T12:05:31Z randomstrangerb joined #lisp 2018-01-08T12:07:33Z jcowan joined #lisp 2018-01-08T12:09:33Z attila_lendvai joined #lisp 2018-01-08T12:13:39Z markong joined #lisp 2018-01-08T12:15:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T12:20:00Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T12:21:22Z schweers quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-08T12:21:40Z schweers joined #lisp 2018-01-08T12:22:47Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-08T12:23:33Z DeadTrickster joined #lisp 2018-01-08T12:24:26Z larme quit (Ping timeout: 255 seconds) 2018-01-08T12:24:57Z damke quit (Ping timeout: 264 seconds) 2018-01-08T12:26:15Z fikka joined #lisp 2018-01-08T12:27:22Z selwyn joined #lisp 2018-01-08T12:29:05Z Murii quit (Ping timeout: 240 seconds) 2018-01-08T12:29:07Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T12:29:54Z gtuser joined #lisp 2018-01-08T12:30:09Z red-dot joined #lisp 2018-01-08T12:31:22Z larme joined #lisp 2018-01-08T12:34:28Z jameser joined #lisp 2018-01-08T12:35:04Z damke joined #lisp 2018-01-08T12:35:55Z attila_lendvai joined #lisp 2018-01-08T12:38:47Z ssake joined #lisp 2018-01-08T12:38:51Z Achylles joined #lisp 2018-01-08T12:38:57Z Achylles quit (Max SendQ exceeded) 2018-01-08T12:41:52Z vaporatorius joined #lisp 2018-01-08T12:41:52Z vaporatorius quit (Changing host) 2018-01-08T12:41:52Z vaporatorius joined #lisp 2018-01-08T12:41:53Z vap1 joined #lisp 2018-01-08T12:42:45Z FreeBirdLjj joined #lisp 2018-01-08T12:43:47Z logicmoo quit (Ping timeout: 255 seconds) 2018-01-08T12:46:10Z Fare joined #lisp 2018-01-08T12:47:57Z dmiles joined #lisp 2018-01-08T12:51:44Z hhdave joined #lisp 2018-01-08T12:53:55Z easye` quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-08T12:54:11Z easye joined #lisp 2018-01-08T13:00:24Z damke_ joined #lisp 2018-01-08T13:01:27Z TLAXKIT joined #lisp 2018-01-08T13:02:27Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-08T13:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-08T13:03:42Z vap1 quit (Quit: Leaving) 2018-01-08T13:03:43Z randomstrangerb joined #lisp 2018-01-08T13:10:25Z EvW joined #lisp 2018-01-08T13:11:42Z reverse_light quit (Remote host closed the connection) 2018-01-08T13:20:10Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T13:23:12Z zooey quit (Read error: Connection reset by peer) 2018-01-08T13:23:51Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-08T13:24:29Z DeadTrickster joined #lisp 2018-01-08T13:24:30Z zooey joined #lisp 2018-01-08T13:28:45Z eagleflo quit (Read error: Connection reset by peer) 2018-01-08T13:29:41Z kajo quit (Ping timeout: 255 seconds) 2018-01-08T13:30:52Z wxie joined #lisp 2018-01-08T13:30:58Z kajo joined #lisp 2018-01-08T13:31:45Z eagleflo joined #lisp 2018-01-08T13:38:09Z smasta joined #lisp 2018-01-08T13:42:13Z felideon joined #lisp 2018-01-08T13:42:54Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-08T13:43:42Z felideon is now known as Guest53199 2018-01-08T13:44:59Z eagleflo quit (Read error: Connection reset by peer) 2018-01-08T13:47:04Z Guest53199 is now known as felideon 2018-01-08T13:48:18Z eagleflo joined #lisp 2018-01-08T13:49:51Z raynold quit (Quit: Connection closed for inactivity) 2018-01-08T13:53:35Z mishoo_ quit (Ping timeout: 248 seconds) 2018-01-08T13:57:19Z trittweiler_ quit (Ping timeout: 268 seconds) 2018-01-08T13:58:37Z EvW quit (Ping timeout: 265 seconds) 2018-01-08T14:00:11Z Xal quit (Ping timeout: 240 seconds) 2018-01-08T14:00:48Z mishoo_ joined #lisp 2018-01-08T14:02:25Z Xal joined #lisp 2018-01-08T14:04:13Z SuperJen joined #lisp 2018-01-08T14:04:26Z Bike joined #lisp 2018-01-08T14:06:02Z FreeBirdLjj joined #lisp 2018-01-08T14:06:27Z dyelar joined #lisp 2018-01-08T14:06:35Z EvW1 joined #lisp 2018-01-08T14:07:00Z bgardner joined #lisp 2018-01-08T14:07:27Z Jen quit (Ping timeout: 240 seconds) 2018-01-08T14:09:58Z bms_ joined #lisp 2018-01-08T14:13:24Z attila_lendvai joined #lisp 2018-01-08T14:13:24Z attila_lendvai quit (Changing host) 2018-01-08T14:13:24Z attila_lendvai joined #lisp 2018-01-08T14:13:53Z dyelar quit (Quit: Leaving.) 2018-01-08T14:14:49Z igemnace joined #lisp 2018-01-08T14:15:56Z wxie quit (Quit: Bye.) 2018-01-08T14:16:31Z dyelar joined #lisp 2018-01-08T14:16:47Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T14:19:09Z sjl joined #lisp 2018-01-08T14:19:41Z random-nick quit (Remote host closed the connection) 2018-01-08T14:21:03Z harmaahylje joined #lisp 2018-01-08T14:21:27Z shifty quit (Ping timeout: 240 seconds) 2018-01-08T14:22:52Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T14:23:31Z random-nick joined #lisp 2018-01-08T14:28:58Z asarch joined #lisp 2018-01-08T14:31:51Z fikka quit (Ping timeout: 268 seconds) 2018-01-08T14:31:53Z red-dot joined #lisp 2018-01-08T14:34:38Z LiamH joined #lisp 2018-01-08T14:35:28Z nirved joined #lisp 2018-01-08T14:38:39Z attila_lendvai joined #lisp 2018-01-08T14:38:39Z attila_lendvai quit (Changing host) 2018-01-08T14:38:39Z attila_lendvai joined #lisp 2018-01-08T14:39:05Z Poeticode_ quit (Changing host) 2018-01-08T14:39:06Z Poeticode_ joined #lisp 2018-01-08T14:39:29Z Poeticode_ is now known as Poeticode 2018-01-08T14:46:57Z oleo joined #lisp 2018-01-08T14:56:29Z EvW1 quit (Remote host closed the connection) 2018-01-08T15:04:47Z ckonstanski joined #lisp 2018-01-08T15:10:47Z rumbler31 joined #lisp 2018-01-08T15:13:29Z nika joined #lisp 2018-01-08T15:15:40Z Murii joined #lisp 2018-01-08T15:18:28Z jcowan quit (Ping timeout: 252 seconds) 2018-01-08T15:20:52Z flamebeard quit (Quit: Leaving) 2018-01-08T15:21:46Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T15:22:37Z mishoo_ quit (Read error: Connection reset by peer) 2018-01-08T15:22:57Z mishoo joined #lisp 2018-01-08T15:24:08Z hhdave: Hi. I just asked this in #ccl (don’t know if anyone here but not there might know): Does anyone know if CCL can work on the Lego EV3 (with the ev3dev linux distro)? I downloaded that latest tarball and expanded it. When I tried ./armcl in the ccl directory it said ‘file not found’. I then recompiled the CCL kernel (make clean & make). This gave me a new armcl, but that one reports a segmentation fault. Do I need to specify a different float 2018-01-08T15:24:08Z hhdave: compiling the kernel or does CCL not support this processor (wikipedia says it’s an ARM9 TI Sitara AM1x). 2018-01-08T15:24:31Z mishoo quit (Client Quit) 2018-01-08T15:24:46Z mishoo joined #lisp 2018-01-08T15:25:01Z mnoonan joined #lisp 2018-01-08T15:25:08Z bms_: I've never heard of that distro, hhdave. I've always wanted an EV3, since it came out. 2018-01-08T15:25:19Z bms_: Sorry, though, I'm not sure. 2018-01-08T15:25:32Z bms_: Someone might know. 2018-01-08T15:25:54Z Shinmera: hhdave: Recompiling it won't help, as CCL needs itself to compile. 2018-01-08T15:26:08Z nowhere_man joined #lisp 2018-01-08T15:26:46Z warweasle joined #lisp 2018-01-08T15:26:49Z wheelsucker joined #lisp 2018-01-08T15:27:15Z Cymew quit (Remote host closed the connection) 2018-01-08T15:27:32Z hhdave: bms_: Here: http://www.ev3dev.org/. I only just downloaded it and tested it on Saturday. Quickly managed to set up Wifi access with a usb dongle and SSH into the EV3. I’ve installed ECL on it (just apt-get install ecl) but that seemed to have a problem when I did (compile ‘fact) - error 1 from GCC. It’s possible that something wasn’t installed. It interprets things ok though. 2018-01-08T15:27:57Z bms_: Thanks for the link. 2018-01-08T15:27:59Z hhdave: Shinmera: It doesn’t need itself to recompile its kernel. That did recompile ok. The kernal is just a C program. 2018-01-08T15:28:35Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-08T15:28:36Z hhdave: I seem to remember recompileing the armcl kernel to get it running on a Raspberry Pi. Once I did that it worked with no problem. 2018-01-08T15:29:04Z Shinmera: I had no issues running the CCL binary distribution on the Pi3 directly 2018-01-08T15:29:06Z pjb: Recompiling the kernel may be useful to adapt to the libraries of the new system. 2018-01-08T15:29:58Z hhdave: Shinmera: it was a while ago I had to do that, on a Pi B. It might not be necessary now, or with a newer Pi. 2018-01-08T15:30:13Z selwyn quit (Remote host closed the connection) 2018-01-08T15:30:17Z igemnace quit (Read error: Connection reset by peer) 2018-01-08T15:30:42Z hhdave: pjb: I think it was referencing libraries that weren’t there. I guess that’s why it just said ‘file not found’ when I first tried it. Any idea why it would now give a segmentation fault? 2018-01-08T15:30:49Z narendraj9 joined #lisp 2018-01-08T15:31:24Z pjb: hhdave: nope. Try to debug it. 2018-01-08T15:31:26Z igemnace joined #lisp 2018-01-08T15:31:57Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T15:32:09Z hhdave: pjb: via gdb? 2018-01-08T15:33:18Z red-dot joined #lisp 2018-01-08T15:33:31Z smasta quit (Ping timeout: 255 seconds) 2018-01-08T15:33:32Z Cymew joined #lisp 2018-01-08T15:33:50Z emacsomancer quit (Ping timeout: 265 seconds) 2018-01-08T15:34:52Z fikka joined #lisp 2018-01-08T15:35:53Z djeis joined #lisp 2018-01-08T15:36:43Z attila_lendvai joined #lisp 2018-01-08T15:38:07Z Cymew quit (Ping timeout: 248 seconds) 2018-01-08T15:39:34Z Cymew joined #lisp 2018-01-08T15:39:45Z fikka quit (Ping timeout: 248 seconds) 2018-01-08T15:39:50Z hhdave: I wonder if it could be reserving too large a heap by default. The EV3 only has 64MB of RAM. I don’t have it here, but I’ll try it later. 2018-01-08T15:41:24Z randomstrangerb quit (Ping timeout: 246 seconds) 2018-01-08T15:42:37Z randomstrangerb joined #lisp 2018-01-08T15:43:27Z pjb: hhdave: yes, gdb. 2018-01-08T15:43:39Z pjb: You want to know why you get a segfault. 2018-01-08T15:44:02Z hhdave: pjb: Indeed. OK, I’ll try that 2018-01-08T15:44:09Z Cymew quit (Ping timeout: 256 seconds) 2018-01-08T15:44:10Z hhdave: pjb: thanks 2018-01-08T15:44:22Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-08T15:45:44Z Cymew joined #lisp 2018-01-08T15:46:57Z nika quit 2018-01-08T15:49:08Z dmiles: is EXTENSIONS often used in some way special to carefully import from trival packages like LOOP, SOCKET, GRAY etc? 2018-01-08T15:49:29Z Bike: what is "EXTENSIONS" 2018-01-08T15:49:54Z dmiles: the package EXTENSIONS 2018-01-08T15:50:16Z Bike: that's just a name. it has no special meaning. 2018-01-08T15:50:35Z Cymew quit (Ping timeout: 276 seconds) 2018-01-08T15:50:36Z Bike: loop isn't trivial and also isn't an extension. sockets and gray aren't extensions but they tend to be in their own packages and also aren't trivial. 2018-01-08T15:51:37Z Cymew joined #lisp 2018-01-08T15:51:59Z Bike: my advice is when you consider adding a "special way", instead, don't 2018-01-08T15:53:52Z pjb: dmiles: the only standard package names are KEYWORD COMMON-LISP and COMMON-LISP-USER (with nicknames CL and CL-USER). 2018-01-08T15:54:07Z dmiles: the assumpytion i was going by is that packages will use EXTENSIONS as single 'use-package' to find many public symbols at once 2018-01-08T15:54:36Z jameser quit (Remote host closed the connection) 2018-01-08T15:55:11Z pjb: dmiles: I would discourage using a common word such as EXTENSIONS for an implementation specific package, since other packages or even libraries, may use such a package name. UNLESS you are implementing a specified API common to multiple implementations (eg. cf. the CDR). 2018-01-08T15:55:29Z pjb: dmiles: a better choice may be YOUR-IMPLEMENTATION-EXTENSIONS 2018-01-08T15:55:36Z Xach: dmiles: that's one way to arrange things. i don't personally like it due to the risk of inadvertent clashes 2018-01-08T15:55:43Z Shinmera: A few implementations already provide an EXT/EXTENSIONS package 2018-01-08T15:55:55Z Shinmera: So it clashing with libraries is a moot point. 2018-01-08T15:55:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-08T15:55:59Z pjb: But this is confusing since they don't provide the same symbols. 2018-01-08T15:56:01Z Xach: You could lock the package, but then you'd have more work to avoid things 2018-01-08T15:56:11Z jameser joined #lisp 2018-01-08T15:56:33Z dmiles: well why i am even asking is I been placing certain helper functions in EXT,SYS,WAM-CL pacakges.. i am thinking i am about to merge the three 2018-01-08T15:56:37Z Xach: Shinmera: I mean if you are :use-ing extensions for sockets and clash with something completely unrelated like regular expressions. 2018-01-08T15:56:41Z pjb: That said, you may want to avoid such common package names. SYSTEM, SYS, EXT, EXTENSIONS, CLOS, MOP, UI, LOOP, GRAY, etc, since they're know to be used elsewhere. 2018-01-08T15:56:46Z Xach: Not the package name itself 2018-01-08T15:56:50Z Shinmera: Xach: Of course. 2018-01-08T15:56:57Z pjb: again, if you name them YOUR-IMPLEMENTATION-SYSTEM, YOUR-IMPLEMENTATION-CLOS, etc, you're good. 2018-01-08T15:57:00Z marusich quit (Quit: Leaving) 2018-01-08T15:57:09Z Shinmera: Xach: I meant that, since implementations already use EXT, a library couldn't use it for itself anyway. 2018-01-08T15:57:17Z Shinmera: Xach: So another implementation using it doesn't matter. 2018-01-08T15:57:59Z pjb: Shinmera: not all implementations have an EXT package, so a library could be developed using this name. 2018-01-08T15:58:07Z p_l: SI is also taken in many classic systems 2018-01-08T15:58:10Z Shinmera: Yeah but then it wouldn't be portable already anyway 2018-01-08T15:58:15Z Shinmera: So there's little point 2018-01-08T15:58:24Z pjb: Yes: avoid short package names! 2018-01-08T15:58:33Z dmiles: I been placing certain helper functions in EXT,SYS,WAM-CL pacakges using based on that was where they were when i stole them from ECL,ABCL,CLISP etc 2018-01-08T15:58:46Z Xach: Hmm, it woudl be nice to survey the lanscape of implementation packages intended for users to use. 2018-01-08T15:58:54Z p_l: use package renaming macros with DNS-style names :) 2018-01-08T15:59:05Z pjb: dmiles: use DMILES-COMMON-LISP-IMPLEMENTATION-EXTENSIONS, not EXT. 2018-01-08T16:00:33Z djeis quit (Quit: Mutter: www.mutterirc.com) 2018-01-08T16:00:51Z dmiles: pjb: then the question i have is is there a good reason to have a MILES-COMMON-LISP-IMPLEMENTATION-EXTENSIONS and MILES-COMMON-LISP-IMPLEMENTATION-SYSTEM separate? 2018-01-08T16:01:01Z pjb: this is as you wish. 2018-01-08T16:01:24Z pjb: But a system and extensions seems to be two different things, so having two packages may make sense. 2018-01-08T16:01:57Z mishoo_ joined #lisp 2018-01-08T16:02:10Z Bike: usually "extensions" means it's intended as an exported interface for the user 2018-01-08T16:02:18Z Bike: whereas system is just your own stuff, that users shouldn't be using 2018-01-08T16:03:05Z bms_ quit (Ping timeout: 260 seconds) 2018-01-08T16:03:20Z dec0n quit (Read error: Connection reset by peer) 2018-01-08T16:03:29Z pjb: dmiles: you can also have nicknames, such as DCLIE, which 1- is not too short (it could be longer), 2- is almost random, si it could be unique. 2018-01-08T16:03:48Z mishoo quit (Ping timeout: 265 seconds) 2018-01-08T16:04:35Z dmiles: *nod* right now i use DMILES-COMMON-LISP-IMPLEMENTATION-EXTENSIONS haivng a nickname of "EXT" and DMILES-COMMON-LISP-IMPLEMENTATION-SYSTEM as "SYS","SI","EXCL" etc 2018-01-08T16:05:04Z pjb: Nickname collision is as bad as name collision, from an implementation or a library point of view. 2018-01-08T16:05:38Z dmiles: ( also nicnamed DMILES-COMMON-LISP-IMPLEMENTATION-EXTENSIONS to "EXTENSIONS") 2018-01-08T16:05:38Z pjb: Basically, while one can rename a package, the way it's specified makes it rather a delicate matter to do it conformingly. 2018-01-08T16:06:11Z pjb: Also, it's very inconvenient to have to rename packages (that you may not know in advance, if you get a new version of an implementation or a library), before being able to load your code! 2018-01-08T16:07:00Z pjb: So while adding a short nickname while compiling, I would not advise leaving them in released code (load time and run-time). 2018-01-08T16:07:52Z dmiles: oh btw only durring primoridal loading do i have all the nicknames for DMILES-COMMON-LISP-IMPLEMENTATION-SYSTEM 2018-01-08T16:08:48Z dmiles: (so i supposed the name collisions are not an issue) 2018-01-08T16:09:56Z dmiles: (the nicknames are to do things like make sure I support ECL's "SI" etc) 2018-01-08T16:10:23Z dmiles: i think what gets me is how often EXT is used for impl specifics 2018-01-08T16:10:34Z dmiles: (in several lisps) 2018-01-08T16:11:32Z dmiles: like ext:function-lambda-list 2018-01-08T16:11:59Z dmiles: or ext::%dolist 2018-01-08T16:12:06Z EvW joined #lisp 2018-01-08T16:12:23Z JonSmith quit (Remote host closed the connection) 2018-01-08T16:13:02Z JonSmith joined #lisp 2018-01-08T16:13:56Z dmiles: why would CLISP use ext:quit isntead of sys:quit ? 2018-01-08T16:16:20Z Bike: because quitting is something the user can do 2018-01-08T16:16:31Z dmiles: even mkcl uses mk-ext:quit .. yet sbcl,ccl,allegro do not 2018-01-08T16:16:35Z jackdaniel: ext is for extensions, si/sys is for internal interfaces 2018-01-08T16:16:37Z makomo joined #lisp 2018-01-08T16:16:51Z jackdaniel: so ext is something what is not in the standard, but surely is useful 2018-01-08T16:16:58Z Bike: ext::%dolist isn't the same, that's not an external symbol 2018-01-08T16:19:02Z dmiles: why would ecl use si:quit instead of ext:quit ? 2018-01-08T16:19:24Z dmiles: (refering to because quitting is something the user can do) 2018-01-08T16:20:02Z jackdaniel: there is ext:quit in ecl 2018-01-08T16:20:29Z turkja quit (Ping timeout: 276 seconds) 2018-01-08T16:21:03Z Jesin quit (Quit: Leaving) 2018-01-08T16:21:08Z jackdaniel: if quit is exported in si packages that's not a problem, since si is internal anyway 2018-01-08T16:21:15Z Bike: so there is no "instead of". 2018-01-08T16:22:15Z dmiles: ah ok that is good to know .. it is customary to export most of the usefull SYS stuff to EXT 2018-01-08T16:22:25Z jackdaniel: also it is worth noting, that some useful interfaces may be in si - that means that they shouldn't be used by a user, because there is absolutely no guarantee names and lambda-lists will match (i.e they may be changed without further notification) 2018-01-08T16:22:25Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-08T16:23:12Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T16:23:14Z jarwin joined #lisp 2018-01-08T16:23:18Z jarwin is now known as Jarwin 2018-01-08T16:24:40Z dmiles: jackdaniel: so EXT you like to keep as consistent from version to version? 2018-01-08T16:25:13Z jackdaniel: if something changes in ext it is a subject of graceful deprecation first and should be documented 2018-01-08T16:25:22Z jackdaniel: changes in sys doesn't require such care 2018-01-08T16:25:32Z jackdaniel: but yes, usually things shouldn't be removed from ext 2018-01-08T16:26:57Z nydel quit (Read error: Connection reset by peer) 2018-01-08T16:26:57Z aindilis joined #lisp 2018-01-08T16:27:40Z fikka joined #lisp 2018-01-08T16:32:34Z Jesin joined #lisp 2018-01-08T16:33:22Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T16:34:01Z fortitude__ quit (Ping timeout: 256 seconds) 2018-01-08T16:34:02Z red-dot joined #lisp 2018-01-08T16:38:00Z attila_lendvai joined #lisp 2018-01-08T16:38:26Z shrdlu68 joined #lisp 2018-01-08T16:39:28Z dmiles: personally i have prefered ECLs use of EXT for say FIXNUMP vs CLISP putting that non exported in SYSTEM 2018-01-08T16:41:09Z dmiles: though CLISP have a reverse policy (just as consistent) 2018-01-08T16:41:23Z narendraj9 quit (Ping timeout: 256 seconds) 2018-01-08T16:42:55Z dmiles: CLISP policy to make everything that is undoubltedly part of everyones lisp goes in system vs ECL's into EXT 2018-01-08T16:45:59Z bms_ joined #lisp 2018-01-08T16:47:57Z dmiles: OK nice, I implmented CLISP's LETF and luckily its in EXT and not SYSTEM (mine ended up in system due to loading in into the system package) 2018-01-08T16:47:57Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-08T16:50:10Z dmiles: I think mostly what i will end up doing is having a black SYSTEM package.. intern and export all that goes to EXT, then import these EXT symbols to SYSTEM then load code (in-package :sys) that seems to be what most do 2018-01-08T16:50:17Z dmiles: black/blank 2018-01-08T16:52:00Z dmiles: (SYSTEM will end up with no exported symbols and EXT with only exported) 2018-01-08T16:53:07Z jackdaniel: if letf is what I think it is, it is a multithreaded code disaster 2018-01-08T16:53:13Z jackdaniel: I wouldn't recommend using it 2018-01-08T16:53:50Z jackdaniel: and if you find you must, it might be a good idea to rethink the algorithm 2018-01-08T16:55:54Z dmiles: letf i think should be equivalent to using symbol macros pointed at places 2018-01-08T16:55:59Z shrdlu68 quit (Ping timeout: 248 seconds) 2018-01-08T16:58:28Z dmiles: (though symbol macros that call setfs when they bind) 2018-01-08T16:59:11Z dmiles: the threading problem has to do with multiple values or if you can explain jackdaniels 2018-01-08T16:59:16Z dmiles: +? 2018-01-08T17:01:21Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-08T17:04:15Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-08T17:11:26Z fortitude joined #lisp 2018-01-08T17:13:07Z dmiles: so the threading issue is just due to places more often being accessed by more than one thread? Or is it that the thread is usualyl the vcalues holder in cases like (setf (values ..) ..) ? 2018-01-08T17:14:00Z Bike: i would guess that it's more that accessors aren't generally atomic, but it doesn't seem any worse in that respect than just setfing in multiple threads 2018-01-08T17:14:40Z dmiles: "usualyl the vcalues holder" usually the "values holder" are stored at the level of the threads instance 2018-01-08T17:15:48Z cgay: I assumed that was Welsh. 2018-01-08T17:17:10Z Baggers joined #lisp 2018-01-08T17:20:17Z schweers quit (Ping timeout: 276 seconds) 2018-01-08T17:22:43Z shrdlu68 joined #lisp 2018-01-08T17:23:11Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-08T17:23:22Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T17:24:26Z randomstrangerb joined #lisp 2018-01-08T17:28:08Z jcowan joined #lisp 2018-01-08T17:28:24Z hexfive joined #lisp 2018-01-08T17:30:34Z sigjuice: I keep typing grep at my CL-USER> prompt. Is there something I can do to make the grep work? 2018-01-08T17:31:31Z Bike: like the posix program grep? 2018-01-08T17:33:06Z etimmons joined #lisp 2018-01-08T17:33:55Z jackdaniel: dmiles: letf body ia not atomic, so the cleanup may overwrite ypur legimite changes. sorry, writing from phonee 2018-01-08T17:34:09Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T17:34:38Z sjl: sigjuice: (define-symbol-macro grep (format t "grepping for ~S" (read-line))) 2018-01-08T17:34:44Z sjl: [SBCL] CL-USER> grep hello world 2018-01-08T17:34:46Z sjl: grepping for "hello world" 2018-01-08T17:34:49Z sjl: what could go wrong 2018-01-08T17:35:14Z red-dot joined #lisp 2018-01-08T17:37:50Z attila_lendvai joined #lisp 2018-01-08T17:39:53Z _death: can also try for a repl hook 2018-01-08T17:40:23Z lugh joined #lisp 2018-01-08T17:41:52Z EvW quit (Ping timeout: 240 seconds) 2018-01-08T17:43:14Z sigjuice: sjl thanks! I will give it a try in a bit 2018-01-08T17:43:32Z sjl: it's probably not a good idea 2018-01-08T17:43:35Z hhdave quit (Ping timeout: 240 seconds) 2018-01-08T17:43:45Z sjl: e.g. that will affect places other than the repl 2018-01-08T17:43:45Z sigjuice: how so? 2018-01-08T17:44:18Z sigjuice: but those effects should be pretty obvious, no? 2018-01-08T17:45:25Z fortitude quit (Ping timeout: 256 seconds) 2018-01-08T17:45:29Z khisanth_ joined #lisp 2018-01-08T17:45:30Z sjl: and you'd need that symbol macro in every possible package 2018-01-08T17:46:56Z Karl_Dscc joined #lisp 2018-01-08T17:47:22Z sz0 joined #lisp 2018-01-08T17:47:45Z Khisanth quit (Ping timeout: 248 seconds) 2018-01-08T17:49:26Z Bike: even if you did something like this, it wouldn't be a full shell with interpolation and stuff 2018-01-08T17:49:52Z milanj_ joined #lisp 2018-01-08T17:50:07Z sjl: yeah 2018-01-08T17:50:56Z sjl: well, you could run-program a shell and let it handle that 2018-01-08T17:51:06Z sjl: but you're still gonna run into annoyances 2018-01-08T17:51:16Z Bike: my advice is don't type things into the wrong prompts 2018-01-08T17:54:46Z varjagg joined #lisp 2018-01-08T17:54:56Z EvW joined #lisp 2018-01-08T17:56:48Z m00natic quit (Remote host closed the connection) 2018-01-08T17:57:24Z jmercouris joined #lisp 2018-01-08T17:57:41Z jmercouris: jasom: I finished CPS style loading for JS, I made a (with-js) macro 2018-01-08T17:57:56Z jmercouris: seems to have no ill effects for the cocoa version, because as you said, I just call the callback immediately 2018-01-08T18:00:17Z Jarwin joined #lisp 2018-01-08T18:03:13Z orivej quit (Ping timeout: 248 seconds) 2018-01-08T18:09:30Z jasom: jmercouris: good to hear 2018-01-08T18:11:09Z mishoo__ joined #lisp 2018-01-08T18:12:35Z mishoo_ quit (Ping timeout: 240 seconds) 2018-01-08T18:13:41Z makomo: i'm going through paul graham's cl book and this is one of the exercises (11/6): "Define a macro that takes a list of variables and a body of code, and ensures that the variables revert to their original values after the body of code is evaluated." 2018-01-08T18:14:19Z makomo: i've done it and it works but what i'm interesting in is making it work for any object, not just integers 2018-01-08T18:14:28Z shka joined #lisp 2018-01-08T18:14:32Z makomo: or numbers*, i guess 2018-01-08T18:14:43Z sjl: how did you implement it? 2018-01-08T18:14:46Z Bike: what's that have to do with numbers? 2018-01-08T18:14:49Z makomo: i suppose there isn't a general way of making a copy of an object without knowing what the object is? 2018-01-08T18:14:56Z sjl: I'm curious how you would make it work for numbers and NOT just anything 2018-01-08T18:15:03Z Bike: no. why are you copying anything? 2018-01-08T18:15:12Z makomo: 1 second, let me put it up in a paste 2018-01-08T18:15:58Z makomo: here it is: https://plaster.tymoon.eu/view/691#691 2018-01-08T18:16:00Z sjl: I think the intent of the exercise is that the original value of the variables is the object FOO. If that object happens to get mutated, that's fine. 2018-01-08T18:16:13Z makomo: sjl: ah 2018-01-08T18:16:19Z makomo: right, that's what i was getting at 2018-01-08T18:16:27Z makomo: for example, if a hash table was bound to the variable 2018-01-08T18:16:36Z makomo: mutating the hash table will be a persistant thing 2018-01-08T18:16:43Z sjl: yes 2018-01-08T18:16:56Z sjl: but at the end, the variable should still be pointing at the (mutated) hash table 2018-01-08T18:17:00Z cgay: Perhaps if the excercise said "revert the variables to their original bindings" instead... 2018-01-08T18:17:04Z jmercouris: Is it possible to make deep copies in lisp? 2018-01-08T18:17:11Z makomo: ^^^ interested in this 2018-01-08T18:17:12Z sjl: even if it was assigned to something else in the bodyu 2018-01-08T18:17:13Z Bike: sure it's possible 2018-01-08T18:17:15Z jmercouris: could you make a deep copy of the original object? 2018-01-08T18:17:24Z sjl: yes, but you have to implement it yourself 2018-01-08T18:17:27Z jmercouris: and then at the end just reassign the binding to that copy 2018-01-08T18:17:31Z orivej joined #lisp 2018-01-08T18:17:38Z makomo: jmercouris: that's what i thought about, but you can't do it generally 2018-01-08T18:17:38Z Bike: there's just no "copy constructor" like in C++ because we don't have semantics that require copying everything a lot 2018-01-08T18:17:39Z jmercouris: sjl: Isn't there a way to traverse all the properties of an object? 2018-01-08T18:17:45Z makomo: it has to be implemented for every possible type 2018-01-08T18:18:01Z makomo: Bike: nicely said, i was going to mention c++'s copy ctors 2018-01-08T18:18:04Z jmercouris: Surely there are enough introspection functions that you can implement a generalized version 2018-01-08T18:18:10Z sjl: didn't gabriel write something on this 2018-01-08T18:18:16Z Bike: you can use mop to get a list of slots for an object 2018-01-08T18:18:20Z makomo: jmercouris: what about users' types? 2018-01-08T18:18:21Z Bike: but, you can also use mop to define your own kinds of slots 2018-01-08T18:18:30Z makomo: i.e. never-before-seen types 2018-01-08T18:18:47Z jmercouris: idk 2018-01-08T18:18:49Z makomo: i was trying to see whether there was a general COPY function of some sort 2018-01-08T18:18:54Z sjl: there is not 2018-01-08T18:18:58Z Bike: which might not be copy-able in any obvious way 2018-01-08T18:19:02Z makomo: yeah, that answers my question 2018-01-08T18:22:00Z sjl: aha, no, it was pitman I was thinking of 2018-01-08T18:22:02Z sjl: http://www.nhplace.com/kent/PS/EQUAL.html 2018-01-08T18:23:32Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T18:24:22Z makomo: sjl: oh nice, thanks 2018-01-08T18:24:56Z randomstrangerb quit (Ping timeout: 265 seconds) 2018-01-08T18:25:06Z jmercouris quit (Remote host closed the connection) 2018-01-08T18:26:09Z randomstrangerb joined #lisp 2018-01-08T18:27:13Z flip214: comparing http://blog.quicklisp.org/2015/08/july-2015-download-stats.html and http://blog.quicklisp.org/2018/01/download-stats-for-december-2017.html gives alexandria 2x the downloads... 2018-01-08T18:27:25Z flip214: Is 2018 the year of QL on the desktop?? ;) 2018-01-08T18:27:33Z razzy` joined #lisp 2018-01-08T18:27:39Z scymtym quit (Ping timeout: 246 seconds) 2018-01-08T18:27:51Z razzy left #lisp 2018-01-08T18:30:46Z raynold joined #lisp 2018-01-08T18:30:46Z narendraj9 joined #lisp 2018-01-08T18:31:25Z makomo: lol, a guy changed his name to Cons http://www.lispworks.com/success-stories/noteheads-igor-engraver.html 2018-01-08T18:32:56Z warweasle: Cons Nolo? 2018-01-08T18:33:50Z zmv joined #lisp 2018-01-08T18:34:03Z zmv is now known as notzmv 2018-01-08T18:35:15Z Tobbi quit (Remote host closed the connection) 2018-01-08T18:35:26Z razzy` quit (Quit: eboot) 2018-01-08T18:35:40Z Tobbi joined #lisp 2018-01-08T18:35:50Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T18:36:12Z razzy joined #lisp 2018-01-08T18:36:53Z red-dot joined #lisp 2018-01-08T18:38:07Z attila_lendvai joined #lisp 2018-01-08T18:38:07Z attila_lendvai quit (Changing host) 2018-01-08T18:38:07Z attila_lendvai joined #lisp 2018-01-08T18:38:54Z _death: Alyssa P. 2018-01-08T18:41:10Z orivej quit (Ping timeout: 260 seconds) 2018-01-08T18:42:31Z fiveop joined #lisp 2018-01-08T18:46:08Z Tobbi quit (Remote host closed the connection) 2018-01-08T18:47:12Z Tobbi joined #lisp 2018-01-08T18:47:15Z jmercouris joined #lisp 2018-01-08T18:47:28Z jmercouris: I can't seem to exit out of SBCL when I start it on a remote server and use slime-connect 2018-01-08T18:47:38Z jmercouris: Within the slime prompt I type (quit), but it doesn't react 2018-01-08T18:47:58Z jmercouris: It just says ; Evaluation aborted on NIL. 2018-01-08T18:48:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-08T18:50:44Z fortitude joined #lisp 2018-01-08T18:51:11Z Xach: jmercouris: That is a reaction. 2018-01-08T18:51:49Z _death: jmercouris: also, you can just use ,sayoonara 2018-01-08T18:52:14Z Shinmera: Or ,quit for the non-weebs 2018-01-08T18:53:12Z narendraj9 quit (Ping timeout: 246 seconds) 2018-01-08T18:54:13Z fikka joined #lisp 2018-01-08T18:56:47Z fiveop quit 2018-01-08T18:57:21Z White_Flame: I use M-x slime-disconnect or slime-quit-lisp to end things 2018-01-08T18:57:53Z Shinmera: Well disconnect is distinctly different as it leaves the lisp process alive. 2018-01-08T18:57:58Z White_Flame: right 2018-01-08T18:58:01Z Shinmera: (also available as ,disconnect) 2018-01-08T18:58:13Z White_Flame: and slime-restart-inferior-lisp 2018-01-08T18:58:22Z Shinmera: (also available as ,restart) 2018-01-08T18:58:27Z White_Flame: those are my arsenal of dealing with sbcl run & connection state 2018-01-08T19:00:43Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-08T19:01:57Z randomstrangerb joined #lisp 2018-01-08T19:03:53Z blackwolf joined #lisp 2018-01-08T19:06:47Z pagnol joined #lisp 2018-01-08T19:06:53Z Ven`` joined #lisp 2018-01-08T19:10:36Z bms_ quit (Quit: Leaving) 2018-01-08T19:17:48Z Ven`` quit (Read error: Connection reset by peer) 2018-01-08T19:18:04Z fikka quit (Quit: Lost terminal) 2018-01-08T19:18:05Z Ven`` joined #lisp 2018-01-08T19:20:26Z jmercouris: Xach: is it though? I meant there's no return 2018-01-08T19:20:33Z jmercouris: Xach: Nor does SBCL quit 2018-01-08T19:21:11Z jmercouris: The thing is I'm not trying to just disconnect from slime, I want SBCL to quit 2018-01-08T19:21:50Z nowhere_man quit (Ping timeout: 276 seconds) 2018-01-08T19:22:26Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T19:22:45Z dim: (quit) then, I think? 2018-01-08T19:22:54Z jmercouris: It doesn't quit when I type (quit) though 2018-01-08T19:23:03Z dim: (uiop:quit 1) 2018-01-08T19:23:20Z jmercouris: Ah, that does it, thank you 2018-01-08T19:24:00Z dim: the 1 is returned to the OS, signaling an error if some script is watching, btw, so maybe not what you want to do here 2018-01-08T19:24:17Z jmercouris: Hmm, is just for testing right now, so is okay 2018-01-08T19:24:25Z jmercouris: If I pass 0, will it return that exit code? 2018-01-08T19:24:46Z dim: "Quits from the Lisp world, with the given exit status if provided. 2018-01-08T19:24:47Z dim: This is designed to abstract away the implementation specific quit forms." 2018-01-08T19:24:53Z Jarwin quit (Quit: WeeChat 1.9.1) 2018-01-08T19:25:02Z jmercouris: seems that 0 is the default exit code 2018-01-08T19:25:09Z jmercouris: but in my source code that doesn't actually allow it to exist 2018-01-08T19:25:12Z jmercouris: exit* 2018-01-08T19:25:24Z jmercouris: maybe has something to do with being in the gtk event loop 2018-01-08T19:25:47Z dim: oh so the (uiop:quit 1) was a very lucky one ;-) 2018-01-08T19:26:09Z Sauvin quit (Ping timeout: 264 seconds) 2018-01-08T19:26:29Z Xach: jmercouris: sb-ext:quit and sb-ext:exit have different semantics. 2018-01-08T19:27:19Z kajo quit (Quit: WeeChat 2.0) 2018-01-08T19:27:37Z jmercouris: I see 2018-01-08T19:28:10Z orivej joined #lisp 2018-01-08T19:28:56Z jcowan left #lisp 2018-01-08T19:33:27Z phoe: Xach: I think not anymore 2018-01-08T19:34:04Z phoe: Xach: www.sbcl.org/news.html#1.4.2 2018-01-08T19:34:16Z phoe: "minor incompatible change: SB-EXT:QUIT is no longer marked as deprecated and behaves like SB-EXT:EXIT." 2018-01-08T19:36:47Z Xach: Ok 2018-01-08T19:37:31Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T19:38:09Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-08T19:38:15Z attila_lendvai joined #lisp 2018-01-08T19:38:15Z attila_lendvai quit (Changing host) 2018-01-08T19:38:15Z attila_lendvai joined #lisp 2018-01-08T19:38:25Z red-dot joined #lisp 2018-01-08T19:38:38Z jmercouris: I can't seem to access any memory from my lisp program in a callback somehow: https://gist.github.com/d5b7f312dde4fa384c4ba82af1aec861 2018-01-08T19:39:08Z rumbler31 joined #lisp 2018-01-08T19:42:53Z Tobbi quit (Remote host closed the connection) 2018-01-08T19:43:48Z Tobbi joined #lisp 2018-01-08T19:44:01Z phoe: jmercouris: that's a null pointer dereference. 2018-01-08T19:44:27Z jmercouris: What does that mean? 2018-01-08T19:44:56Z phoe: You are trying to dereference a null pointer. 2018-01-08T19:44:59Z Bike: like int* x = NULL; *x++; in C 2018-01-08T19:45:10Z Bike: trying to read from zero 2018-01-08T19:45:15Z jmercouris: Ok I see 2018-01-08T19:45:19Z phoe: I'm curious about gobject:g-signal-connect - what kind of callback are you expected to give to it? 2018-01-08T19:45:20Z jmercouris: I understand now 2018-01-08T19:45:26Z Bike: couldn't tell you why, tho 2018-01-08T19:45:31Z phoe: A Lisp lambda, or a CFFI callback of some sort? 2018-01-08T19:45:33Z gabc left #lisp 2018-01-08T19:45:44Z jmercouris: As shown in my example, it does work with a Lisp Lambda 2018-01-08T19:46:02Z jmercouris: but as soon as I try to access something that isn't webview, or load-event (the two args passed to the lambda), it spits out this error 2018-01-08T19:46:03Z phoe: oh, right. hm. 2018-01-08T19:46:20Z phoe: it doesn't work for closures? most weird 2018-01-08T19:46:32Z jmercouris: I can only think of a dirty solution which is extending the webview and adding a slot for the callback function 2018-01-08T19:46:47Z phoe: This is dirty. 2018-01-08T19:46:50Z phoe: I don't know what's going on. 2018-01-08T19:47:09Z jmercouris: The more I work with GTK, the more I agree with Aeronotix, what a right mess 2018-01-08T19:47:11Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-08T19:48:12Z TLAXKIT quit (Ping timeout: 268 seconds) 2018-01-08T19:50:08Z phoe: you should be glad that SBCL provides handlers for signals like that 2018-01-08T19:50:18Z phoe: and you get a nice-looking Common Lisp error in the Common Lisp debugger 2018-01-08T19:50:28Z jmercouris: Alright, so I've narrowed down the issue I think 2018-01-08T19:50:48Z jmercouris: GTK does not like it when you set a signal on an object that hasn't yet been created :D 2018-01-08T19:50:51Z phoe: because otherwise you'd just be in deep shit while trying to read crash logs produced by ySegmentation fault (core dumped) 2018-01-08T19:50:54Z phoe: jmercouris: oops 2018-01-08T19:50:54Z jmercouris: Ah, the lovely asynchronous nature of it 2018-01-08T19:51:15Z jmercouris: Well, I started the system, loaded gtk, rendered the view, then attempted to set the signal 2018-01-08T19:51:28Z jmercouris: even though that's exactly what my code does, by pausing before setting the signal it worked 2018-01-08T19:51:35Z jmercouris: seems I need to also synchronize this 2018-01-08T19:51:41Z phoe: so you need to finish instantiating all objects first. 2018-01-08T19:51:45Z phoe: and only then signal stuff. 2018-01-08T19:51:52Z jmercouris: precisely 2018-01-08T19:52:52Z Cymew joined #lisp 2018-01-08T19:53:45Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-08T19:54:57Z randomstrangerb joined #lisp 2018-01-08T19:55:48Z jmercouris: gtk is so good, if you are a masochist 2018-01-08T19:55:53Z pagnol: did any here set up an ecs with cl? 2018-01-08T19:57:15Z Cymew quit (Ping timeout: 246 seconds) 2018-01-08T19:58:46Z phoe: pagnol: ecs? 2018-01-08T19:58:49Z random-nick quit (Read error: Connection reset by peer) 2018-01-08T19:59:05Z pagnol: phoe, for entity-component system, a pattern that's often used in game development 2018-01-08T19:59:25Z warweasle quit (Quit: gotta run) 2018-01-08T19:59:28Z aeth: pagnol: try asking in #lispgames 2018-01-08T19:59:39Z aeth: There are probably a dozen 2018-01-08T19:59:44Z pagnol: oh, I had no idea there's a channel, thanks! 2018-01-08T20:03:33Z damke_ quit (Ping timeout: 246 seconds) 2018-01-08T20:05:45Z damke_ joined #lisp 2018-01-08T20:06:05Z Murii quit (Ping timeout: 268 seconds) 2018-01-08T20:06:43Z nowhere_man joined #lisp 2018-01-08T20:11:35Z rpg joined #lisp 2018-01-08T20:20:27Z manualcrank joined #lisp 2018-01-08T20:20:28Z frodef joined #lisp 2018-01-08T20:20:47Z frodef: hi all 2018-01-08T20:20:59Z Xach: hi frodef 2018-01-08T20:21:05Z Xach: back to hack? 2018-01-08T20:21:26Z frodef: Hi Xach, trying.. :) 2018-01-08T20:21:58Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T20:24:06Z frodef: Having an issue with trivial-http, trying (shttp:http-get "http:/foo/bar") ... 2018-01-08T20:24:49Z frodef: ... seems to translate to "GET http://foo/bar HTTP/1.0" which is ... wrong, isn't it? 2018-01-08T20:25:07Z fortitude quit (Ping timeout: 255 seconds) 2018-01-08T20:25:21Z Xach: I've never tried trivial-http, only drakma and dexador, sorry. 2018-01-08T20:25:23Z Xach: (mostly drakma) 2018-01-08T20:25:33Z Xach: frodef: that request is something you'd send to a proxy, maybe. 2018-01-08T20:26:06Z frodef: Seems to me an extremely basic mistake on trivial-http 2018-01-08T20:26:19Z frodef: 's part, so basic it's rather silly. 2018-01-08T20:26:55Z fortitude joined #lisp 2018-01-08T20:27:40Z mnoonan is now known as Dr_mnoonan 2018-01-08T20:27:52Z vlatkoB_ quit (Remote host closed the connection) 2018-01-08T20:28:25Z Xach: Hard to say. I didn't even know about trivial-http until just now! 2018-01-08T20:28:37Z random-nick joined #lisp 2018-01-08T20:28:44Z _death: trivial libraries with trivial bugs 2018-01-08T20:29:47Z frodef: guess so :) 2018-01-08T20:29:53Z rumbler31 quit (Remote host closed the connection) 2018-01-08T20:31:06Z Xach: frodef: where does "shttp" come from? 2018-01-08T20:31:16Z Dr_mnoonan is now known as mnoonan 2018-01-08T20:31:27Z rumbler31 joined #lisp 2018-01-08T20:31:46Z frodef: package nickname I suppose 2018-01-08T20:33:09Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-08T20:33:25Z Xach: frodef: It's not incorrect behavior, I don't think. 2018-01-08T20:34:15Z frodef: I'm not really sure. Problem is, it 2018-01-08T20:34:20Z drewc quit (Ping timeout: 252 seconds) 2018-01-08T20:34:24Z frodef: 's rejected by the server I 2018-01-08T20:34:35Z frodef: 'm interested in. 2018-01-08T20:34:43Z frodef: (shitty keyboard) 2018-01-08T20:35:05Z fiveop joined #lisp 2018-01-08T20:35:31Z Xach: frodef: is simplicity of client very important? if not, drakma works all right in many cases. 2018-01-08T20:35:44Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-08T20:37:11Z fiveop: I have a form '(lambda (x) x) and want to get the function that corresponds to the form (lambda (x) x). How would I do that? 2018-01-08T20:38:09Z SuperJen quit (Ping timeout: 268 seconds) 2018-01-08T20:38:26Z attila_lendvai joined #lisp 2018-01-08T20:38:28Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T20:38:51Z sjl: fiveop: THE function? or A function? `(compile nil '(lambda (x) x))` maybe? 2018-01-08T20:38:54Z Bike: fiveop: compile or coerce or eval 2018-01-08T20:39:13Z karswell joined #lisp 2018-01-08T20:39:25Z sjl: huh, didn't know coerce could do that 2018-01-08T20:39:32Z Bike: it's kind of weird, yeah 2018-01-08T20:39:37Z red-dot joined #lisp 2018-01-08T20:40:13Z fiveop: I did not think of compile, thank you. 2018-01-08T20:41:18Z sjl: huh, maybe I could start using plain old 'coerce instead of alexandria's ensure-function 2018-01-08T20:41:46Z drewc joined #lisp 2018-01-08T20:42:53Z _death: sjl: they do different things? 2018-01-08T20:43:08Z sjl: not for the cases I generally use them for, I think 2018-01-08T20:43:10Z fiveop: Is there a generic solution that takes either of 'function-name, '(function function-name), and '(lambda (x) x) and spits out the desired function object 2018-01-08T20:44:08Z frodef: Xach: yes, suppose I should switch client. 2018-01-08T20:44:14Z sjl: fiveop: are you sure you mean to have that quote in '(function function-name)? 2018-01-08T20:44:39Z fiveop: I am sure, but I might just not allow it in my API. 2018-01-08T20:44:45Z notzmv quit (Quit: WeeChat 2.0.1) 2018-01-08T20:44:56Z fiveop: I was thinking of taking input of the form '(... (:satisfies #'predicate) ...) 2018-01-08T20:45:33Z sjl: yes, #'foo expands to (function foo) not '(function foo) 2018-01-08T20:45:35Z fiveop: but if I just accept '(... (:satisfies predicate) ...) and '(... (:satisfies (lambda (x) x)) ...) 2018-01-08T20:45:38Z fiveop: I could use coerce 2018-01-08T20:45:46Z bms_ joined #lisp 2018-01-08T20:46:05Z _death: sjl: I think it's a schemism to add quotes to everything 2018-01-08T20:46:05Z sjl: (coerce ... 'function) will work with ... = 'foo or #'foo or '(lambda () ...) 2018-01-08T20:46:08Z Karl_Dscc quit (Remote host closed the connection) 2018-01-08T20:46:11Z sjl: ah 2018-01-08T20:47:36Z fiveop: The problem is (coerce (car '(#'foo)) 'function) 2018-01-08T20:48:05Z fiveop: it does not work, because I destructure a sexpression tree I get the actual list '(function foo) not what #'foo evaluates to 2018-01-08T20:50:19Z _death: fiveop: (function foo) is not a function designator.. so you can come up with an "extended function designator" concept and have operators working with that 2018-01-08T20:51:17Z fiveop: yes 2018-01-08T20:51:38Z fiveop: thanks, I was just wondering if there was already a solution in the standard 2018-01-08T20:51:44Z _death: also, there is already an "extended function designator" concept in CL.. so may want to choose another name ;) 2018-01-08T20:51:45Z fiveop: I will just not allow #' 2018-01-08T20:52:23Z Xach: Where do these expressions come from? 2018-01-08T20:53:08Z fiveop: The caller of my function 2018-01-08T20:53:15Z Bike: there's also setf function names. 2018-01-08T20:53:27Z Xach: fiveop: where does the caller get it from? 2018-01-08T20:53:43Z fiveop: by writing them 2018-01-08T20:54:38Z fiveop: I want to write a pattern matcher for s-expressions with a syntax for patterns similar to the tree patterns of cl-ppcre 2018-01-08T20:54:54Z fiveop: eg (matches nil (:list)) 2018-01-08T20:55:11Z fiveop: or (matches nil (:satisfies listp)) => t 2018-01-08T20:55:52Z fiveop: but (matches (2) (:list)) => nil whereas (matches (2) (:list (satisfies numberp))) => t 2018-01-08T20:56:07Z angavrilov quit (Remote host closed the connection) 2018-01-08T20:56:17Z fiveop: there is a : missing 2018-01-08T20:57:19Z fiveop: The goal is to verify and maybe later destructure complex macro arguments in a clean way 2018-01-08T20:59:07Z Xach: sounds interesting 2018-01-08T21:04:19Z shka quit (Ping timeout: 256 seconds) 2018-01-08T21:08:09Z bms_ quit (Read error: Connection reset by peer) 2018-01-08T21:17:13Z bms_ joined #lisp 2018-01-08T21:17:18Z fiveop: thanks 2018-01-08T21:17:18Z fiveop quit 2018-01-08T21:22:11Z Fare quit (Ping timeout: 255 seconds) 2018-01-08T21:23:24Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T21:26:38Z eivarv quit (Quit: Sleep) 2018-01-08T21:27:33Z randomstrangerb quit (Ping timeout: 246 seconds) 2018-01-08T21:28:47Z randomstrangerb joined #lisp 2018-01-08T21:28:57Z makomo: does anyone know what the names of the map functions stand for (except for mapcar and maplist maybe)? 2018-01-08T21:29:01Z makomo: for example mapc and mapcan 2018-01-08T21:29:08Z scymtym joined #lisp 2018-01-08T21:29:20Z makomo: i'm looking for a good mnemonic or something similar 2018-01-08T21:30:11Z gtuser quit (Remote host closed the connection) 2018-01-08T21:35:46Z rme: maybe mapc is shorter than mapcar because the successive cars aren't returned as a list? 2018-01-08T21:36:16Z makomo: that's what i'm thinking too. and the same logic would go for maplist/mapl. 2018-01-08T21:36:23Z Bike: maplist to mapcon kind of fucks it up 2018-01-08T21:36:26Z makomo: and then mapcan and mapcon remain 2018-01-08T21:36:29Z makomo: yeah lol 2018-01-08T21:37:02Z attila_lendvai joined #lisp 2018-01-08T21:37:02Z attila_lendvai quit (Changing host) 2018-01-08T21:37:02Z attila_lendvai joined #lisp 2018-01-08T21:37:03Z makomo: mapcan is understandable, it's mapcar with an n, i.e. it's destructible 2018-01-08T21:37:13Z rme: As for mapcan, it's like mapcar, only the "n" means that it nconcs the results together. 2018-01-08T21:37:22Z makomo: yeah :-) 2018-01-08T21:37:27Z rme: what you said 2018-01-08T21:37:28Z makomo: maplist -> mapcon sucks indeed 2018-01-08T21:39:52Z foom2 is now known as foom 2018-01-08T21:40:00Z rme: Perhaps interestingly (or not), ccl implements all of those mapxxx functions using an common function called ccl::map1. 2018-01-08T21:40:14Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T21:41:05Z red-dot joined #lisp 2018-01-08T21:42:20Z jmercouris quit (Remote host closed the connection) 2018-01-08T21:43:08Z jmercouris joined #lisp 2018-01-08T21:45:11Z cgay: mapcarn 2018-01-08T21:46:04Z fe[nl]ix: yeah, let's map the car out of that list 2018-01-08T21:46:13Z fe[nl]ix: n 2018-01-08T21:50:31Z Fare joined #lisp 2018-01-08T21:50:34Z bms_ quit (Remote host closed the connection) 2018-01-08T21:52:20Z cgay: nmapcar probably makes more sense, in a matching CL's naming conventions sort of way? 2018-01-08T21:54:10Z pjb: map-list-elements-concatenating-results 2018-01-08T21:55:12Z DeadTrickster quit (Remote host closed the connection) 2018-01-08T21:55:29Z cgay: reduce 2018-01-08T21:55:41Z pjb: The point of mapcar/mapcan/mapcon etc, being to 1- keep the symbol name at 6 characters or less so it can be stored in a single word, 2- have some homogeneous names for similar operations. 2018-01-08T21:56:15Z pjb: reduce doesn't concatenate the results, it defers to the caller. 2018-01-08T21:56:27Z cgay: indeed 2018-01-08T21:58:28Z pagnol: can I somehow tell sbcl that a vector will only ever contain objects of a certain type? 2018-01-08T22:00:13Z Bike: yes, you can declare it to be of type (vector [type]) and i think itll figure it out 2018-01-08T22:03:54Z wxie joined #lisp 2018-01-08T22:04:30Z sjl: well, "will only ever contain objects of a certain type" doesn't necessarily make it a (vector TYPE) 2018-01-08T22:04:48Z sjl: e.g. `(vector 1 2 3)` is not a `(vector fixnum)` 2018-01-08T22:05:21Z razzy: I have question, wasn't #lisp bigger 15 years back? 2018-01-08T22:07:24Z Shinmera: #lisp has only been around since 2004. 2018-01-08T22:07:31Z Shinmera: So the answer is no 2018-01-08T22:07:46Z razzy: thank you 2018-01-08T22:08:02Z random-nick quit (Remote host closed the connection) 2018-01-08T22:08:05Z Shinmera: At least that's what ChanServ tells me 2018-01-08T22:08:21Z Cymew joined #lisp 2018-01-08T22:08:37Z pjb: #lisp existed before, but wasn't registered in ChanServ. Perhaps #lisp wasn't even on freenode then! 2018-01-08T22:08:40Z pagnol: sjl, mind explaining this to someone new to lisp? 2018-01-08T22:09:14Z pjb: pagnol: cf. upgraded-array-element-type 2018-01-08T22:11:14Z razzy: is here some elder from ancient times? 2000? irc.freenode seems like very good technology and idea to be this small 2018-01-08T22:11:21Z foom: http://blog.kpe.io/archives/lisp/ mentions "import lisp logs extending back to Sep 2000" 2018-01-08T22:11:37Z notzmv joined #lisp 2018-01-08T22:11:38Z foom: irc is pretty crappy for modern requirements. 2018-01-08T22:11:40Z pagnol: if I add a line (check-type x (vector integer)) then my code compiles but when I pass a vector with strings then the compiler doesn't warn me 2018-01-08T22:11:55Z Shinmera: foom: And yet in many ways it's better than all modern solutions :/ 2018-01-08T22:12:12Z foom: Shinmera: yeah, that's the dilemma. 2018-01-08T22:12:19Z pagnol: are there popular slack channels for cl? 2018-01-08T22:12:19Z sjl: pagnol: it's a bit complicated, but in a nutshell: if you create an array with (make array ... :element-type foo) then they array is only ever allowed to contain foo's, and the Lisp is allowed to optimize how it stores the array 2018-01-08T22:12:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-08T22:13:05Z sjl: e.g. if you (make-array ... :element-type 'bit) SBCL will (I think) pack the bits into contiguous hunks of memory, rather than having one byte/word/etc per element 2018-01-08T22:13:17Z pillton: sjl: That isn't correct. 2018-01-08T22:13:21Z sjl: no? 2018-01-08T22:13:27Z phoe: What is the function to get the filename from a pathname? for #p"/foo/bar.baz", I want to get "bar.baz" 2018-01-08T22:13:51Z Shinmera: phoe: (format NIL "~a~@[.~a~]" (pathname-name a) (pathname-type a)) 2018-01-08T22:14:01Z pjb quit (Remote host closed the connection) 2018-01-08T22:14:04Z phoe: Shinmera: hacky as fuck - but thanks 2018-01-08T22:14:14Z Shinmera: Colleen: tell phoe look up pathname-utils file-name 2018-01-08T22:14:14Z Colleen: phoe: Function pathname-utils:file-name https://shinmera.github.io/pathname-utils#FUNCTION%20PATHNAME-UTILS%3AFILE-NAME 2018-01-08T22:14:25Z phoe: Shinmera: less hacky. thanks! 2018-01-08T22:14:33Z sjl: anyway, it's implementation-dependent what element types the Lisp will optimize 2018-01-08T22:15:40Z pillton: sjl: The value of :element-type allows make-array to optimize the representation of elements in the array. It does not restrict what elements can be stored though. 2018-01-08T22:16:18Z sjl: the upgraded-array-element-type thing pjb mentioned is a way to see what the element type of the array actually ends up being 2018-01-08T22:16:23Z sjl: pillton: `(make-array 1 :element-type 'bit :initial-element 2) 2018-01-08T22:16:28Z pillton: sjl: (setf (aref (make-array 1 :element-type '(or integer float)) 0) "Hey") => "Hey" 2018-01-08T22:16:43Z Bike: i was just talking about declaring the vector type, in which case (vector (or cons function)) or whatever does tell the implementation that the elements are of that type, even if that's upgraded to t 2018-01-08T22:16:57Z Bike: doesn't work for check-type though 2018-01-08T22:17:24Z froggey: phoe: file-namestring? 2018-01-08T22:17:48Z pillton: I haven't followed the conversation and I have only read sjl's last comment. 2018-01-08T22:17:50Z Shinmera: Bah, how could I forget about file-namestring 2018-01-08T22:17:52Z sjl: pillton: yeah, that particular type gets upgraded to t 2018-01-08T22:17:57Z phoe: froggey: wow 2018-01-08T22:18:04Z phoe: you are correct, thanks! 2018-01-08T22:19:08Z sjl: if you use an element-type that doesn't get upgraded to t, it'll restrict what can be stored in the array 2018-01-08T22:19:13Z sjl: clhs make-array 2018-01-08T22:19:13Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_mk_ar.htm 2018-01-08T22:19:15Z sjl: > The new-array can actually store any objects of the type which results from upgrading element-type; see Section 15.1.2.1 (Array Upgrading). 2018-01-08T22:20:30Z Bike: the integer float setf is UB, though of course it does usually work 2018-01-08T22:20:35Z pjb joined #lisp 2018-01-08T22:20:53Z sjl: pagnol: so anyway, implementations are allowed to take advantage of :element-type if they want 2018-01-08T22:21:05Z mishoo__ quit (Ping timeout: 260 seconds) 2018-01-08T22:21:34Z sjl: and the type specifier `(vector FOO)` essentially means "a one-dimensional array with an :element-type of FOO" 2018-01-08T22:21:54Z sjl: which is not necessarily the same thing as "a one-dimensional array that will only ever contain FOOs" 2018-01-08T22:22:00Z Bike: no 2018-01-08T22:22:11Z Bike: the type specifier actually does mean it only contains foos, regardless of the upgrading 2018-01-08T22:22:21Z Bike: at least for declarations 2018-01-08T22:22:33Z pillton: sjl: The upgraded array element type can be more general then the specified element type e.g. on SBCL (upgraded-array-element-type '(integer 0 17)) => (unsigned-byte 7) 2018-01-08T22:22:50Z sjl: pillton: yes, I'm aware of that 2018-01-08T22:22:59Z phoe: Bike: "the integer float setf is UB" <- what do you mean? 2018-01-08T22:23:18Z Bike: is it not obvious? 2018-01-08T22:23:21Z pjb quit (Remote host closed the connection) 2018-01-08T22:23:21Z sjl: Bike: I'm saying that if I (defparameter *x* (vector 1 2 3)) and never change its values, it's still not a `(vector fixnum)` 2018-01-08T22:23:34Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T22:23:42Z sjl: Bike: even though it's "a one-dimensional array that only ever contains fixnums" 2018-01-08T22:24:00Z Bike: yyyyyes, i think that's right 2018-01-08T22:24:38Z sjl: how about this: all (vector fixnums) contain only fixnums, but not all vectors that contain only fixnums are (vector fixnums) 2018-01-08T22:24:40Z sjl: lol 2018-01-08T22:25:14Z pillton: No that isn't right. 2018-01-08T22:25:28Z Bike: array upgrading sucks 2018-01-08T22:25:32Z sjl: assuming that fixnum is the upgraded type 2018-01-08T22:26:03Z pillton: Yes, under that premise. 2018-01-08T22:26:16Z pillton: clhs 15.1.2.2 2018-01-08T22:26:16Z specbot: Required Kinds of Specialized Arrays: http://www.lispworks.com/reference/HyperSpec/Body/15_abb.htm 2018-01-08T22:26:24Z pillton: Fixnum isn't required to be specialized. 2018-01-08T22:26:34Z phoe: only strings and bitarrays are. 2018-01-08T22:26:41Z sjl: yeah 2018-01-08T22:26:58Z phoe: Bike: I don't understand what "the integer float setf" means 2018-01-08T22:27:02Z jmercouris: jasom: Just released the experimental/alpha version of nEXT for linux 2018-01-08T22:27:09Z phoe: (setf 2 2.0) is the first thing that comes to my mind 2018-01-08T22:27:12Z phoe: which is silly 2018-01-08T22:27:19Z jmercouris: jasom: Now I gotta update cl-webkit to be able to work with libwebkit2gtk-4.0.so 2018-01-08T22:27:25Z Bike: phoe: pillton's example (setf (aref (make-array 1 :element-type '(or integer float)) 0) "Hey") 2018-01-08T22:27:40Z phoe: ooh, that one 2018-01-08T22:27:59Z phoe: that's a type mismatch, "Hey" is not of type (or integer float) 2018-01-08T22:28:17Z phoe: even if the resulting array is of type T, portable code shouldn't depend on it being T 2018-01-08T22:28:39Z phoe: since an implementation is allowed to create a specialized array for holding only (or integer float)s 2018-01-08T22:28:49Z phoe: and this will break 2018-01-08T22:29:19Z sjl: unless you check that (upgraded-array-element-type '(or float integer)) is t first, heh 2018-01-08T22:29:29Z sjl: though obviously you'd never do that 2018-01-08T22:29:35Z jmercouris: What does it mean to clean a Lisp image? 2018-01-08T22:29:49Z jmercouris: or to have a "clean" image? 2018-01-08T22:29:56Z jmercouris: basically that nothing has been loaded? 2018-01-08T22:30:06Z phoe: jmercouris: yes 2018-01-08T22:31:41Z AxelAlex joined #lisp 2018-01-08T22:31:44Z AxelAlex quit (Max SendQ exceeded) 2018-01-08T22:32:14Z AxelAlex joined #lisp 2018-01-08T22:34:33Z pillton: All this time I have been cleaning the Lisp image on the wall. 2018-01-08T22:35:15Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-08T22:37:20Z LiamH quit (Quit: Leaving.) 2018-01-08T22:37:31Z wheelsucker quit (Remote host closed the connection) 2018-01-08T22:37:40Z rpg joined #lisp 2018-01-08T22:38:50Z dddddd quit (Remote host closed the connection) 2018-01-08T22:39:14Z pillton: phoe: The point of that example was to show that (setf (aref ...) ...) does not do any checking. 2018-01-08T22:40:42Z sjl: pagnol: anyway, if you declare that something is a (vector FOO) you must have created it with an :element-type of FOO (or an element-type that upgrades to the same result type). it's not enough to just make sure it only ever contains FOOs. 2018-01-08T22:41:27Z pagnol: sjl, alright, thanks for taking the time explain it 2018-01-08T22:41:32Z pagnol: *to 2018-01-08T22:41:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-08T22:41:40Z sjl: array element types are tricky in lisp, unfortunately 2018-01-08T22:41:53Z sjl: the book Common Lisp Recipes has a good section on them, if I remember right 2018-01-08T22:42:23Z red-dot joined #lisp 2018-01-08T22:43:31Z sjl: yeah, chapter 5-9 in there. 2018-01-08T22:44:00Z sjl: It's not free, but it's a good book that's worth the money if you want to dive further into Common Lisp eventually. 2018-01-08T22:44:48Z shifty joined #lisp 2018-01-08T22:44:49Z Bike quit (Ping timeout: 260 seconds) 2018-01-08T22:45:55Z pillton: It would be good to think through the impacts of enforcing the element-type. 2018-01-08T22:45:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-08T22:47:46Z wxie quit (Quit: Bye.) 2018-01-08T22:48:57Z bms_ joined #lisp 2018-01-08T22:49:21Z pillton: sjl: Sorry for jumping in there. 2018-01-08T22:50:23Z AxelAlex quit (Quit: AxelAlex) 2018-01-08T22:51:39Z sjl: it's cool 2018-01-08T22:51:54Z nowhere_man quit (Ping timeout: 246 seconds) 2018-01-08T22:53:35Z sjl: to give you an idea of the kind of "fun" things that can happen, consider something very broken like this: http://paste.stevelosh.com/5a53f663515cd300085229ef 2018-01-08T22:53:52Z sjl: (never go full (safety 0)) 2018-01-08T22:54:17Z orivej joined #lisp 2018-01-08T22:54:52Z pillton: Safety has nothing to do with it. That is an implementation detail. 2018-01-08T22:54:55Z pillton: clhs 1.4.4.3 2018-01-08T22:54:55Z specbot: The ``Arguments and Values'' Section of a Dictionary Entry: http://www.lispworks.com/reference/HyperSpec/Body/01_ddc.htm 2018-01-08T22:54:57Z pillton: "Except as explicitly specified otherwise, the consequences are undefined if these type restrictions are violated." 2018-01-08T22:55:14Z sjl: sbcl won't let you do it unless you specifically set safety to 0 2018-01-08T22:55:32Z sjl: other implementations might let you shoot yourself in the foot even with lesser settings, yes 2018-01-08T22:56:43Z sjl: ccl also checks the type at safety 1 2018-01-08T22:56:51Z sjl: those are the only 2 implementations I have on this machine to check 2018-01-08T22:57:23Z phoe: pillton: it might do checking. 2018-01-08T22:57:27Z aeth: If you want to test a lot of implementations, you can set up roswell for that 2018-01-08T22:58:10Z sjl: I'd be surprised if many implementations didn't check the type at safety >= 1, but yeah, they're allowed to not check if they want to 2018-01-08T22:58:17Z phoe: pillton: since it's undefined behaviour, the implementation might do typechecks on array access, and error in case a mistyped value is set into an array. 2018-01-08T22:58:31Z aeth: I use roswell when I need to see how (or if) something works just about every implementation. It doesn't have MKCL and I can't get its Clasp to work. Other than that, it has pretty much every free implementation. 2018-01-08T22:58:31Z phoe: *whether* implementations do it is another story. (: 2018-01-08T22:58:52Z sjl: I mean, it's undefined behavior. It could launch Nethack. 2018-01-08T22:58:59Z Fare quit (Ping timeout: 265 seconds) 2018-01-08T22:59:10Z pillton: phoe: Sure. I am just making sure people are aware of their assumptions. 2018-01-08T23:00:49Z blackwolf quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-08T23:01:06Z damke joined #lisp 2018-01-08T23:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-08T23:05:47Z Fare joined #lisp 2018-01-08T23:07:52Z nowhere_man joined #lisp 2018-01-08T23:09:19Z sjl quit (Ping timeout: 248 seconds) 2018-01-08T23:09:32Z paul0 joined #lisp 2018-01-08T23:09:33Z varjagg quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-08T23:12:57Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-08T23:13:28Z Baggers quit (Remote host closed the connection) 2018-01-08T23:14:12Z randomstrangerb joined #lisp 2018-01-08T23:15:21Z pagnol: I see lots of Japense names when browsing repos on github... is the lisp community strong there? 2018-01-08T23:15:26Z pagnol: *Japanese 2018-01-08T23:15:43Z jmercouris: Apparently it is :D 2018-01-08T23:16:00Z jmercouris: I think it's also true that emacs has some presence there, which leads of course to Lisp 2018-01-08T23:16:13Z jmercouris: I see alot of Japanese specific emacs/lisp things 2018-01-08T23:16:38Z nydel joined #lisp 2018-01-08T23:16:44Z pagnol: especially the name Eitaro Fukumachi jumps out at me just about everywhere 2018-01-08T23:18:04Z pansninja joined #lisp 2018-01-08T23:18:10Z pansninja: Hello 2018-01-08T23:18:28Z pansninja: Do you read CAR and CDR as "car" and See-Dee-Are? 2018-01-08T23:19:02Z aeth: cuh-dur 2018-01-08T23:19:07Z pagnol: thanks for asking this question.. I was wondering too the other day :) 2018-01-08T23:19:33Z nowhere_man quit (Ping timeout: 264 seconds) 2018-01-08T23:19:46Z Fare quit (Ping timeout: 265 seconds) 2018-01-08T23:20:15Z aeth: and "cadr" would be "ca-dur" and "caddr" would be "ca-dud-ur" and "cadadr" would be "ca-dad-ur" etc 2018-01-08T23:20:22Z aeth: You can pronounce all combinations 2018-01-08T23:21:23Z Shinmera: clhs car 2018-01-08T23:21:23Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_car_c.htm 2018-01-08T23:21:49Z Shinmera: pansninja: ^includes phonetic scripture for the pronunciation 2018-01-08T23:22:47Z Shinmera: Well, it's not IPA, but some scripture at least. 2018-01-08T23:22:51Z aeth: basically, use "uh" to fill in where there is no vowel. 2018-01-08T23:23:34Z aeth: "cddr" -> "cuhduhduhr" 2018-01-08T23:23:41Z pansninja: duhhh. 2018-01-08T23:23:41Z aeth: "caddr" -> "caduhduhr" 2018-01-08T23:23:42Z pilfink joined #lisp 2018-01-08T23:24:49Z orivej quit (Ping timeout: 248 seconds) 2018-01-08T23:24:49Z pansninja: Thanks. 2018-01-08T23:25:08Z aeth: So there's always one of two vowels "ah" or "uh" 2018-01-08T23:25:15Z tomlukeywood joined #lisp 2018-01-08T23:28:38Z orivej joined #lisp 2018-01-08T23:28:46Z Bike joined #lisp 2018-01-08T23:29:05Z cgay: They almost got it right: https://www.youtube.com/watch?v=IN5LLPmEuiE 2018-01-08T23:29:13Z phoe: pagnol: /r/lisp_ja 2018-01-08T23:29:35Z rme: I and people I know say "car" (car) and "could-er" (cdr) and "cadder" (cadr). 2018-01-08T23:31:14Z attila_lendvai joined #lisp 2018-01-08T23:31:14Z attila_lendvai quit (Changing host) 2018-01-08T23:31:14Z attila_lendvai joined #lisp 2018-01-08T23:32:02Z rme: if you say "see-dee-are", people will point and laugh at you :-) 2018-01-08T23:32:21Z pagnol: phoe, wow, looks pretty active 2018-01-08T23:32:24Z vancan1ty joined #lisp 2018-01-08T23:33:17Z orivej quit (Ping timeout: 268 seconds) 2018-01-08T23:33:47Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-08T23:34:27Z pagnol: cgay, https://forvo.com/word/ar/qatar/#ar 2018-01-08T23:34:39Z pagnol: it's actually pronounced like this 2018-01-08T23:34:40Z jstypo quit (Read error: Connection reset by peer) 2018-01-08T23:34:41Z orivej joined #lisp 2018-01-08T23:35:29Z Kaisyu joined #lisp 2018-01-08T23:37:52Z aeth: It depends on the Lisp, too, e.g. with MIT Scheme "car" is pronounced "cah". This holds for all Lisps and Schemes made in the Boston area. 2018-01-08T23:38:10Z fe[nl]ix: hahaha 2018-01-08T23:38:34Z bms_: :P 2018-01-08T23:38:57Z orivej quit (Client Quit) 2018-01-08T23:39:29Z jmercouris quit (Remote host closed the connection) 2018-01-08T23:39:44Z jmercouris joined #lisp 2018-01-08T23:39:50Z aeth: Hmm... CCL's developers are in the Boston area. So apparently that includes CCL 2018-01-08T23:40:03Z orivej joined #lisp 2018-01-08T23:40:17Z pagnol: somehow the loop macro feels like a drug 2018-01-08T23:40:41Z nowhere_man joined #lisp 2018-01-08T23:41:27Z rme: I'm a ccl developer, and I'm not in the Boston area. 2018-01-08T23:43:55Z zmt00 quit (Read error: Connection reset by peer) 2018-01-08T23:44:00Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-08T23:44:23Z zmt00 joined #lisp 2018-01-08T23:44:28Z aeth: s/CCL's developers are/the company that primarily sponsors CCL development is/ 2018-01-08T23:44:29Z emaczen` joined #lisp 2018-01-08T23:44:31Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-08T23:44:39Z pagnol: I found out about ParentScript only this evening and am amazed that it was made in 2005 apparently, a long time before the js craze took off 2018-01-08T23:44:59Z aeth: pagnol: It's really easy to go to or from s-expressions 2018-01-08T23:45:07Z aeth: (because you're essentially working in an intermediate representation) 2018-01-08T23:45:42Z pagnol: aeth, sorry, you lost me, in reference to what did you write that? 2018-01-08T23:46:45Z aeth: pagnol: Lisp developers see some strange syntax that they're forced to use (JavaScript, HTML, CSS, GLSL, XML, SGML, CSV, JSON, SQL, whatever) and their first instinct is to try to generate it from s-expressions 2018-01-08T23:46:55Z rme: While Clozure Associates has indeed supported CCL for a very long time, CCL relies on (and needs) contributions and support from its users. 2018-01-08T23:47:14Z arrsim quit (Ping timeout: 252 seconds) 2018-01-08T23:47:19Z emaczen quit (Ping timeout: 265 seconds) 2018-01-08T23:49:20Z arrsim joined #lisp 2018-01-08T23:49:32Z aeth: pagnol: Generating a string or a file from s-expressions is a very simple thing to do. 2018-01-08T23:50:14Z pansninja: What is parentscript? 2018-01-08T23:50:15Z pansninja: wot? 2018-01-08T23:50:27Z aeth: parenscript is generating JavaScript from s-expressions 2018-01-08T23:50:37Z aeth: There's also JSCL, which tries to keep more of the CL semantics iirc 2018-01-08T23:50:41Z pansninja: XML actually a kind of s-expression. 2018-01-08T23:50:42Z pansninja: aeth: Sauce? 2018-01-08T23:50:44Z aeth: Both are very incomplete. 2018-01-08T23:50:51Z Fare joined #lisp 2018-01-08T23:50:55Z aeth: I've used the JSCL REPL when I need a REPL in a browser on the go, though 2018-01-08T23:51:03Z pansninja: Oh 2018-01-08T23:51:05Z aeth: https://jscl-project.github.io/ 2018-01-08T23:51:09Z p_l: Well, parenscript is more of a "syntax" to write JS in 2018-01-08T23:51:09Z pansninja: it is Paren. Not Parent. 2018-01-08T23:51:15Z jstypo joined #lisp 2018-01-08T23:51:54Z pansninja: I believe one of the major things that holds lisp back from adoption is not the syntax, but the idiosyncratic documentations. 2018-01-08T23:51:59Z aeth: pansninja: XML has an ambiguity that s-expressions don't have, probably introduced because of how verbose and annoying XML is 2018-01-08T23:52:12Z pansninja: I am yet to find a language with more over complicated and poor UX docs than lisp. 2018-01-08T23:52:25Z aeth: The XML ambiguity is: ... vs. baz... 2018-01-08T23:52:28Z pansninja: And that is coming from someone who has come to love lisp in some ways. 2018-01-08T23:53:29Z pansninja: aeth: But that is not the same thing at all. foo with bar set to baz is not same as a foor with a bar. 2018-01-08T23:53:32Z pansninja: obviously. 2018-01-08T23:53:37Z bitch quit (Ping timeout: 248 seconds) 2018-01-08T23:54:12Z pansninja: (foo :bar "buz") vs (foo (bar (buz))). 2018-01-08T23:54:12Z aeth: ... vs. Phil... 2018-01-08T23:54:15Z orivej quit (Ping timeout: 268 seconds) 2018-01-08T23:54:41Z pansninja: (person :name "Phil") vs (person (name "phil"))... 2018-01-08T23:54:41Z davsebamse quit (Ping timeout: 248 seconds) 2018-01-08T23:55:19Z Shinmera: The difference with sexprs is that they have no defined structure beyond lists and atoms. 2018-01-08T23:55:30Z Shinmera: XML does. It forces the ambiguity on you. 2018-01-08T23:55:32Z aeth: CL in particular has the plist vs alist issue, most Lisps just have alists, which are harder to write. 2018-01-08T23:56:02Z aeth: That's probably the most direct comparison, but you don't mix plists and alists in the same data structure afaik 2018-01-08T23:56:05Z pansninja: Shinmera: Example? 2018-01-08T23:56:10Z Shinmera: Of what 2018-01-08T23:56:23Z pansninja: Of an ambiguity in XML that is not possible in CL. 2018-01-08T23:56:31Z Shinmera: What we're discussing right now? 2018-01-08T23:56:33Z pansninja: Considering plists and alists issue mentioned by aeth. 2018-01-08T23:56:36Z Bike: lisp library docs kind of blow a lot, it's true. hyperspec is pretty good though. 2018-01-08T23:56:45Z pansninja: Shinmera: Stop it. It doesn't look good on you. 2018-01-08T23:56:58Z Shinmera: plists and alists are someting made up by people. They're not part of sexpr syntax. 2018-01-08T23:57:11Z Shinmera: What doesn't look good on me? 2018-01-08T23:57:20Z pansninja: Bike: hyperspec is rubbish. Do you really think the image of a script as a button and a wildly complicate layout and flow is good? how? 2018-01-08T23:57:27Z pansninja: Shinmera: Your... face. :P 2018-01-08T23:57:38Z Shinmera: Uh. Okey, nice try? 2018-01-08T23:57:43Z rme shakes head 2018-01-08T23:57:49Z Bike: i hit table of contents, i go places 2018-01-08T23:57:55Z Bike: the pictures are old, no big 2018-01-08T23:58:11Z Bike: i meant the content more than the buttons, anywho 2018-01-08T23:58:21Z aeth: The Hyperspec looks like it was designed in 1996, probably because it was (although iirc it was given a slight visual improvement over the 1996 version if you look at the Wayback Machine) 2018-01-08T23:58:25Z tomlukeywood quit (Remote host closed the connection) 2018-01-08T23:58:27Z bitch joined #lisp 2018-01-08T23:58:32Z pansninja: Navigation is a big part for me. if I can't find the content. 2018-01-08T23:58:38Z pansninja: It is as good as nonexistent. 2018-01-08T23:58:43Z Bike: well, go to the table of contents 2018-01-08T23:58:48Z Bike: and then you can click the nice textually named chapters 2018-01-08T23:58:58Z pansninja: I need like 25 clicks and five backs to get to it from most pages. 2018-01-08T23:59:14Z pansninja: You can't convince me that it is a good experience. 2018-01-08T23:59:17Z aeth: The design of the HyperSpec is old enough to drink in the United States 2018-01-08T23:59:18Z pansninja: I don't find it a good experience. 2018-01-08T23:59:23Z attila_lendvai joined #lisp 2018-01-08T23:59:23Z attila_lendvai quit (Changing host) 2018-01-08T23:59:23Z attila_lendvai joined #lisp 2018-01-08T23:59:26Z aeth: (21 years old) 2018-01-08T23:59:27Z pansninja: aeth: Thank you. 2018-01-09T00:00:01Z aeth: An updated web page design signals that the entity behind it is still alive. 2018-01-09T00:00:06Z aeth: It doesn't reflect well on CL 2018-01-09T00:00:28Z pansninja: Seriously? 2018-01-09T00:00:33Z orivej joined #lisp 2018-01-09T00:00:35Z pansninja: I really hope you're kidding. 2018-01-09T00:01:13Z cgay: KMP is still alive and kicking. 2018-01-09T00:01:20Z cgay: pansninja: I'm with you, fwiw. 2018-01-09T00:01:39Z aeth: The HyperSpec could be worse, though. This website is also from 1996: https://www.warnerbros.com/archive/spacejam/movie/jam.htm 2018-01-09T00:01:45Z fortitude__ joined #lisp 2018-01-09T00:01:57Z pansninja: aeth: I am sorry brother, but that is a useless argument. 2018-01-09T00:02:05Z aeth: pansninja: What's a useless argument? 2018-01-09T00:02:19Z pansninja: The point is, that hyperspec sucks in 2018. Not that some websites from 1990s suck more. 2018-01-09T00:02:20Z davsebamse joined #lisp 2018-01-09T00:02:51Z bms_: I actually love that Space Jam site. 2018-01-09T00:02:56Z pansninja: And if Hyperspecw was merely a historical artifact, I would understand. 2018-01-09T00:03:09Z pansninja: But it is touted as the canonical reference. 2018-01-09T00:03:15Z aeth: My point is that a web design from 1996 (with the background turned to white and the images very slightly updated iirc) as the official reference isn't going to reflect well on the community. Especially when the competition has websites like this: https://docs.python.org/3/ 2018-01-09T00:03:24Z pansninja: Which is just not good enough for 2018. It sucks. 2018-01-09T00:03:55Z pansninja: cgay: I find it strange that not many people around here see the problem. 2018-01-09T00:03:55Z bms_: I think you guys are kind of saying the same thing. Where's the argument? 2018-01-09T00:03:57Z rme: Well then, I'll get right on that. 2018-01-09T00:03:57Z aeth: Actually, I hate the new Python documentation style. 2018-01-09T00:04:05Z Xach: People who are used to the spec as it is can access info very quickly, so there's a reduced incentive to change it. 2018-01-09T00:04:21Z Xach: I am used to it, I like it, and I can find exactly what I need very quickly. So I don't mind the way it is at all. 2018-01-09T00:04:22Z cgay: pansninja: welcome to lisp :) 2018-01-09T00:04:33Z Xach: I'm up for something newer, if it's also easy to use. 2018-01-09T00:04:43Z Xach: I'm just not going to do it myself - I like what I have. 2018-01-09T00:04:48Z bms_: There's also a reduced incentive for new people to use it, although I've had no real problem with it. 2018-01-09T00:05:33Z aeth: Xach: I personally can only navigate the hyperspec through http://l1sp.org/html/ 2018-01-09T00:05:39Z Xach: I think it takes a special kind of determination to start with something you don't like, learn it well enough to do it better, and then still do it better. There are many opportunities to either peel off or decide it's not bad after all. 2018-01-09T00:05:43Z aeth: I use !l1sp in DDG to search 2018-01-09T00:06:34Z Xach: Yes, I think it's pretty important to be able to jump exactly to a definition or chapter. 2018-01-09T00:06:41Z aeth: Iirc, the HyperSpec has essentially no style. Changing your browser's default font from serif to sans-serif helps make it look more modern 2018-01-09T00:06:53Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T00:10:10Z aeth: For more elaborate things, like setting a maximum width, you can use a simple script. One way is through Greasemonkey in Firefox. That's probably a more annoying style issue. 2018-01-09T00:11:17Z aeth: A lot of modern sites have this issue, though. I guess designers never test their site at 1080p fullscreen 2018-01-09T00:11:33Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-09T00:14:04Z sigjuice: pansninja C-c C-d h takes you right to whatever is under your cursor. and every page has a million cross-references. 2018-01-09T00:14:28Z pansninja: sigjuice: I don't use what you do. 2018-01-09T00:15:22Z sigjuice: what do you use then? 2018-01-09T00:17:34Z attila_lendvai quit (Ping timeout: 272 seconds) 2018-01-09T00:26:53Z FreeBirdLjj joined #lisp 2018-01-09T00:31:10Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-09T00:33:39Z damke__ joined #lisp 2018-01-09T00:34:33Z damke quit (Ping timeout: 264 seconds) 2018-01-09T00:37:54Z sigjuice: aeth https://docs.python.org/3/genindex.html different and http://www.lispworks.com/documentation/HyperSpec/Front/X_Master.htm are not that different 2018-01-09T00:38:44Z sigjuice: s,different,, 2018-01-09T00:39:35Z Oladon joined #lisp 2018-01-09T00:43:37Z turkja joined #lisp 2018-01-09T00:43:46Z pierpa joined #lisp 2018-01-09T00:46:55Z ryanbw quit (Ping timeout: 248 seconds) 2018-01-09T00:51:00Z aeth: sigjuice: The HyperSpec is so old that, ironically, its style has (mostly) come back around as long as your web browser defaults to san-serif (which most don't, but it is configurable) instead of serif. The main exceptions are that the search isn't accessible from the page and the navigation is done through GIFs 2018-01-09T00:51:35Z igemnace quit (Read error: Connection reset by peer) 2018-01-09T00:51:37Z aeth: Not having a max width is pretty bad, even Python's documentation is basically unreadable with a maximized or fullscreen browser at 1080p 2018-01-09T00:52:05Z igemnace joined #lisp 2018-01-09T00:52:30Z aeth: Much better documentation: https://docs.racket-lang.org/ 2018-01-09T00:52:48Z aeth: (Except that's serif, not sans-serif) 2018-01-09T00:53:09Z aeth: Another small detail is links are color coded blue and not both color coded and underlined these days. 2018-01-09T00:53:15Z aeth: (I think Wikipedia started that trend) 2018-01-09T00:53:50Z aeth: There are some very small details that could greatly improve CL documentation 2018-01-09T00:55:56Z aeth: One thing almost all of the documentation sites do is make code blocks very distinguishable from body text 2018-01-09T01:03:57Z markong quit (Ping timeout: 264 seconds) 2018-01-09T01:10:20Z EvW quit (Ping timeout: 255 seconds) 2018-01-09T01:11:35Z rpg: aeth: I'm not sure why designers dropped the underlining -- oftentimes these days links are very hard to find. Sometimes they don't mark them at all and websites are like a point-and-click adventure game... 2018-01-09T01:12:24Z aeth: It works on Wikipedia. It doesn't work if you don't keep the color system, ideally the exact same one as Wikipedia's 2018-01-09T01:12:38Z EvW1 joined #lisp 2018-01-09T01:12:54Z bms_ quit (Quit: Leaving) 2018-01-09T01:13:43Z wurui joined #lisp 2018-01-09T01:16:20Z aeth: It's not like the HyperSpec is any better, though. Image links for navigation are bad, especially because they're archaic and so don't stand out 2018-01-09T01:18:45Z damke joined #lisp 2018-01-09T01:20:45Z damke__ quit (Ping timeout: 263 seconds) 2018-01-09T01:22:34Z lugh quit (Quit: quitting bouncer) 2018-01-09T01:23:49Z lugh joined #lisp 2018-01-09T01:24:48Z lugh quit (Client Quit) 2018-01-09T01:29:12Z lugh joined #lisp 2018-01-09T01:32:18Z rpg: aeth: ? Seems like tons of websites use images as links. 2018-01-09T01:33:16Z reverse_light joined #lisp 2018-01-09T01:37:03Z bms_ joined #lisp 2018-01-09T01:37:38Z bms_ quit (Remote host closed the connection) 2018-01-09T01:38:13Z aeth: rpg: Usually they use SVGs or fonts these days afaik 2018-01-09T01:38:14Z wurui1 joined #lisp 2018-01-09T01:38:47Z bms_ joined #lisp 2018-01-09T01:38:57Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-09T01:39:08Z aeth: Technically images, but a very different appearance 2018-01-09T01:39:25Z wurui quit (Ping timeout: 260 seconds) 2018-01-09T01:41:01Z wurui1 left #lisp 2018-01-09T01:48:03Z broccolistem quit (Quit: WeeChat 2.1-dev) 2018-01-09T01:49:20Z broccolistem joined #lisp 2018-01-09T01:50:23Z Oladon quit (Quit: Leaving.) 2018-01-09T01:50:23Z add^_ quit (Ping timeout: 248 seconds) 2018-01-09T01:56:20Z jstypo quit (Ping timeout: 260 seconds) 2018-01-09T01:57:19Z Fare quit (Ping timeout: 248 seconds) 2018-01-09T01:59:59Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T02:02:53Z d4ryus1 joined #lisp 2018-01-09T02:04:13Z loli quit (Quit: WeeChat 2.0.1) 2018-01-09T02:05:34Z red-dot joined #lisp 2018-01-09T02:06:02Z d4ryus quit (Ping timeout: 265 seconds) 2018-01-09T02:08:50Z loli joined #lisp 2018-01-09T02:09:03Z jonh joined #lisp 2018-01-09T02:11:14Z broccolistem quit (Quit: WeeChat 2.1-dev) 2018-01-09T02:12:29Z broccolistem joined #lisp 2018-01-09T02:13:48Z jstypo joined #lisp 2018-01-09T02:17:50Z nirved quit (Quit: Leaving) 2018-01-09T02:18:07Z MrBusiness3 quit (Read error: Connection reset by peer) 2018-01-09T02:18:27Z heurist` joined #lisp 2018-01-09T02:19:11Z MrBusiness3 joined #lisp 2018-01-09T02:19:24Z jameser joined #lisp 2018-01-09T02:19:44Z heurist quit (Ping timeout: 252 seconds) 2018-01-09T02:28:00Z bms_ quit (Quit: Leaving) 2018-01-09T02:28:26Z ckonstanski quit (Remote host closed the connection) 2018-01-09T02:30:41Z yeticry quit (Ping timeout: 265 seconds) 2018-01-09T02:32:32Z yeticry joined #lisp 2018-01-09T02:35:43Z Fare joined #lisp 2018-01-09T02:36:16Z cpape quit (Read error: Connection reset by peer) 2018-01-09T02:36:32Z cpape joined #lisp 2018-01-09T02:37:32Z p_l quit (Ping timeout: 272 seconds) 2018-01-09T02:38:12Z Blkt_ quit (Remote host closed the connection) 2018-01-09T02:38:57Z wxie joined #lisp 2018-01-09T02:39:29Z Blkt joined #lisp 2018-01-09T02:47:37Z dieggsy joined #lisp 2018-01-09T02:47:42Z wildbartty quit (Remote host closed the connection) 2018-01-09T02:51:43Z jstypo quit (Ping timeout: 248 seconds) 2018-01-09T02:52:40Z jmercouris joined #lisp 2018-01-09T02:52:46Z erikc joined #lisp 2018-01-09T02:55:02Z jmercouris: hello everyone 2018-01-09T02:57:10Z hexfive quit (Quit: WeeChat 1.9.1) 2018-01-09T02:59:41Z vancan1ty quit (Ping timeout: 265 seconds) 2018-01-09T03:00:55Z damke_ joined #lisp 2018-01-09T03:02:33Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-09T03:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-09T03:04:18Z JenElizabeth joined #lisp 2018-01-09T03:05:31Z jstypo joined #lisp 2018-01-09T03:05:56Z dieggsy joined #lisp 2018-01-09T03:06:07Z bms_ joined #lisp 2018-01-09T03:07:57Z tonton quit (Ping timeout: 240 seconds) 2018-01-09T03:08:31Z Oladon joined #lisp 2018-01-09T03:10:06Z tonton joined #lisp 2018-01-09T03:10:57Z dieggsy quit (Remote host closed the connection) 2018-01-09T03:12:03Z dieggsy joined #lisp 2018-01-09T03:12:27Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-09T03:12:56Z erikc quit 2018-01-09T03:22:39Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-09T03:24:30Z test1600 joined #lisp 2018-01-09T03:24:33Z test1600 quit (Read error: Connection reset by peer) 2018-01-09T03:25:39Z smasta joined #lisp 2018-01-09T03:28:41Z Cymew joined #lisp 2018-01-09T03:33:10Z Cymew quit (Ping timeout: 260 seconds) 2018-01-09T03:34:19Z NingaLeaf joined #lisp 2018-01-09T03:40:15Z wxie quit (Remote host closed the connection) 2018-01-09T03:40:50Z epony quit (Quit: QUIT) 2018-01-09T03:45:19Z wxie joined #lisp 2018-01-09T03:48:20Z pagnol quit (Ping timeout: 260 seconds) 2018-01-09T03:51:54Z jmercouris quit (Remote host closed the connection) 2018-01-09T03:52:09Z jmercouris joined #lisp 2018-01-09T03:55:20Z wxie quit (Ping timeout: 276 seconds) 2018-01-09T04:02:18Z asarch quit (Quit: Leaving) 2018-01-09T04:03:20Z NingaLeaf quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T04:04:34Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-09T04:06:58Z ckonstanski joined #lisp 2018-01-09T04:07:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-09T04:07:38Z beach: Good morning everyone! 2018-01-09T04:07:53Z jmercouris: good morning!! 2018-01-09T04:08:09Z jmercouris: are you on CET? 2018-01-09T04:08:25Z beach: UTC+1 2018-01-09T04:09:10Z jmercouris: Wow, you wake up super early 2018-01-09T04:09:25Z beach: It's a genetic defect in my family. 2018-01-09T04:09:44Z beach: I had some comments for you yesterday. You may want to check the logs. 2018-01-09T04:09:59Z jmercouris: Ah okay, looking now 2018-01-09T04:11:13Z jmercouris: Ah, indeed :input should not be a macro 2018-01-09T04:11:23Z jmercouris: I was thinking of doing some CPS style input 2018-01-09T04:11:51Z jmercouris: so basically when one sets a minibuffer binding you can just point to a function, and that function will be responsible for invoking the minibuffer 2018-01-09T04:12:12Z jmercouris: I didn't know about the three semicolons, I was just going off something I googled, but I can change that 2018-01-09T04:12:32Z jmercouris: Finally, what do you mean by "It is a very bad idea to define functions or macros with names in the keyword package."? 2018-01-09T04:14:59Z beach: Like (defmacro :input ...) 2018-01-09T04:15:19Z beach: :input is the name of the macro, and it is a symbol in the keyword package. 2018-01-09T04:17:46Z bms_ quit (Quit: Leaving) 2018-01-09T04:19:13Z jmercouris: is a symbol treated differently because it starts with a colon? 2018-01-09T04:19:30Z jmercouris: I guess that makes sense 2018-01-09T04:20:23Z jmercouris: I will be removing this macro anyway, as I think 1. it can be replaced with a function as you said, and 2. I will rewrite most functions to use CPS style so something like (with-minibuffer-input ((valuex (read-from-minibuffer))) (print valuex)) 2018-01-09T04:20:57Z shka joined #lisp 2018-01-09T04:21:41Z beach: When the reader sees a token that starts with a colon, it creates a symbol in the keyword package. 2018-01-09T04:22:51Z beach: That is how you can often pass keyword arguments to functions without using package prefixes. 2018-01-09T04:23:03Z Bike quit (Quit: Lost terminal) 2018-01-09T04:23:17Z jmercouris: Ah, okay that makes sense 2018-01-09T04:23:32Z jmercouris: so is the keyword package literally called "keyword"? 2018-01-09T04:23:40Z beach: clhs keyword 2018-01-09T04:23:40Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_kwd.htm 2018-01-09T04:24:19Z jmercouris: okay I see, thank you for the explanation 2018-01-09T04:24:28Z beach: Sure. 2018-01-09T04:25:04Z beach: And the reason it is a very bad idea to create functions and macros with such names is that it could then clash with other systems doing the same. 2018-01-09T04:25:28Z jmercouris: True, or what if I wanted to use a kwarg :input for example, or if anyone else is 2018-01-09T04:25:32Z beach: Imagine that I want to use your browser at the same time as some editor that also creates a macro named :input, then I can't use both. 2018-01-09T04:25:36Z jmercouris: it would possibly do really weird things and I would have no idea 2018-01-09T04:26:04Z jmercouris: because it would put them in the same package 2018-01-09T04:26:15Z beach: And that's why you stick to your own packages. 2018-01-09T04:26:18Z pierpa: (package-name (symbol-package :foo)) ==> "KEYWORD" 2018-01-09T04:26:19Z jmercouris: whereas if I do not include the colon, they will be in my own package 2018-01-09T04:26:25Z jmercouris: Right 2018-01-09T04:27:06Z jmercouris: Yeah, I am starting to get that 2018-01-09T04:27:40Z jmercouris: Two days ago when writing a macro I was hitting my head against the keyboard for 15 mintues and then I realized I was in the wrong package, and that's why my macro wasn't expanding, so I'll definitely not be forgetting that macros belong to packages anytime soon :D 2018-01-09T04:28:09Z pierpa: :foo is just a shorthand for keyword:foo 2018-01-09T04:29:09Z orivej quit (Ping timeout: 256 seconds) 2018-01-09T04:33:30Z smasta joined #lisp 2018-01-09T04:34:31Z p_l joined #lisp 2018-01-09T04:34:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T04:35:59Z pansninja quit (Ping timeout: 260 seconds) 2018-01-09T04:37:45Z quazimodo joined #lisp 2018-01-09T04:43:07Z schoppenhauer quit (Ping timeout: 265 seconds) 2018-01-09T04:43:07Z quazimodo quit (Remote host closed the connection) 2018-01-09T04:43:33Z orivej joined #lisp 2018-01-09T04:44:25Z wol quit (Remote host closed the connection) 2018-01-09T04:45:04Z schoppenhauer joined #lisp 2018-01-09T04:45:35Z FreeBirdLjj joined #lisp 2018-01-09T04:47:57Z larme quit (Ping timeout: 265 seconds) 2018-01-09T04:48:15Z larme joined #lisp 2018-01-09T04:48:57Z red-dot joined #lisp 2018-01-09T04:49:36Z quazimodo joined #lisp 2018-01-09T04:50:07Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-09T04:52:23Z madpengu joined #lisp 2018-01-09T04:56:00Z rumbler31 quit (Remote host closed the connection) 2018-01-09T05:01:20Z epony joined #lisp 2018-01-09T05:02:37Z epony quit (Max SendQ exceeded) 2018-01-09T05:03:34Z epony joined #lisp 2018-01-09T05:04:08Z nydel quit (Read error: Connection reset by peer) 2018-01-09T05:04:33Z orivej quit (Ping timeout: 248 seconds) 2018-01-09T05:04:36Z pierpa quit (Quit: Page closed) 2018-01-09T05:05:21Z larme quit (Ping timeout: 246 seconds) 2018-01-09T05:11:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T05:11:13Z nowhere_man quit (Ping timeout: 268 seconds) 2018-01-09T05:11:49Z asarch joined #lisp 2018-01-09T05:12:33Z nowhere_man joined #lisp 2018-01-09T05:13:56Z asarch: One very stupid question about CLOSURES. If I have (I will use square brackets just for annotations): (defparameter *fn* (let ((count 0))[1] (setf count [2] (1+ count[3]))))) 2018-01-09T05:14:38Z asarch: If this was C++ code, then: [1] (let ((let::count 0)), [2] (setf set::count, [3] What count is that? 2018-01-09T05:15:07Z asarch: let::count or setf::count? 2018-01-09T05:15:57Z heurist` quit (Ping timeout: 240 seconds) 2018-01-09T05:16:00Z asarch: The clean code would be: (defparameter *fn* (let ((count 0)) (setf count (1+ count))))) 2018-01-09T05:16:03Z heurist`_ joined #lisp 2018-01-09T05:16:26Z pillton: Firstly, closures are functions which close over the lexical environment. Your question has nothing to do with functions. 2018-01-09T05:17:03Z damke_ joined #lisp 2018-01-09T05:17:04Z asarch: Sorry, a typo: (defparameter *fn* (let ((count 0)) #'(lambda() (setf count (1+ count))))) 2018-01-09T05:17:41Z asarch: Ok 2018-01-09T05:17:44Z asarch takes notes... 2018-01-09T05:18:45Z madpengu: pillton: What? 2018-01-09T05:18:57Z asarch: Does it mean that a closed lexical scope "ignores" definition from outside? 2018-01-09T05:19:43Z madpengu: pillton: "closures are functions... your question [about closures] has nothing to do with functions"? How? 2018-01-09T05:20:26Z pillton: clhs lexical closure 2018-01-09T05:20:27Z asarch: From PCL: "However, Common Lisp's lexical variables are lexical variables with a twist, at least compared to the original Algol model." 2018-01-09T05:20:37Z pillton: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_l.htm#lexical_closure 2018-01-09T05:21:07Z asarch: "For instance, you can capture the closure created by the previous expression in a global variable like this..." 2018-01-09T05:21:56Z jmercouris: asarch: A closure is just a function + environment persisted to something 2018-01-09T05:22:06Z asarch: Gotcha! 2018-01-09T05:22:17Z madpengu: asarch: It doesn't ignores the outside scope, only that it "captures" that current ones. In `(let ((count 0)) #'(lambda() (setf count (1+ count))))` the lambda closes over the count. 2018-01-09T05:22:25Z jmercouris: asarch: So I can for example say (lambda () *some-global-var*) and *some-global-var* will be "remembered" by the closure 2018-01-09T05:22:49Z madpengu: So when it is referenced outside the scope of `let`, it still knows about count. 2018-01-09T05:22:53Z orivej joined #lisp 2018-01-09T05:23:15Z jmercouris: that is the environment part, it is saving the environment somehow 2018-01-09T05:23:20Z asarch: If this was C, a closure would be a way to "export" variables outside the scope, right? 2018-01-09T05:23:23Z madpengu: jmercouris: global var is global, closure is about lexical scope. 2018-01-09T05:23:31Z jmercouris: madpengu: Sure, it's just an example 2018-01-09T05:23:35Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-09T05:23:52Z pillton: A closure is a function. Look at the definition in the CLHS. 2018-01-09T05:23:52Z jmercouris: asarch: For example, if I understand you correctly, yes 2018-01-09T05:23:57Z beach: asarch: That's a very strange way of putting it. 2018-01-09T05:24:02Z jmercouris: A closure is not JUST a function 2018-01-09T05:24:07Z jmercouris: it is a function + some state 2018-01-09T05:24:14Z madpengu: jmercouris: Think of this `(defparameter *MyClosure* (let ((insideOfLet 0)) #'(lambda() (setf insideOfLet (1+ insideOfLet)))))`. 2018-01-09T05:24:24Z jmercouris: madpengu: yes, I see the mistake 2018-01-09T05:24:35Z madpengu: There, MyClosure is a reference to the closure which captures the insideOfLet variable. 2018-01-09T05:24:38Z beach: madpengu: What on earth is that? 2018-01-09T05:24:51Z madpengu: beach: Sorry, my-closure. 2018-01-09T05:24:56Z madpengu: and inside-of-let. 2018-01-09T05:24:59Z madpengu: But you get the idea ;) 2018-01-09T05:25:01Z beach: madpengu: Your code does reflect ANY established style. 2018-01-09T05:25:14Z madpengu: I know. Thus the apology. 2018-01-09T05:25:17Z beach: madpengu: If you are going to show code, then at least make an effort. 2018-01-09T05:25:37Z madpengu: `(defparameter *my-closure* (let ((inside-of-let 0)) #'(lambda() (setf inside-of-let (1+ inside-of-let)))))` 2018-01-09T05:25:48Z madpengu: beach: Do you understand what an apology is? 2018-01-09T05:25:53Z beach: madpengu: Put a space between lambda and ( 2018-01-09T05:26:00Z beach: madpengu: Yes, I do. 2018-01-09T05:26:26Z madpengu: `(defparameter *my-closure* (let ((inside-of-let 0)) #'(lambda () (setf inside-of-let (1+ inside-of-let)))))` 2018-01-09T05:26:32Z asarch: In C++: class point {public: void set_x() {int foo = 5;}}; int main() {point p; int x = 1 + p.foo; return 0} ? 2018-01-09T05:26:33Z madpengu: Happy? 2018-01-09T05:26:42Z beach: Sure. 2018-01-09T05:26:47Z madpengu: Cool. 2018-01-09T05:26:55Z beach: asarch: It is best to understand the code without referring to other languages. 2018-01-09T05:26:58Z Kyo91 quit (Remote host closed the connection) 2018-01-09T05:27:56Z madpengu: beach: Why? Any language that helps you understand a concept is helpful, whatever it is Engrish or Stroustrup++ 2018-01-09T05:28:29Z beach: asarch: In your original code, all three occurrences of COUNT refer to the same variable. 2018-01-09T05:28:31Z asarch: I know, I know. But since the language model the things you can understand... 2018-01-09T05:28:51Z asarch: I mean, referring to other languages 2018-01-09T05:28:56Z asarch: Are the same? 2018-01-09T05:29:20Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-09T05:29:31Z nowhere_man joined #lisp 2018-01-09T05:29:39Z beach: Lexical closures do not exist in C, and (unless they added them recently) not in C++ either, so it is hard to understand Common Lisp by using those languages as examples. 2018-01-09T05:29:49Z madpengu: They're added recently. 2018-01-09T05:29:55Z madpengu: C++14, I think. 2018-01-09T05:30:16Z asarch: C++14 was the reason I ran away from C++ :-P 2018-01-09T05:30:35Z madpengu: C++14 has lots of nice stuff that you can do FP. 2018-01-09T05:30:47Z beach: It would be very hard to have full lexical closures in a language without garbage collection. 2018-01-09T05:30:57Z madpengu: Why run away? I am considering going back to C++ because of C++17 2018-01-09T05:30:58Z asarch: Why? 2018-01-09T05:31:15Z asarch: I mean, why without garbage collection? 2018-01-09T05:31:23Z Oladon quit (Quit: Leaving.) 2018-01-09T05:31:40Z jmercouris: How would you decrease the reference count of something in a closure? 2018-01-09T05:32:01Z jmercouris: or rather, how would you know you can release something without a reference count 2018-01-09T05:32:07Z beach: asarch: Because in the general case, the environment that contains the closed-over variable(s) would have to be allocated on the heap. 2018-01-09T05:32:17Z SaganMan joined #lisp 2018-01-09T05:32:36Z beach: asarch: But perhaps it is only allowed to have closures with dynamic extent. 2018-01-09T05:32:37Z larme joined #lisp 2018-01-09T05:33:01Z beach: If so they are not the "full closures" I was referring to. 2018-01-09T05:33:12Z madpengu: asarch: http://wiki.c2.com/?LexicalClosure 2018-01-09T05:33:12Z SaganMan: Hello 2018-01-09T05:33:17Z madpengu: Hi SaganMan 2018-01-09T05:33:25Z orivej quit (Ping timeout: 268 seconds) 2018-01-09T05:33:36Z wigust joined #lisp 2018-01-09T05:33:58Z SaganMan: hello madpengu 2018-01-09T05:35:09Z orivej joined #lisp 2018-01-09T05:35:17Z madpengu: beach: It is lambda closures, so they don't really escape the current scope and so not true "lexical closures" per se. 2018-01-09T05:35:34Z madpengu: "current scope" is probably the wrong term. 2018-01-09T05:35:36Z sjl joined #lisp 2018-01-09T05:35:45Z beach: Yes it is. 2018-01-09T05:35:53Z beach: "Extent" is the term. 2018-01-09T05:36:00Z beach: So they have dynamic extent. 2018-01-09T05:36:06Z madpengu: Right, Extent in terms of stack? 2018-01-09T05:36:15Z beach: Sort of. 2018-01-09T05:36:18Z nika joined #lisp 2018-01-09T05:36:26Z beach: That is, they disappear when the current function invocation exists. 2018-01-09T05:37:00Z beach: clhs glossary/extent 2018-01-09T05:37:00Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_e.htm#extent 2018-01-09T05:37:56Z asarch: Wow! I would like to have a hard-copy of the glossary 2018-01-09T05:38:14Z madpengu: asarch: C-p 2018-01-09T05:38:21Z pillton: The hyperspec is downloadable from Lispworks. 2018-01-09T05:38:27Z pillton: Oh a hard copy. 2018-01-09T05:38:30Z beach: So, I see a picture here. C++ programmers are told that they have closures, and they are told that they have garbage collection. That way, they think they have the full power of a language such as Common Lisp. I feel sorry for them. 2018-01-09T05:38:58Z madpengu: beach: lol. You're a funny person. 2018-01-09T05:39:42Z aeth: C++ programmers *do* have the full power of Common Lisp, or close to it. 2018-01-09T05:39:52Z aeth: I'm not sure if Clasp is the full power of Common Lisp yet. 2018-01-09T05:40:14Z asarch: Assembly programmers actually :-P 2018-01-09T05:40:20Z sjl quit (Ping timeout: 260 seconds) 2018-01-09T05:40:58Z aeth: Proof that you can do everything CL can do in C++: https://github.com/drmeister/clasp 2018-01-09T05:41:01Z aeth: :-p 2018-01-09T05:41:20Z madpengu: aeth: You don't even need that proof. Just show that C++ is turning complete. 2018-01-09T05:41:25Z pillton: aeth: That isn't true. You can't write to a file at compile time. 2018-01-09T05:41:41Z madpengu: That is all you need to have the full power of a computer, and the full power of what can be done with any language that exists and ever will... 2018-01-09T05:42:21Z aeth: madpengu: But Clasp gives a good estimate about how many LoC it actually takes. 2018-01-09T05:42:45Z madpengu: All Heil Alan Turing. 2018-01-09T05:42:51Z asarch: I wonder if you could apply one of the pattern designs from CLOS to Assembly... 2018-01-09T05:43:03Z madpengu: When we are talking about full power, LoC is out of question ;) 2018-01-09T05:43:47Z beach: madpengu: You are new here, right? 2018-01-09T05:43:53Z madpengu: asarch: I think one of the big downsides of lisp and relatives are that they're disjoint from reality. 2018-01-09T05:44:14Z madpengu: The way you reason about problems in lisp is not even remotely similar to what is going on in a modern cpu. 2018-01-09T05:44:46Z madpengu: beach: I am always new, where ever I am, for that I am not a pond water fish, my friend. 2018-01-09T05:45:11Z aeth: madpengu: I reason about problems in Lisp by observing the output of (disassemble #'some-function) 2018-01-09T05:45:52Z madpengu: aeth: You actually do not, you observe the output to reason about how your code works, which only reinforces my point. 2018-01-09T05:46:14Z madpengu: There is a subtle difference, but a very important one nonetheless. 2018-01-09T05:46:19Z jasom: madpengu: this is true of C and C++ as well 2018-01-09T05:46:32Z madpengu: jasom: C++, perhaps, C? Not so much. 2018-01-09T05:47:00Z jasom: madpengu: I've worked on optimizing C compilers, this is totally true 2018-01-09T05:47:19Z madpengu: jasom: I see your point, now compare that to lisp. 2018-01-09T05:47:28Z aeth: madpengu: But I have the luxury of disassembling a function and if it's clearly wrong, I can use one of a dozen equivalent ways of writing it. Alternatively, disassembly is a good way to see if equivalent ways of writing something truly are equivalent. 2018-01-09T05:48:17Z madpengu: The idea that you reason about differently in a higher abstraction is given. C is a different abstraction than ASM (though, I always C as just a glorified crss-platform ASM) so there is ought to be a difference in how you think about a problem. 2018-01-09T05:48:25Z madpengu: But, but, the logic is mostly the same. 2018-01-09T05:48:39Z madpengu: Though when you talk lisp, you're not even talking about the same instructions most of the time. 2018-01-09T05:48:49Z madpengu: It is a whole another cake, a whole another level. 2018-01-09T05:49:01Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T05:49:23Z aeth: madpengu: The problem with C is that the world has moved on from PDP-7 assembly. 2018-01-09T05:49:42Z aeth: Its assumption about how CPUs work are false. 2018-01-09T05:49:43Z red-dot joined #lisp 2018-01-09T05:49:57Z madpengu: aeth: Has it though? The answer is in the R of RISC. 2018-01-09T05:50:05Z madpengu: But yeah, microcode and shit, I get it. 2018-01-09T05:50:38Z aeth: Most software has to deal with this machine: http://ref.x86asm.net/coder64.html 2018-01-09T05:51:05Z jasom: madpengu: assembly language can support multiple return values; arithmetic operations set cpu flags that are not accessible from C; most assemblies have at least one way of dealing with signed arithmetic overflows ... 2018-01-09T05:51:43Z madpengu: jasom: Just because you can't reason in C the way you do in ASM doesn't mean that your reason in C isn't mostly directly translated to ASM. 2018-01-09T05:51:55Z madpengu: That is not true of lisp, IMNSHO. 2018-01-09T05:52:38Z jasom: madpengu: I could show you dozens of examples of C code turning into something very different from what your reasoning would expect 2018-01-09T05:52:39Z aeth: madpengu: C isn't a good fit for parallel things. 2018-01-09T05:52:54Z aeth: madpengu: Our modern machines are parallel in several different ways. 2018-01-09T05:54:12Z borei joined #lisp 2018-01-09T05:54:25Z madpengu: I am not sure if I am terrible at making my point or what is going on. 2018-01-09T05:54:54Z borei: Hi all. Merry Christmas and Happy New Year ! 2018-01-09T05:54:57Z madpengu: But the abstraction between Lisp and CPU is orders of magnitude thicker than C and many C-like languages. 2018-01-09T05:55:01Z jasom: madpengu: consider a 32-bit machine: int wordFromByte(uint8_t x[4]) { return x[0] <<24 | x[1] << 16 | x[2]<< 8 | x[3]; } 2018-01-09T05:55:07Z madpengu: borei: Happy New Year and Berry Christmas. 2018-01-09T05:55:11Z jasom: madpengu: that example has an undefined result on a 32-bit machine 2018-01-09T05:55:32Z madpengu: jasom: Okay, and? 2018-01-09T05:56:09Z aeth: madpengu: Common Lisp's iterations are, for the most part, ultimately just gotos contained within a tagbody. 2018-01-09T05:56:14Z jasom: madpengu: how is that a clean mapping to assembly, where it would have a defined result for the straightforward translation to assembly (and not only defined, but the same on all architectures) 2018-01-09T05:56:34Z rumbler31 joined #lisp 2018-01-09T05:56:35Z borei: seem like setf method is more complecated then i thought initially, and now seems like i missed track to get understanding how does it work 2018-01-09T05:56:54Z madpengu: jasom: But isn't that undefined by standard? If you don't speak proper C, don't expect proper ASM ;) 2018-01-09T05:57:17Z aeth: madpengu: A lot of the complexity in CL are macros over simple things 2018-01-09T05:57:39Z borei: i have two classes generic-matrix and matrix-r, first class is parent for the second one 2018-01-09T05:57:40Z madpengu: Maybe at this point I can't see past the lisp abstraction, but so far, it feels thick, maybe it has to do with it being a managed env. 2018-01-09T05:57:50Z aeth: An optimized pure FP language or a JIT scripting language has a lot more magic abstraction going on 2018-01-09T05:57:58Z borei: i've the following generic function 2018-01-09T05:58:08Z borei: (defgeneric element(matrix i j) 2018-01-09T05:58:08Z borei: (:documentation "Provides access to matrix element, where i - row, j - column")) 2018-01-09T05:58:12Z borei: and method 2018-01-09T05:58:19Z jmercouris: +1 on what jasom says, C doesn't compile in the way you IMAGINE it would, modern day optimizations are intense 2018-01-09T05:58:27Z borei: (defmethod element((matrix matrix-r) i j) 2018-01-09T05:58:27Z borei: (aref (elements matrix) (+ j (* i (cols matrix))))) 2018-01-09T05:58:32Z madpengu: aeth: So yeah, I think that is it, Lisp feels very Scripty because it is Managed. 2018-01-09T05:58:36Z borei: works fine 2018-01-09T05:59:10Z jasom: on several compilers array-referenced loops are faster than pointer-referenced loops because the optimizaer has an easier time of turning it into a decrementer loop 2018-01-09T05:59:19Z jmercouris: borei: Please use a paste service, I'm having trouble reading everything 2018-01-09T05:59:19Z madpengu: jmercouris: Optimizations still do what you expect it to do, maybe in a more efficient way, with lisp, I have no freaking idea what CPU is going to do. Maybe it is just me, maybe it is lisp. 2018-01-09T05:59:32Z jasom: despite the fact that the naive translation of the pointer-referenced loop is faster 2018-01-09T05:59:41Z borei: now i need to do setf for elements (not spamming here) - https://pastebin.com/qE26sKMR 2018-01-09T05:59:42Z jmercouris: madpengu: That's not true, optimizations do NOT do what you'd expect them to do 2018-01-09T05:59:44Z borei: yep yep 2018-01-09T05:59:46Z shaftoe quit (Ping timeout: 264 seconds) 2018-01-09T05:59:46Z rme: It doesn't sound to me like you know CL well enough to make such a judgement or to develop such intuitions. 2018-01-09T06:00:21Z borei: that one doesn't work, and i have some problem with understandig where i'm wrong 2018-01-09T06:00:26Z damke joined #lisp 2018-01-09T06:00:28Z madpengu: jmercouris: What do you mean? if optimizations doesn't do what I expect them to do, then the compiler is broken. 2018-01-09T06:00:34Z aeth: madpengu: I'm more confident in what CL is going to do than what an optimized AOT or JIT compiler is going to do because of how sophisticated some of the optimizations in some languages can get. 2018-01-09T06:00:41Z jasom: madpengu: or your knowledge of C is incomplete 2018-01-09T06:00:47Z jmercouris: madpengu: I mean that they are so complex that you will have trouble understanding them completely and all of their behavior 2018-01-09T06:00:57Z madpengu: You guys seems to know a lot about what I know. 2018-01-09T06:01:01Z rme: But why am I responding to IRC provocateurs, anyway? 2018-01-09T06:01:04Z rme: Good night. 2018-01-09T06:01:14Z jmercouris: Goodnight! 2018-01-09T06:01:17Z aeth: madpengu: It's actually kind of a bad thing that CLs aren't automagically optimizing everything. Naive CL is going to be slow, and fast CL is probably going to look a lot like C, unless you have a lot of custom macros to abstract. 2018-01-09T06:01:22Z madpengu: rme: sleep tight. 2018-01-09T06:01:58Z beach: borei: The new value is always the first parameter. 2018-01-09T06:02:05Z jmercouris: madpengu: If you claim to be the individual that understands all C compiler optimizations, then you are the first I have ever heard of 2018-01-09T06:02:36Z beach: borei: As in (defgeneric (setf element) (new-value matrix i j)) 2018-01-09T06:02:38Z madpengu: aeth: "fast CL is going to look a lot like C". Yes, yes, Brilliant. 2018-01-09T06:02:53Z jmercouris: Anyways, before making an argument we have to establish some axioms, I don't agree that it is an advantage to understand the underlying assembly 2018-01-09T06:03:00Z borei: hi beach: 2018-01-09T06:03:18Z aeth: madpengu: Except C is going to have optimizations that do crazy things and CL that looks a lot like C is going to run like C without all of those crazy optimizations turned on 2018-01-09T06:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T06:03:39Z madpengu: jmercouris: No one claimed that. In fact, if you require an understanding of the mechanics of an abstraction, it is a very bad abstraction. 2018-01-09T06:03:45Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-09T06:03:48Z aeth: SBCL is the fastest CL implementation and I haven't had a WTF moment yet in reading the disassembly. 2018-01-09T06:03:56Z madpengu: jmercouris: But none the less, not being able to reason about the mechanics of an abstraction also makes it hard to grok. 2018-01-09T06:04:10Z jasom: madpengu: I am, in fact, assuming I know more about C than you; it's possible I'm wrong... 2018-01-09T06:04:26Z madpengu: jasom: We will never know. 2018-01-09T06:04:33Z borei: wow that was simple error 2018-01-09T06:04:34Z jmercouris: jasom: Did you see my messages earlier btw? 2018-01-09T06:04:37Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-09T06:04:37Z borei: it works ! 2018-01-09T06:04:43Z beach: Great! 2018-01-09T06:04:44Z jmercouris: borei: Yay :) 2018-01-09T06:04:52Z jasom: jmercouris: about the alpha? 2018-01-09T06:04:58Z jmercouris: jasom: Yep 2018-01-09T06:05:07Z jasom: jmercouris: congrats 2018-01-09T06:05:09Z jmercouris: tomorrow I'll make a thread on /r/programming with new screenshots etc 2018-01-09T06:05:16Z madpengu: I also don't like how every conversation about lisp or most everything about here is a schlong weaving and measuring contest. lisp is great, but it is not the end of it all, people. Chill. 2018-01-09T06:05:19Z jmercouris: jasom: Thank you! 2018-01-09T06:05:43Z jmercouris: jasom: it doesn't persist sessions in between open/close, but it's definitely "usable" whatever that means :D 2018-01-09T06:06:25Z jasom: madpengu: it's not the end of it all. However, that doesn't mean that I agree that the mapping from C to assembly is easy to understand... 2018-01-09T06:06:43Z madpengu: jasom: It is not easier in contrast to lisp? seriously? 2018-01-09T06:06:50Z madpengu: It is not easy in contrast to any managed language? 2018-01-09T06:06:52Z madpengu: Yeah? 2018-01-09T06:06:57Z madpengu: No. 2018-01-09T06:07:03Z madpengu: I am going to just be mad now. 2018-01-09T06:07:10Z madpengu: Oh wait... I am already mad, but you get the idea. 2018-01-09T06:07:15Z borei: btw, i got some first small result with my LISP adventure - implemented multithreaded GLFW-based application (well it's hard to call applcation, but seems like im right direction :-) - sounds strange, some basic lisp aspects still a bit fuzzy. 2018-01-09T06:09:16Z jasom: madpengu: To a certain regard it is a binary question; IMO any significant code in C is non-trivial to reason about the mapping to assembly 2018-01-09T06:09:23Z aeth: madpengu: One thing I've noticed about IRC is that if you say something that someone thinks is incorrect, people will line up to try to correct that statement. 2018-01-09T06:10:23Z aeth: I don't think that's unique to #lisp 2018-01-09T06:11:07Z jmercouris: madpengu: Don't be mad, it's not worth it to be angry. Getting angry is like drinking posion to punish the person you are having a disagreement with 2018-01-09T06:11:32Z aeth: I agree, no reason to be mad. 2018-01-09T06:12:02Z jasom: There is a subset of C for which the mapping to assembly is quite clear, but the same is true of any lisp descended from cmucl 2018-01-09T06:12:24Z jmercouris: aka CCL 2018-01-09T06:12:42Z jasom: jmercouris: ccl is not in the cmucl tree; it comes from OpenMCL 2018-01-09T06:12:46Z jmercouris: Damnit 2018-01-09T06:13:01Z jmercouris: sorry for the misinformation :D 2018-01-09T06:13:09Z aeth: sbcl comes from cmucl 2018-01-09T06:13:36Z jmercouris: With that, I'm off, goodnight 2018-01-09T06:13:43Z aeth: as does scl, Scieneer Common Lisp, a commercial fork of cmucl 2018-01-09T06:14:04Z borei: hmm, seems like i have more questions 2018-01-09T06:15:08Z borei: if i have array of double-float, and im trying to assign integer value to one of the item - im getting error wrong type 2018-01-09T06:15:48Z jasom: borei: that is correct 2018-01-09T06:16:02Z borei: should i do explicit type conversion or there is something more elegant ? 2018-01-09T06:16:14Z jasom: borei: explicit type conversion (you can use float) 2018-01-09T06:16:16Z jasom: clhs float 2018-01-09T06:16:16Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_float.htm 2018-01-09T06:16:39Z jasom: e.g. (float x 1.0d0) 2018-01-09T06:16:59Z pjb joined #lisp 2018-01-09T06:17:57Z jmercouris quit (Ping timeout: 256 seconds) 2018-01-09T06:18:19Z borei: aha, ic 2018-01-09T06:20:59Z madpengu quit (Ping timeout: 260 seconds) 2018-01-09T06:21:23Z asarch: Anyway. Thank you very much guys 2018-01-09T06:21:26Z asarch: Thank you :-) 2018-01-09T06:21:29Z asarch: See you later 2018-01-09T06:21:50Z asarch: Viel Spaẞ! o/ 2018-01-09T06:21:55Z asarch quit (Quit: Leaving) 2018-01-09T06:25:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-09T06:27:17Z oleo quit (Quit: Leaving) 2018-01-09T06:32:59Z frodef quit (Ping timeout: 255 seconds) 2018-01-09T06:36:19Z jarwin joined #lisp 2018-01-09T06:36:23Z jarwin is now known as Jarwin 2018-01-09T06:37:17Z chens joined #lisp 2018-01-09T06:41:36Z smasta quit (Ping timeout: 246 seconds) 2018-01-09T06:44:01Z orivej quit (Ping timeout: 256 seconds) 2018-01-09T06:44:14Z Karl_Dscc joined #lisp 2018-01-09T06:46:55Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-09T06:49:11Z orivej joined #lisp 2018-01-09T06:51:29Z yeticry quit (Ping timeout: 276 seconds) 2018-01-09T06:52:18Z yeticry joined #lisp 2018-01-09T06:57:04Z LocaMocha joined #lisp 2018-01-09T06:57:11Z Jarwin joined #lisp 2018-01-09T06:57:27Z scymtym quit (Ping timeout: 240 seconds) 2018-01-09T06:59:30Z LocaMocha is now known as Sauvin 2018-01-09T07:00:24Z quazimodo joined #lisp 2018-01-09T07:01:06Z rumbler31 joined #lisp 2018-01-09T07:03:27Z fortitude__ quit (Ping timeout: 240 seconds) 2018-01-09T07:06:35Z dec0n joined #lisp 2018-01-09T07:06:58Z aindilis quit (Read error: Connection reset by peer) 2018-01-09T07:08:07Z rumbler31 quit (Ping timeout: 265 seconds) 2018-01-09T07:09:57Z aindilis joined #lisp 2018-01-09T07:12:00Z vlatkoB joined #lisp 2018-01-09T07:15:37Z wxie joined #lisp 2018-01-09T07:18:35Z yeticry quit (Ping timeout: 240 seconds) 2018-01-09T07:18:44Z Karl_Dscc quit (Remote host closed the connection) 2018-01-09T07:20:06Z flamebeard joined #lisp 2018-01-09T07:21:12Z mishoo__ joined #lisp 2018-01-09T07:21:30Z Jarwin quit (Ping timeout: 246 seconds) 2018-01-09T07:23:34Z Jarwin joined #lisp 2018-01-09T07:25:23Z yeticry joined #lisp 2018-01-09T07:31:19Z Jarwin quit (Ping timeout: 265 seconds) 2018-01-09T07:32:15Z orivej quit (Ping timeout: 248 seconds) 2018-01-09T07:32:59Z Jarwin joined #lisp 2018-01-09T07:36:38Z jack_rabbit quit (Ping timeout: 265 seconds) 2018-01-09T07:40:46Z quazimodo quit (Ping timeout: 252 seconds) 2018-01-09T07:41:18Z nika quit 2018-01-09T07:45:20Z logicmoo joined #lisp 2018-01-09T07:45:37Z dmiles quit (Read error: Connection reset by peer) 2018-01-09T07:46:11Z nika joined #lisp 2018-01-09T07:48:59Z jack_rabbit joined #lisp 2018-01-09T07:49:05Z damke_ joined #lisp 2018-01-09T07:50:19Z sellout_ quit (Ping timeout: 256 seconds) 2018-01-09T07:50:39Z Jarwin quit (Ping timeout: 265 seconds) 2018-01-09T07:50:46Z quazimodo joined #lisp 2018-01-09T07:50:50Z bkst quit (Ping timeout: 252 seconds) 2018-01-09T07:51:05Z drewc quit (Ping timeout: 240 seconds) 2018-01-09T07:51:27Z jibanes quit (Ping timeout: 256 seconds) 2018-01-09T07:51:30Z drewc joined #lisp 2018-01-09T07:51:43Z jibanes joined #lisp 2018-01-09T07:51:57Z damke quit (Ping timeout: 264 seconds) 2018-01-09T07:52:35Z bkst joined #lisp 2018-01-09T07:53:16Z damke joined #lisp 2018-01-09T07:55:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T07:55:40Z shka quit (Ping timeout: 260 seconds) 2018-01-09T08:02:23Z zmt00 quit (Read error: Connection reset by peer) 2018-01-09T08:02:51Z zmt00 joined #lisp 2018-01-09T08:02:55Z orivej joined #lisp 2018-01-09T08:03:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-09T08:05:11Z damke_ joined #lisp 2018-01-09T08:07:33Z damke quit (Ping timeout: 264 seconds) 2018-01-09T08:08:01Z xaotuk joined #lisp 2018-01-09T08:09:02Z earl-ducaine quit (Remote host closed the connection) 2018-01-09T08:12:28Z wxie quit (Quit: Bye.) 2018-01-09T08:16:16Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-09T08:17:08Z mishoo_ joined #lisp 2018-01-09T08:18:00Z jfb4 joined #lisp 2018-01-09T08:18:19Z prometheus_falli joined #lisp 2018-01-09T08:19:13Z mishoo__ quit (Ping timeout: 256 seconds) 2018-01-09T08:20:04Z scymtym joined #lisp 2018-01-09T08:21:39Z quazimodo joined #lisp 2018-01-09T08:23:30Z igemnace quit (Read error: Connection reset by peer) 2018-01-09T08:24:40Z igemnace joined #lisp 2018-01-09T08:27:42Z d4ryus1 is now known as d4ryus 2018-01-09T08:28:07Z sellout joined #lisp 2018-01-09T08:32:18Z rumbler31 joined #lisp 2018-01-09T08:36:05Z quazimodo quit (Ping timeout: 265 seconds) 2018-01-09T08:36:14Z schweers joined #lisp 2018-01-09T08:36:47Z rumbler31 quit (Ping timeout: 256 seconds) 2018-01-09T08:37:07Z Murii joined #lisp 2018-01-09T08:37:20Z Cymew joined #lisp 2018-01-09T08:37:40Z mishoo__ joined #lisp 2018-01-09T08:38:51Z chens is now known as Guest83240 2018-01-09T08:38:55Z mishoo_ quit (Ping timeout: 248 seconds) 2018-01-09T08:43:43Z Guest83240 is now known as chens 2018-01-09T08:44:29Z angavrilov joined #lisp 2018-01-09T08:46:21Z chens is now known as Guest55869 2018-01-09T08:46:57Z scottj joined #lisp 2018-01-09T08:47:39Z Guest55869 quit (Remote host closed the connection) 2018-01-09T08:48:43Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T08:50:00Z chens` joined #lisp 2018-01-09T08:51:20Z chens` is now known as chens 2018-01-09T08:53:31Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-09T08:53:52Z schweers left #lisp 2018-01-09T08:53:58Z schweers joined #lisp 2018-01-09T08:57:25Z Fare quit (Quit: Leaving) 2018-01-09T09:00:23Z damke joined #lisp 2018-01-09T09:01:47Z orivej quit (Ping timeout: 252 seconds) 2018-01-09T09:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T09:03:16Z xaotuk quit (Ping timeout: 252 seconds) 2018-01-09T09:09:12Z hhdave joined #lisp 2018-01-09T09:11:42Z sjl joined #lisp 2018-01-09T09:14:30Z kushal quit (Quit: ZNC 1.6.3 - http://znc.in) 2018-01-09T09:15:19Z jdz_ is now known as jdz 2018-01-09T09:17:05Z sjl quit (Ping timeout: 276 seconds) 2018-01-09T09:18:57Z libreman quit (Ping timeout: 248 seconds) 2018-01-09T09:19:26Z kushal joined #lisp 2018-01-09T09:19:50Z kushal is now known as Guest91444 2018-01-09T09:20:49Z Guest91444 quit (Remote host closed the connection) 2018-01-09T09:21:12Z varjag joined #lisp 2018-01-09T09:22:08Z igemnace quit (Read error: Connection reset by peer) 2018-01-09T09:22:33Z kush- joined #lisp 2018-01-09T09:22:38Z creat quit (Ping timeout: 255 seconds) 2018-01-09T09:22:54Z igemnace joined #lisp 2018-01-09T09:25:05Z creat joined #lisp 2018-01-09T09:26:53Z kush- quit (Remote host closed the connection) 2018-01-09T09:27:32Z _cosmonaut_ joined #lisp 2018-01-09T09:29:21Z kush- joined #lisp 2018-01-09T09:29:29Z shifty quit (Ping timeout: 256 seconds) 2018-01-09T09:31:42Z jarwin joined #lisp 2018-01-09T09:31:43Z pfdietz quit (Ping timeout: 248 seconds) 2018-01-09T09:33:11Z rumbler31 joined #lisp 2018-01-09T09:33:11Z libreman joined #lisp 2018-01-09T09:34:02Z jarwin quit (Remote host closed the connection) 2018-01-09T09:34:34Z SuperJen joined #lisp 2018-01-09T09:35:12Z pfdietz joined #lisp 2018-01-09T09:36:16Z orivej joined #lisp 2018-01-09T09:37:48Z JenElizabeth quit (Remote host closed the connection) 2018-01-09T09:38:11Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-09T09:42:11Z orivej quit (Ping timeout: 240 seconds) 2018-01-09T09:43:45Z razzy quit (Remote host closed the connection) 2018-01-09T09:44:13Z peterhil quit (Ping timeout: 256 seconds) 2018-01-09T09:48:45Z razzy joined #lisp 2018-01-09T09:58:23Z peterhil joined #lisp 2018-01-09T10:01:27Z orivej joined #lisp 2018-01-09T10:03:29Z milanj_ joined #lisp 2018-01-09T10:12:25Z lxpz quit (Read error: Connection reset by peer) 2018-01-09T10:12:44Z lxpz joined #lisp 2018-01-09T10:15:49Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T10:18:40Z orivej quit (Ping timeout: 248 seconds) 2018-01-09T10:19:18Z Cymew quit (Remote host closed the connection) 2018-01-09T10:19:53Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T10:23:27Z red-dot joined #lisp 2018-01-09T10:26:09Z nullman quit (Ping timeout: 264 seconds) 2018-01-09T10:27:37Z nullman joined #lisp 2018-01-09T10:29:40Z chens quit (Remote host closed the connection) 2018-01-09T10:34:49Z orivej joined #lisp 2018-01-09T10:34:53Z rumbler31 joined #lisp 2018-01-09T10:36:02Z Cymew joined #lisp 2018-01-09T10:36:37Z NingaLeaf joined #lisp 2018-01-09T10:39:59Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-09T10:40:03Z m00natic joined #lisp 2018-01-09T10:41:20Z NingaLeaf quit (Ping timeout: 260 seconds) 2018-01-09T10:42:20Z damke_ joined #lisp 2018-01-09T10:44:45Z damke quit (Ping timeout: 264 seconds) 2018-01-09T10:55:49Z nika quit 2018-01-09T10:56:32Z larme quit (Ping timeout: 276 seconds) 2018-01-09T10:57:57Z nirved joined #lisp 2018-01-09T10:58:43Z larme joined #lisp 2018-01-09T11:01:02Z Cymew quit (Remote host closed the connection) 2018-01-09T11:01:03Z damke joined #lisp 2018-01-09T11:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T11:04:38Z damke_ joined #lisp 2018-01-09T11:06:23Z sjl joined #lisp 2018-01-09T11:06:24Z terpri quit (Ping timeout: 265 seconds) 2018-01-09T11:06:44Z schweers quit (Remote host closed the connection) 2018-01-09T11:06:57Z damke quit (Ping timeout: 264 seconds) 2018-01-09T11:08:05Z argoneus quit (Quit: No Ping reply in 180 seconds.) 2018-01-09T11:08:18Z reu quit (Ping timeout: 246 seconds) 2018-01-09T11:09:13Z nullman quit (Ping timeout: 256 seconds) 2018-01-09T11:09:23Z argoneus joined #lisp 2018-01-09T11:10:01Z reu joined #lisp 2018-01-09T11:11:21Z sjl quit (Ping timeout: 268 seconds) 2018-01-09T11:24:38Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-09T11:26:01Z vlatkoB_ joined #lisp 2018-01-09T11:27:10Z thinkpad quit (Quit: lawl) 2018-01-09T11:27:40Z jstypo quit (Ping timeout: 265 seconds) 2018-01-09T11:28:48Z prometheus_falli quit (Ping timeout: 272 seconds) 2018-01-09T11:29:41Z vlatkoB quit (Ping timeout: 276 seconds) 2018-01-09T11:31:19Z pagnol joined #lisp 2018-01-09T11:36:21Z rumbler31 joined #lisp 2018-01-09T11:37:51Z Cymew joined #lisp 2018-01-09T11:41:34Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-09T11:41:39Z thinkpad joined #lisp 2018-01-09T11:45:51Z logicmoo: hrrm #'PUTHASH should that be in SYSTEM or EXT ? 2018-01-09T11:47:37Z Xach: yes 2018-01-09T11:47:45Z beach: Heh! 2018-01-09T11:48:23Z beach: Is it just me, or have there been some strange discussions here lately? 2018-01-09T11:50:20Z Xach: They are complex, with imaginary components 2018-01-09T11:50:34Z beach: That explains everything. 2018-01-09T11:50:39Z makomo: does anyone know why (let ((*print-circle* t)) ...) doesn't work but setf-ing it before executing the body of the let does? 2018-01-09T11:50:40Z pilfink joined #lisp 2018-01-09T11:51:00Z beach: makomo: You are doing something wrong. 2018-01-09T11:51:06Z makomo: the example for *print-circle* in clhs also uses a let and it works 2018-01-09T11:51:31Z beach: makomo: Perhaps you are returning a circular structure and you expect it to be printed as if *print-circle* is true? 2018-01-09T11:51:37Z makomo: beach: indeed 2018-01-09T11:51:43Z makomo: oh 2018-01-09T11:51:45Z makomo: hah 2018-01-09T11:51:48Z makomo: that makes sense now 2018-01-09T11:51:54Z beach: makomo: By the time PRINT is called, your binding is undone. 2018-01-09T11:51:54Z makomo: thanks :-) 2018-01-09T11:51:59Z beach: Sure. 2018-01-09T11:51:59Z makomo: yeah 2018-01-09T11:56:13Z Cymew quit (Remote host closed the connection) 2018-01-09T11:57:38Z logicmoo: i guess almost all impls use SYSTEM::PUTHASH for their setf expansions 2018-01-09T11:58:05Z logicmoo: setf expansion of GETHASH* 2018-01-09T11:58:13Z beach: logicmoo: There doesn't have to be an expansion of it. 2018-01-09T11:58:54Z Shinmera: Indeed, could just define a (setf gethash) function 2018-01-09T12:00:15Z logicmoo: ah, yeah 2018-01-09T12:00:19Z Shinmera: beach: It seems like the kinds of people and discussions going on in this channel come in waves and tides, which is why I sometimes give up on it and leave for some time. 2018-01-09T12:00:34Z beach: I completely understand you. 2018-01-09T12:00:42Z quazimodo joined #lisp 2018-01-09T12:02:01Z logicmoo: it might better to just use /ignore on some people 2018-01-09T12:02:14Z logicmoo: (such as me) 2018-01-09T12:02:23Z Shinmera: I don't ignore on principle because it's not context sensitive and won't stop people from responding. 2018-01-09T12:02:45Z ferada joined #lisp 2018-01-09T12:04:51Z beach: I have only used it once, and it was when someone explicitly asked to be ignored so that he or she could continue discussing commercial software in freenode without my complaining about it. 2018-01-09T12:06:05Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T12:06:42Z beach: Actually, that's not true. I have used it on some temporary spammers as well. 2018-01-09T12:07:07Z Shinmera: If I could ignore topics rather than people that'd be something else. 2018-01-09T12:07:40Z beach: That's a very good idea actually. 2018-01-09T12:07:49Z Shinmera: I don't think AI is quite there yet 2018-01-09T12:07:56Z beach: Not quite, no. 2018-01-09T12:08:09Z Shinmera: And even then such a tool sounds rather dangerous 2018-01-09T12:08:20Z Shinmera: I mean, facebook & co are already kinda doing it and the implications are scary 2018-01-09T12:08:28Z beach: Then we could ignore all topics such as "I wish the Common Lisp HyperSpec were different." 2018-01-09T12:09:03Z Shinmera: Or "common lisp is not popular because", "if people did X then...", "cl has to be popular", etc. 2018-01-09T12:09:16Z beach: Yes, yes, and yes! :) 2018-01-09T12:09:51Z _death: "lispers are..." 2018-01-09T12:10:01Z Shinmera: "the lisp community is" 2018-01-09T12:10:27Z beach: "is X a dialect of Lisp?" 2018-01-09T12:10:43Z Shinmera: And the old classic "why is #lisp only for common lisp?" 2018-01-09T12:11:16Z beach: What do you mean? Its name is #lisp, I ought to be able to talk about ANY Lisp dialect here. 2018-01-09T12:12:08Z ferada left #lisp 2018-01-09T12:12:12Z Shinmera: I fear if we keep going with this we'll turn #lisp into a ghost town :^) 2018-01-09T12:12:22Z beach: OK, let's quit. 2018-01-09T12:12:49Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-09T12:12:53Z mingus quit (Remote host closed the connection) 2018-01-09T12:12:53Z Shinmera: I was trying to make a joke about these being the only discussions here, but yeah, enough grumpiness. 2018-01-09T12:14:06Z randomstrangerb joined #lisp 2018-01-09T12:14:34Z markong joined #lisp 2018-01-09T12:14:55Z jameser joined #lisp 2018-01-09T12:16:06Z thijso quit (Remote host closed the connection) 2018-01-09T12:16:08Z jackdaniel: one could wonder, if some (stupid) question is repeated over and over again by independent people could it mean, maybe it is not that stupid but rather there is some environmental misclue 2018-01-09T12:17:14Z beach: I personally think there are very few truly stupid questions. 2018-01-09T12:17:47Z skali joined #lisp 2018-01-09T12:17:47Z skali quit (Client Quit) 2018-01-09T12:17:57Z Cymew joined #lisp 2018-01-09T12:18:48Z red-dot joined #lisp 2018-01-09T12:19:10Z thijso joined #lisp 2018-01-09T12:19:47Z dim: IMO it's mainly people who learn better by talking and don't bother reading docs and trying things out, and come directly here to chat about it, and hopefully build a reasonable mental model of lisp before they try things out 2018-01-09T12:20:08Z thijso quit (Remote host closed the connection) 2018-01-09T12:20:27Z dim: so of course there's a lot of repetition, tutoring new beginners again and again... an eternal september of sorts? 2018-01-09T12:20:36Z thijso joined #lisp 2018-01-09T12:21:09Z Xach: I don't mind helping people through that sort of thing. 2018-01-09T12:21:18Z Xach: Eternally. 2018-01-09T12:21:33Z beach: Me neither, as long as they show a willingness to learn and progress. 2018-01-09T12:21:50Z Xach: I do hate "This is dumb and it shouldn't be this way" and "I'm just trying to finish a class, give me the answers" 2018-01-09T12:21:51Z dim: exactly, me neither, just not every day... (and I don't have proper answers that often anyway) ;-) 2018-01-09T12:23:07Z dim: some 15 years ago I would complete a friend's lisp assignements (he was sharing them on IRC) using librep (the kind-of lisp implementation for sawmill, then sawfish), it was fun times 2018-01-09T12:23:25Z dim: I didn't share the answers, mind you, only some approaches 2018-01-09T12:23:36Z Xach: librep was one of my gateways to CL 2018-01-09T12:23:45Z dim: http://librep.sourceforge.net/ still exists, it seems 2018-01-09T12:25:41Z makomo: i, for one, appreciate that you guys answer (nooby) questions over and over again because even though i have no problem reading formal references/docs, sometimes an actual dialogue with another human being helps in clarifying stuff 2018-01-09T12:26:31Z logicmoo: for myself the very advanced concepts are easy.. but very basic ones are not example of a basic one i have right now i do not think i found covered in books.. "would it be better to define symbols say in My-IMPL-SYS:*COMMANDLINE-ARGS* and have them reexported to EXT" 2018-01-09T12:27:03Z Xach: Perhaps because they don't matter very much. 2018-01-09T12:27:06Z logicmoo: (i mean to say it might not be that simple of a question on but i think it is simple that if i have to ask.. then i really dont need to know) 2018-01-09T12:27:12Z Xach: Just pick one and do it, change it later if it sucks. 2018-01-09T12:27:53Z makomo: don't get trapped in analysis paralysis :D 2018-01-09T12:28:02Z logicmoo: i think that is the problem with most of my questions over the years 2018-01-09T12:28:38Z logicmoo: i am always using irc to avoid/skip out of analysis paralysis 2018-01-09T12:28:43Z makomo: i think it's one of the fundamental problems of programming 2018-01-09T12:30:32Z dim: also CL provides so many ways to do things, sometimes it's hard to guess if you're going to be stuck because of a simple choice 2018-01-09T12:30:37Z makomo: people should be taught early to recognize such situations and how to deal with them 2018-01-09T12:30:58Z dim: I think Xach summary is good: try it and see 2018-01-09T12:30:59Z _death: (random-elt alternatives) 2018-01-09T12:31:16Z _death: for more advanced use, see screamer 2018-01-09T12:31:23Z dim: it's not always very costly to change your mind 2018-01-09T12:31:39Z Xach: screamer! 2018-01-09T12:31:42Z makomo: dim: i agree, that's usually what should be done. just go with it, don't think, do it. 2018-01-09T12:33:26Z schweers joined #lisp 2018-01-09T12:34:21Z logicmoo: ok1.. me makes a package called "SYSEXT" and nicknames it SYSTEM and EXTENSIONS .. while i am compiling all of ECL's ABCL's, and CLISP, and GCL systems to get a big ball of non interpreted functions 2018-01-09T12:35:25Z Kevslinger joined #lisp 2018-01-09T12:35:54Z logicmoo: afterwards I will probly just put it all into system, then see what most of them vote belongs in EXTENSIONS 2018-01-09T12:36:32Z nullman joined #lisp 2018-01-09T12:37:32Z rumbler31 joined #lisp 2018-01-09T12:38:03Z logicmoo: so far each lisp, supplies a different 70% (from the others) that ends up being ideal in my system 2018-01-09T12:41:50Z _death: yay for screamer https://gist.github.com/death/54d5019684e0fe71a9fd9c8933f1fc92 2018-01-09T12:42:28Z logicmoo: the hardest part in all of this is allowing myself is when i have to give up one or more of an individual well thought patterns by an impl 2018-01-09T12:43:08Z rumbler31 quit (Ping timeout: 276 seconds) 2018-01-09T12:43:51Z logicmoo: some define (setf gethash) others never do 2018-01-09T12:44:01Z jackdaniel: I scream, you scream, we all scream for ice cream 2018-01-09T12:48:28Z narendraj9 joined #lisp 2018-01-09T12:48:58Z broccolistem quit (Read error: Connection reset by peer) 2018-01-09T12:49:07Z broccolistem joined #lisp 2018-01-09T12:50:10Z logicmoo: i have to say .. so far ECL is my favorite :) 2018-01-09T12:52:45Z otwieracz: What's the proper way of sending file over REST with Clack/ningle? 2018-01-09T12:52:47Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-09T12:54:01Z randomstrangerb joined #lisp 2018-01-09T12:55:01Z otwieracz: Ok, it handles #P properly. :) 2018-01-09T12:57:49Z antoszka: otwieracz: can you paste a snippet of how you've actually done it? 2018-01-09T12:59:48Z otwieracz: antoszka: ningle handles PATHNAME correctly. So when your route returns PATHNAME, then instead of somehow-sending-it it streams contents of the destination. 2018-01-09T13:00:00Z antoszka: ok 2018-01-09T13:00:22Z otwieracz: (or 404) 2018-01-09T13:02:49Z JuanDaugherty joined #lisp 2018-01-09T13:09:37Z DeadTrickster joined #lisp 2018-01-09T13:10:54Z malice joined #lisp 2018-01-09T13:13:01Z reverse_light quit (Remote host closed the connection) 2018-01-09T13:14:50Z gtuser joined #lisp 2018-01-09T13:17:37Z Cymew quit 2018-01-09T13:29:55Z Xach: /win 3 2018-01-09T13:33:11Z _cosmonaut_ quit (Ping timeout: 276 seconds) 2018-01-09T13:34:23Z JuanDaugherty: hmm? 2018-01-09T13:34:49Z JuanDaugherty: (assume wrong window) 2018-01-09T13:36:36Z jstypo joined #lisp 2018-01-09T13:38:35Z pagnol quit (Read error: No route to host) 2018-01-09T13:39:08Z rumbler31 joined #lisp 2018-01-09T13:39:11Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-09T13:40:15Z dddddd joined #lisp 2018-01-09T13:40:27Z randomstrangerb joined #lisp 2018-01-09T13:42:28Z kush- is now known as kushal 2018-01-09T13:42:35Z kushal quit (Changing host) 2018-01-09T13:42:35Z kushal joined #lisp 2018-01-09T13:43:48Z gtuser: leading space 2018-01-09T13:44:01Z makomo quit (Ping timeout: 248 seconds) 2018-01-09T13:44:03Z rumbler31 quit (Ping timeout: 246 seconds) 2018-01-09T13:44:52Z gtuser: in #python, that's a syntax error 2018-01-09T13:48:49Z wxie joined #lisp 2018-01-09T13:51:29Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-09T13:52:40Z Tobbi joined #lisp 2018-01-09T13:56:00Z wxie quit (Quit: Bye.) 2018-01-09T13:56:01Z sjl joined #lisp 2018-01-09T13:57:24Z pilfink joined #lisp 2018-01-09T13:57:39Z rumbler31 joined #lisp 2018-01-09T14:02:00Z madpengu joined #lisp 2018-01-09T14:02:09Z rumbler31 quit (Ping timeout: 264 seconds) 2018-01-09T14:04:57Z Cthulhux` quit (Quit: ne praeteriverit priusquam obesa cantaverit) 2018-01-09T14:06:13Z makomo joined #lisp 2018-01-09T14:06:57Z jstypo quit (Ping timeout: 240 seconds) 2018-01-09T14:12:29Z Bike joined #lisp 2018-01-09T14:13:27Z nullman quit (Ping timeout: 265 seconds) 2018-01-09T14:13:58Z nullman joined #lisp 2018-01-09T14:16:58Z gravicappa joined #lisp 2018-01-09T14:18:20Z orivej quit (Ping timeout: 260 seconds) 2018-01-09T14:18:34Z damke joined #lisp 2018-01-09T14:19:06Z narendraj9 quit (Read error: Connection reset by peer) 2018-01-09T14:19:21Z madpengu quit (Quit: Page closed) 2018-01-09T14:21:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T14:22:37Z damke_ joined #lisp 2018-01-09T14:23:01Z orivej joined #lisp 2018-01-09T14:24:21Z damke quit (Ping timeout: 264 seconds) 2018-01-09T14:27:05Z jstypo joined #lisp 2018-01-09T14:29:23Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T14:31:20Z yeticry quit (Quit: leaving) 2018-01-09T14:32:00Z yeticry joined #lisp 2018-01-09T14:39:55Z oleo joined #lisp 2018-01-09T14:42:31Z warweasle joined #lisp 2018-01-09T14:44:49Z nika joined #lisp 2018-01-09T14:47:10Z Tobbi quit (Remote host closed the connection) 2018-01-09T14:47:40Z Tobbi joined #lisp 2018-01-09T14:49:15Z kami joined #lisp 2018-01-09T14:49:17Z kami: Hello 2018-01-09T14:49:49Z epony quit (Read error: Connection reset by peer) 2018-01-09T14:50:04Z damke joined #lisp 2018-01-09T14:50:13Z warweasle: kami: Hi 2018-01-09T14:50:37Z epony joined #lisp 2018-01-09T14:53:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T14:53:29Z FreeBirdLjj joined #lisp 2018-01-09T14:54:03Z epony quit (Client Quit) 2018-01-09T14:54:16Z rippa joined #lisp 2018-01-09T14:54:25Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-09T14:55:23Z crsc joined #lisp 2018-01-09T14:55:47Z crsc: hi 2018-01-09T14:57:08Z red-dot joined #lisp 2018-01-09T14:58:01Z beach: Hello crsc. 2018-01-09T14:58:06Z phoe: #' car 2018-01-09T14:58:18Z phoe: I was slightly surprised that this works 2018-01-09T14:58:50Z beach: The recursive call to READ skips whitespace. 2018-01-09T14:59:28Z rumbler31 joined #lisp 2018-01-09T15:00:03Z beach: crsc: Are you new here? I don't recognize your nick. 2018-01-09T15:00:30Z crsc: beach: Yes, I'm new here and new to Common Lisp. 2018-01-09T15:00:40Z beach: Welcome then. 2018-01-09T15:00:46Z crsc: Thank you. :-) 2018-01-09T15:01:08Z Bike: phoe: #' is basically defined to return `(function ,(read)), so yeah, whitespace is no prob. 2018-01-09T15:02:04Z phoe: Bike: yes, I was just, "wait, doesn't it... oh, oh, wait" 2018-01-09T15:02:24Z phoe: crsc: welcome! got your first day kit yet? 2018-01-09T15:03:16Z phoe: crsc: grab it here, https://portacle.github.io/ 2018-01-09T15:03:34Z crsc: phoe: The second day for me. Okay, I'll take a look on that. 2018-01-09T15:05:05Z phoe: crsc: and here's the other part, http://www.gigamonkeys.com/book/ 2018-01-09T15:05:25Z crsc: phoe: I use vi more than 20 years now and it's hard to learn emacs. But I'll give it a try. 2018-01-09T15:05:51Z phoe: crsc: oh, in this case 2018-01-09T15:05:51Z crsc: Yes, I know the second link. Thanks. 2018-01-09T15:06:17Z phoe: you might want to check https://spacemacs.org out since it's based on emacs's evil mode. 2018-01-09T15:06:30Z crsc: Thanks again. 2018-01-09T15:06:31Z phoe: or, alternatively, set up an environment with vim and slimv. 2018-01-09T15:06:40Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-09T15:07:07Z phoe: portacle has an upside of being self-contained, but if you have 20 years of vim experience, then I'm pretty sure you can hack your own environment up pretty quickly. (: 2018-01-09T15:07:47Z trittweiler joined #lisp 2018-01-09T15:07:59Z phoe: also, #lisp is a good place for Lisp questions but #clnoobs has been created specifically for CL learners. 2018-01-09T15:08:12Z crsc: Yeah, definitely. :-) 2018-01-09T15:09:25Z Shinmera: I mean you can install evil to Portacle easy enough 2018-01-09T15:10:13Z warweasle: I'm still surprised CL doesn't have an editor written in CL. 2018-01-09T15:10:22Z Shinmera: It does 2018-01-09T15:10:26Z Shinmera: Multiple ones, even 2018-01-09T15:10:37Z warweasle: Shinmera: ? 2018-01-09T15:10:38Z Shinmera: Problem is they're all unfinished and kinda suck compared to Emacs. 2018-01-09T15:10:54Z Shinmera: warweasle: See Hemlock, Climacs, etc. 2018-01-09T15:11:03Z warweasle: Oh. Right, even I tried writing one. In 3D! 2018-01-09T15:11:03Z FreeBirdLjj joined #lisp 2018-01-09T15:11:46Z |3b| quit (Ping timeout: 252 seconds) 2018-01-09T15:15:13Z Xach: I liked Hemlock. 2018-01-09T15:15:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-09T15:15:37Z Xach: Uncanny valley was a problem for me though. 2018-01-09T15:16:13Z Bike: i'm hoping this means hemlock has a "clippy" that's a _nearly_ photorealistic human 2018-01-09T15:16:45Z Xach: More like it's close enough to emacs that the little differences are really distracting and offputting. 2018-01-09T15:17:03Z Xach: also a problem: crashing 2018-01-09T15:17:11Z Xach: haven't tried again in many years, though 2018-01-09T15:17:22Z LiamH joined #lisp 2018-01-09T15:18:22Z SaganMan joined #lisp 2018-01-09T15:22:28Z jdz: More users would definitely have helped with ironing out the crashes. 2018-01-09T15:22:41Z jdz: What we have here is a chicken and egg problem. 2018-01-09T15:23:48Z warweasle: I wanted a mixture of blender and emacs. It was too large a project for one person. 2018-01-09T15:23:54Z EvW joined #lisp 2018-01-09T15:24:36Z warweasle: Too large for me anyway. 2018-01-09T15:25:16Z FreeBirdLjj joined #lisp 2018-01-09T15:25:46Z jdz: Too many yaks to shave. 2018-01-09T15:31:25Z papachan joined #lisp 2018-01-09T15:32:56Z makomo: crsc: i can also recommend spacemacs, it's what i'm using :-) 2018-01-09T15:33:40Z crsc: makomo: Yes it looks very fine. I'll give it a try. 2018-01-09T15:33:46Z makomo: are there any other CL channels apart from #lisp, #lispgames and #clnoobs? 2018-01-09T15:34:36Z pjb: makomo: why don't you read cliki? 2018-01-09T15:34:40Z pjb: http://cliki.net/IRC 2018-01-09T15:34:45Z beach: makomo: #clasp is about the Clasp implementation of Common Lisp and #sbcl about SBCL. 2018-01-09T15:35:02Z beach: makomo: #clim is about the Common Lisp Interface Manager. 2018-01-09T15:35:04Z makomo: beach: i've been in #clasp since i've been in #lisp. in fact, it's what drove me to start getting into CL more :-) 2018-01-09T15:35:22Z makomo: i saw drmeister's talk on youtube once and was amazed 2018-01-09T15:35:39Z makomo: since i come from C++ and got intrigued by lisp, the combination seemed awesome to me 2018-01-09T15:35:40Z beach: I see. 2018-01-09T15:35:54Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-09T15:36:11Z makomo: it's the same kind of feeling i got when i first found spacemacs i think 2018-01-09T15:36:31Z makomo: i.e. the combination of emacs and vim is what's the best, not one or the other :-) 2018-01-09T15:36:51Z makomo: same with C++/Common Lisp, although they're pretty different languages so the comparison doesn't transfer that well 2018-01-09T15:37:44Z beach: The two have very different features and very different semantics. 2018-01-09T15:37:59Z crsc: makomo: https://github.com/l04m33/vlime This looks nice at a first view. 2018-01-09T15:38:22Z makomo: crsc: i was going to recommend that you look into those too, but forgot 2018-01-09T15:38:53Z crsc: :-) 2018-01-09T15:39:25Z makomo: however, spacemacs comes with full vim keybinds set up for you (which is why i started using it myself) ;-) 2018-01-09T15:39:57Z makomo: so it won't be that hard to learn at all 2018-01-09T15:42:28Z FreeBirdLjj quit 2018-01-09T15:44:10Z igemnace quit (Read error: Connection reset by peer) 2018-01-09T15:45:21Z igemnace joined #lisp 2018-01-09T15:46:32Z sjl: crsc: I use vlime. it's pretty good. 2018-01-09T15:47:28Z crsc: sjl: Nice to know. I'll test it later at home on my PC. 2018-01-09T15:49:08Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-09T15:50:10Z flip214: sjl: did you hear anything from the vlime author since november? 2018-01-09T15:50:34Z sjl: flip214: no, but I haven't really been paying attention. I've been traveling a lot over the holidays. 2018-01-09T15:50:36Z flip214: I had a few email exchanges re bugs and features, but got no replies for ~.52 months. 2018-01-09T15:50:44Z flip214: sorry, 2.5 months 2018-01-09T15:51:07Z flip214: I'm afraid that something bad happened... perhaps by drawing attention via the emails 2018-01-09T15:54:37Z sjl: I don't know. I haven't heard anything 2018-01-09T15:54:50Z flip214: hmmm 2018-01-09T15:54:51Z flip214: that's bad 2018-01-09T15:55:28Z sjl: I didn't have a lot of communication with them though. Never outside of GH issues. 2018-01-09T15:55:36Z sjl: So me not hearing anything isn't a very important data point. 2018-01-09T15:55:42Z flip214: the github contribution picture at https://github.com/l04m33 breaks off at the same time 2018-01-09T15:56:58Z sjl: It's possible they're just taking a break from computer work for a while. I've done it for a couple of months at a time in the past. 2018-01-09T15:57:12Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T15:57:27Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-09T15:57:59Z red-dot joined #lisp 2018-01-09T15:58:42Z randomstrangerb joined #lisp 2018-01-09T16:00:06Z dec0n quit (Read error: Connection reset by peer) 2018-01-09T16:04:54Z Jen joined #lisp 2018-01-09T16:04:58Z eivarv joined #lisp 2018-01-09T16:08:31Z SuperJen quit (Ping timeout: 248 seconds) 2018-01-09T16:16:04Z trittweiler quit (Read error: Connection reset by peer) 2018-01-09T16:16:13Z trittweiler joined #lisp 2018-01-09T16:19:19Z fortitude quit (Quit: Leaving) 2018-01-09T16:23:27Z kami quit (Ping timeout: 240 seconds) 2018-01-09T16:24:34Z flamebeard quit (Quit: Leaving) 2018-01-09T16:26:42Z FreeBirdLjj joined #lisp 2018-01-09T16:27:23Z turkja quit (Ping timeout: 276 seconds) 2018-01-09T16:30:05Z hexfive joined #lisp 2018-01-09T16:30:57Z trittweiler quit (Ping timeout: 240 seconds) 2018-01-09T16:31:29Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T16:44:10Z nullman quit (Ping timeout: 260 seconds) 2018-01-09T16:45:05Z terpri joined #lisp 2018-01-09T16:45:46Z nullman joined #lisp 2018-01-09T16:47:56Z fortitude__ joined #lisp 2018-01-09T16:48:01Z asarch joined #lisp 2018-01-09T16:48:27Z test1600 joined #lisp 2018-01-09T16:48:30Z asarch: Good morning! 2018-01-09T16:48:45Z beach: Hello asarch. 2018-01-09T16:50:22Z asarch: I couldn't sleep last night, everything was in my head was CLOSURE. 2018-01-09T16:50:40Z beach: Sorry to hear that. 2018-01-09T16:51:34Z asarch: But I finally could understand the concept. From the point of view of JavaScript: "A closure is created when a function inside another function gets stored outside the outers function's scope while retaining references to a variable from the outer function". 2018-01-09T16:52:26Z etimmons left #lisp 2018-01-09T16:52:50Z asarch: So, if real life could apply closures, a closure would be like a photograph. Even when the people in the photograph have gone, you can "reference" to them by the picture 2018-01-09T16:54:19Z beach: Maybe you should write a book on programming, containing such explanations. 2018-01-09T16:54:20Z asarch: So, my next question is, why would you need closure? You could easy store the return value from a function in a variable 2018-01-09T16:55:26Z nullman quit (Remote host closed the connection) 2018-01-09T16:55:37Z nullman joined #lisp 2018-01-09T16:56:18Z beach: asarch: Consider this one: (let ((x 0)) (lambda () (incf x))) 2018-01-09T16:56:38Z asarch: Ok 2018-01-09T16:56:46Z asarch gets his pen... 2018-01-09T16:56:47Z beach: asarch: When that form is evaluated, it returns a function of zero arguments, that, whenever called, returns a larger value. 2018-01-09T16:57:26Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-09T16:57:30Z beach: So the function/closure contains state in its environment, in this case, the value of the variable X. 2018-01-09T16:59:31Z asarch: Ok 2018-01-09T16:59:49Z cgay: portacle...neat 2018-01-09T16:59:59Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T17:00:16Z asarch: # 2018-01-09T17:00:37Z beach: asarch: Yes, now do (funcall ) several times. 2018-01-09T17:00:42Z pjb: asarch: closures are equivalent to objects. 2018-01-09T17:00:54Z pjb: asarch: this is the encapsulation of some data with some code. 2018-01-09T17:01:02Z hexfive quit (Read error: Connection reset by peer) 2018-01-09T17:01:12Z beach: If you are not using SLIME, start with (defparameter *f* (let ((x 0)) (lambda () (incf x)))). 2018-01-09T17:01:22Z beach: asarch: Then do (funcall *f*) several times. 2018-01-09T17:01:24Z pjb: You can call the code, the code can process the data, but you cannot touch the data directly from outside. 2018-01-09T17:01:38Z asarch: I follow your advice and I use SBCL 2018-01-09T17:01:55Z Xach: Here is an involved use of closures 2018-01-09T17:01:57Z Xach: http://xach.livejournal.com/131456.html 2018-01-09T17:02:00Z domovod: https://github.com/google/lisp-koans/blob/master/koans/functions.lsp 2018-01-09T17:02:12Z Xach reads about sbcl 1.0 and an iBook g4 and gets a misty feeling 2018-01-09T17:02:13Z hexfive joined #lisp 2018-01-09T17:02:37Z fortitude__ quit (Ping timeout: 265 seconds) 2018-01-09T17:03:05Z cgay reads russian ads on xach.livejournal.com 2018-01-09T17:03:21Z Xach: Sorry. I need to migrate all that stuff, but it feels like it might be a lot of work :( 2018-01-09T17:03:58Z pjb: asarch: so the CL operator FUNCTION is the basic operator to create objects in CL. 2018-01-09T17:04:15Z domovod: Russian advertising does not exist :-) 2018-01-09T17:04:24Z cgay: Actually it completely blocks the first paragraph or so. :( 2018-01-09T17:04:33Z nullman quit (Ping timeout: 248 seconds) 2018-01-09T17:05:05Z asarch: (dotimes (x 10) (funcall *f*)) 2018-01-09T17:05:32Z nullman joined #lisp 2018-01-09T17:05:55Z beach: asarch: *f* does not print anything, so you need to do something like (loop repeat 10 collect (funcall *f*)) 2018-01-09T17:08:05Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-09T17:08:24Z nowhere_man joined #lisp 2018-01-09T17:08:37Z pjb: (let ((x 0)) (lambda () (incf x))) is equivalent to (defclass anonymous ((x :initform 0 :accessor x))) (defmethod m ((o anonymous)) (incf (x o))) (make-instance 'anonymous) 2018-01-09T17:09:00Z beach: I don't think that is going to help asarch at this point though. 2018-01-09T17:09:28Z pjb: How would (defparameter *f* (make-instance 'anonymous)) (dolist (i 10) (m *f*)) print anything? 2018-01-09T17:09:33Z asarch: Don't worry, I'm saving it for later 2018-01-09T17:09:52Z asarch takes notes of everything 2018-01-09T17:10:38Z EvW quit (Ping timeout: 255 seconds) 2018-01-09T17:10:45Z stee_3 quit (Ping timeout: 256 seconds) 2018-01-09T17:11:24Z stee joined #lisp 2018-01-09T17:11:44Z _death: could inspect the closure.. C-c I *f* RET 2018-01-09T17:14:10Z asarch: # 2018-01-09T17:15:22Z beach: asarch: Did you try the LOOP I suggested? 2018-01-09T17:15:30Z junxit joined #lisp 2018-01-09T17:16:13Z pjb: or: (let (r) (dotimes (i 10 r) (push (funcall *f*) r))) #| --> (10 9 8 7 6 5 4 3 2 1) |# 2018-01-09T17:17:39Z asarch: beach, of course!: (12 13 14 15 16 17 18 19 20 21) 2018-01-09T17:18:09Z beach: asarch: So you see that the closure contains state. That's what closures are for. 2018-01-09T17:20:37Z hexfive quit (Remote host closed the connection) 2018-01-09T17:20:57Z stee is now known as stee_3 2018-01-09T17:22:41Z attila_lendvai joined #lisp 2018-01-09T17:22:41Z attila_lendvai quit (Changing host) 2018-01-09T17:22:41Z attila_lendvai joined #lisp 2018-01-09T17:22:43Z attila_lendvai quit (Client Quit) 2018-01-09T17:23:54Z stee_3 quit (Quit: stee_3) 2018-01-09T17:24:22Z nika quit (Quit: Leaving...) 2018-01-09T17:27:15Z al-damiri joined #lisp 2018-01-09T17:29:12Z Karl_Dscc joined #lisp 2018-01-09T17:30:00Z beach: asarch: Are you ready for another example? 2018-01-09T17:30:26Z red-dot joined #lisp 2018-01-09T17:30:34Z asarch: I see 2018-01-09T17:30:40Z asarch: Of course! 2018-01-09T17:30:45Z jmercouris joined #lisp 2018-01-09T17:30:50Z asarch: I'm always ready 2018-01-09T17:31:26Z beach: OK, let's say we have some example list like (defparameter *l* (loop for i from 0 below 10 collect i)) 2018-01-09T17:31:35Z beach: It contains integers from 0 to 9. 2018-01-09T17:32:13Z asarch: Ok 2018-01-09T17:32:26Z beach: We can use REMOVE-IF-NOT to keep only elements that correspond to a certain predicate. For instance, we can say (remove-if-not #'oddp *l*) 2018-01-09T17:32:48Z beach: It will keep all the elements. 2018-01-09T17:32:51Z beach: that are odd. 2018-01-09T17:33:10Z beach: Now suppose we want to keep all the elements that are greater than (say) 3. 2018-01-09T17:33:38Z beach: We can do: (remove-if-not (lambda (x) (> x 3)) *l*) 2018-01-09T17:33:41Z beach: Right? 2018-01-09T17:34:41Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-09T17:34:50Z jmercouris: Hey everyone, I just released the alpha GTK port of nEXT, if you like my project, please upvote it: https://www.reddit.com/r/programming/comments/7p8nv0/next_browser_a_powerful_extensible_lisp_browser/ 2018-01-09T17:34:55Z jmercouris: Thanks for your time! 2018-01-09T17:35:15Z asarch: Right 2018-01-09T17:35:19Z beach: asarch: But now we want to generalize this so that we want a function F that takes an integer N and a list L and that keeps all the elements of L that are greater than N. 2018-01-09T17:35:30Z asarch: Ok 2018-01-09T17:35:49Z beach: asarch: We can do it like this: (defun f (n l) (remove-if-not (lambda (x) (> x n)) l)) 2018-01-09T17:36:19Z beach: asarch: So that (f 3 *l*) gives the same result as before. 2018-01-09T17:36:22Z beach: asarch: Right? 2018-01-09T17:37:16Z asarch: Right 2018-01-09T17:37:18Z beach: asarch: Here, (lambda (x) (> x n)) is a closure, because it refers to the lexical variable n in a surrounding function. 2018-01-09T17:37:19Z hexfive joined #lisp 2018-01-09T17:37:49Z JonSmith quit (Remote host closed the connection) 2018-01-09T17:39:05Z hhdave quit (Ping timeout: 256 seconds) 2018-01-09T17:39:07Z karswell quit (Read error: No route to host) 2018-01-09T17:39:57Z asarch: I see 2018-01-09T17:40:09Z beach: asarch: Here we use the closure to refer to an implicit parameter. The function that we pass to remove-if-not must take a single parameter, but we need two parameters, both the X that receives elements from the list and N which is what we passed to F. The solution is to create a closure with a single parameter X that refers to a closed-over variable N. 2018-01-09T17:41:36Z asarch: Wow! That's why Lisp actually changes the way you do things 2018-01-09T17:41:38Z _death: furthermore you can create a predicate-building function.. (defun greater-than (n) (lambda (x) (> x n))) this makes it possible to write (remove-if-not (greater-than 3) list) 2018-01-09T17:42:01Z attila_lendvai11 joined #lisp 2018-01-09T17:42:29Z asarch: In the chapter 3 of the PCL I see this way of do things 2018-01-09T17:42:59Z asarch: The way you generalize functions 2018-01-09T17:44:09Z phoe: (remove-if-not (curry #'< 3) list) 2018-01-09T17:44:27Z phoe: ;; that's the next step, after understanding closures 2018-01-09T17:44:36Z beach: asarch: As _death points out, with this style, you obtain a collection of very small, very general, functions that you can then compose arbitrarily. 2018-01-09T17:45:00Z _death: phoe: the next step would be (remove-if (complement (greater-than 3)) list) ;) 2018-01-09T17:45:35Z markong quit (Ping timeout: 248 seconds) 2018-01-09T17:46:03Z attila_lendvai42 joined #lisp 2018-01-09T17:46:13Z beach: asarch: In a language without closures, you can't do this, because you would have to alter the signature (the number of parameters), and doing so would break the abstraction barriers, so the code is no longer modular. 2018-01-09T17:46:34Z attila_lendvai11 quit (Quit: Page closed) 2018-01-09T17:46:47Z pjb: You can do it trivially in object oriented programming languages, trivially, but with a lot of boilerplate. 2018-01-09T17:47:24Z dlowe: sure, iirc, closures in java 8 creates an anonymous class with the free variables as stored members. 2018-01-09T17:47:36Z pjb: But then, given the above equivalence, "language without closures" excludes OOP languages. 2018-01-09T17:48:20Z asarch: Yeah, since this concept actually doesn't exist in other language, it would take you more more time to do simply things 2018-01-09T17:48:21Z _death: in the past a limited form of "closures" was supported ("downward funargs").. but nowadays there's usually no need to distinguish function from closure (yes, there are exceptions when talking about performance, serialization, etc.) 2018-01-09T17:49:03Z margeas joined #lisp 2018-01-09T17:49:14Z makomo: jmercouris: very interesting project, nice! :-) 2018-01-09T17:49:54Z makomo: what would be a good way to capture the result of a cond clause's test-form? 2018-01-09T17:50:01Z makomo: something like the anaphoric "it" 2018-01-09T17:50:05Z m00natic quit (Remote host closed the connection) 2018-01-09T17:50:11Z makomo: what's the usual way such a thing is done? 2018-01-09T17:50:35Z pjb: I use let. 2018-01-09T17:50:53Z dlowe: well, there's acond to answer your question directly 2018-01-09T17:51:11Z _death: makomo: an old idiom is ((setq the-result (the-test)) (use the-result)) 2018-01-09T17:51:19Z pjb: (cond ((let ((x (predicate))) (when x (do-something x) t))) … 2018-01-09T17:51:21Z makomo: yeah, but it isn't part of the standard right :^( 2018-01-09T17:51:25Z dlowe: but I've used (let (foo) (cond ((> (setf foo (calculation)) 5) ...))) 2018-01-09T17:52:04Z makomo: pjb: oh, so you (ab)use the test-form to do the resulting computation 2018-01-09T17:52:10Z pjb: yes. 2018-01-09T17:52:17Z pjb: The alternative being to use setf. 2018-01-09T17:52:58Z makomo: i'll go with the setf i guess 2018-01-09T17:53:03Z jmercouris: makomo: Thank you! 2018-01-09T17:53:20Z jmercouris: makomo: It's been around a year of work, so not too long, but also not a trivial investment :D 2018-01-09T17:53:57Z phoe: to be absolutely honest 2018-01-09T17:54:02Z makomo: jmercouris: i've seen it a few weeks ago too but forgot you were the author. it was influenced by emacs i see, which is very neat 2018-01-09T17:54:12Z phoe: (let ((value (predicate))) (cond (predicate ...) ...)) 2018-01-09T17:54:14Z phoe: is what I do 2018-01-09T17:54:14Z makomo: i was thinking of a general framework for building emacs-like applications from time to time 2018-01-09T17:54:23Z jmercouris: makomo: Yeah, I try not to bring all the baggage of emacs though, but trying to keep it close enough 2018-01-09T17:54:31Z phoe: it separates the actual computation from the branching, which seems cleaner and more beautiful to me. 2018-01-09T17:54:37Z phoe: uh 2018-01-09T17:54:37Z jmercouris: makomo: lol, this could be the new "electron" for emacs applications :D 2018-01-09T17:54:40Z jmercouris: ah that's terrible :D 2018-01-09T17:54:42Z phoe: (cond (value ...) ...) I mean 2018-01-09T17:54:52Z makomo: i.e. the standard "you have a minibuffer, you can run commands, you have keybinds and the lisp image of the process at your hands!" 2018-01-09T17:54:56Z makomo: jmercouris: haha, exactly! :D 2018-01-09T17:55:12Z beach: That is precisely what ESA does. 2018-01-09T17:55:27Z dlowe: phoe: what about when you want to do the computation only on one branch, and you don't really want to nest conditions 2018-01-09T17:55:28Z beach: ESA means Emacs-Style Application, and it's part of McCLIM. 2018-01-09T17:55:42Z makomo: beach: oh wow 2018-01-09T17:56:13Z shka joined #lisp 2018-01-09T17:56:58Z makomo: jmercouris: nEXT uses gtk from what i've seen? 2018-01-09T17:57:04Z makomo: and heard in this channel 2018-01-09T17:57:34Z dlowe: phoe: a classic example is (cond ((string= input "") ... no input ...) ((null (setf num (parse-integer input :junk-allowed t))) ... bad input ..) (t use num for stuff) 2018-01-09T17:58:14Z jmercouris: makomo: Correct 2018-01-09T17:58:24Z jmercouris: makomo: Though, not strictly GTK, it also uses Cocoa 2018-01-09T17:58:39Z jmercouris: It can be ported to use just about any GUI framework as there is an API between the core and GUI that is extremely simple 2018-01-09T17:58:45Z phoe: dlowe: can you pastebin this for me? I think I need to read it formatted to understand it 2018-01-09T17:58:51Z jmercouris: the GTK port took me just 2 weeks, and most of that time was because I don't know GTK 2018-01-09T17:58:53Z dlowe: phoe: sure :) 2018-01-09T17:59:01Z makomo: jmercouris: oh nice 2018-01-09T17:59:29Z Xach: fiddlerwoaroof_: i don't use brew :~( 2018-01-09T17:59:42Z asarch: Wow! Thank you Masters 2018-01-09T17:59:46Z asarch: Thank you very much :-) 2018-01-09T17:59:50Z markong joined #lisp 2018-01-09T18:00:00Z margeas quit (Ping timeout: 260 seconds) 2018-01-09T18:00:32Z dlowe: omg, no more lisppaste 2018-01-09T18:00:44Z dlowe: pour one out 2018-01-09T18:01:18Z jmercouris: dlowe: lol 2018-01-09T18:01:20Z Xach: I don't really miss it like I thought I would. 2018-01-09T18:01:28Z Xach: Gist is pretty easy, and it seems like there are plenty of others. 2018-01-09T18:01:33Z asarch: BTW, SBCL has changed its version: SBCL 1.4.3, released December 29, 2017 2018-01-09T18:01:35Z jmercouris: I have gist integrated into emacs 2018-01-09T18:01:51Z Xach: asarch: o happy day! 2018-01-09T18:01:52Z dlowe: phoe: https://pastebin.com/tWtVNXPR 2018-01-09T18:02:05Z jmercouris: really good: https://github.com/defunkt/gist.el 2018-01-09T18:02:23Z jmercouris: who are the developers of SBCL? 2018-01-09T18:02:27Z jmercouris: are they on this channel? 2018-01-09T18:02:38Z phoe: jmercouris: #sbcl 2018-01-09T18:02:56Z dlowe: https://github.com/sbcl/sbcl/blob/master/CREDITS 2018-01-09T18:03:47Z jmercouris: Ah, okay 2018-01-09T18:03:51Z asarch: There is a big party at #sbcl 2018-01-09T18:04:23Z phoe: dlowe: dirty. but useful. 2018-01-09T18:04:58Z schweers quit (Ping timeout: 265 seconds) 2018-01-09T18:05:05Z EvW1 joined #lisp 2018-01-09T18:05:13Z dlowe: I don't think it's *that* dirty. 2018-01-09T18:05:26Z _death: what about that Arpanet mail address 2018-01-09T18:07:26Z phoe: dlowe: isn't that dirty, yeah. 2018-01-09T18:07:41Z dlowe: phoe: I mean, compare with the alternatives :) 2018-01-09T18:08:02Z borei: hi all ! 2018-01-09T18:08:17Z phoe: hey borei 2018-01-09T18:08:19Z phoe: dlowe: (: 2018-01-09T18:09:51Z epony joined #lisp 2018-01-09T18:10:05Z shka: good evening 2018-01-09T18:11:05Z epony quit (Max SendQ exceeded) 2018-01-09T18:11:54Z epony joined #lisp 2018-01-09T18:13:09Z borei: i have question about memory management in lisp. If for example my function is returning array what would be proper solution for this task - request array in the calling function and supply it as one of the argument and then fill with data, or just create array in the called function and then return it ? 2018-01-09T18:13:38Z Xach: borei: good question! both approaches are ok. in some situations it is better to do one, some the other. 2018-01-09T18:13:38Z osune joined #lisp 2018-01-09T18:14:10Z Xach: borei: If your system has to be more strict about creating new things and using memory, passing arrays in to be populated can provide more control. 2018-01-09T18:14:22Z Xach: borei: but much of the time it is ok to create things as they are needed. 2018-01-09T18:14:52Z pjb: most of the time, it will be easier and FASTER to allocate them. 2018-01-09T18:14:54Z _death: you can have both 2018-01-09T18:14:59Z BitPuffin joined #lisp 2018-01-09T18:15:10Z Xach: yes indeed 2018-01-09T18:15:37Z borei: but, speaking about second option, will that array be cleaned up by GC after called function completed ? 2018-01-09T18:15:44Z Xach: borei: oh, certainly. 2018-01-09T18:15:44Z phoe: borei: depends 2018-01-09T18:15:55Z Xach: borei: not when it completes, but when it is no longer used 2018-01-09T18:15:57Z pjb: borei: the GC only works on objects that are not accessible anymore. 2018-01-09T18:16:00Z phoe: STATIC-VECTORS are a case where you'd want to pass an array to a function instead of creating a new one. 2018-01-09T18:16:14Z phoe: since they're pretty damn efficient and very easy to utilize from inside CFFI. 2018-01-09T18:16:16Z Xach: static-vectors is an advanced topic you can ignore 2018-01-09T18:16:17Z pjb: So in all cases, as long as you keep references to the data, it won't be freed. 2018-01-09T18:16:18Z phoe: ...and from inside lisp. 2018-01-09T18:16:19Z osune: I'm sorry but to ask such a simple question but I cannot comprehend at the moment the use case for FIND-IF. Or how it differs from FIND. Can somebody please state the obvious for me? 2018-01-09T18:16:23Z phoe: Xach: d'oh 2018-01-09T18:16:40Z pjb: (find-if (lambda (x) (> x 3)) '(1 2 3 4 5 6 7 8)) #| --> 4 |# 2018-01-09T18:16:41Z Xach: osune: imagine you want to find any odd number instead of a specific one 2018-01-09T18:16:50Z Xach: osune: you could use (find-if 'oddp ...) instead of (find 3 ...) 2018-01-09T18:16:55Z pjb: (find 4 '(1 3 5 7 9)) #| --> nil |# 2018-01-09T18:17:04Z phoe: osune: FIND searches for an object that is EQL to something. FIND-IF searches for an object that satisfies a predicate function. 2018-01-09T18:17:38Z phoe: EQL can be exchanged for a different test function, but that's the default. 2018-01-09T18:17:45Z EvW1 quit (Ping timeout: 246 seconds) 2018-01-09T18:18:05Z hexfive quit (Read error: Connection reset by peer) 2018-01-09T18:18:16Z osune: but I can provide a :test #'oddp for FIND? 2018-01-09T18:18:22Z pjb: (find-if #'digit-char-p "Hello 42th world!") #| --> #\4 |# 2018-01-09T18:18:27Z phoe: osune: you'll get an error. 2018-01-09T18:18:34Z phoe: The function for :TEST expects two arguments. 2018-01-09T18:18:37Z pjb: osune: :test must be a binary function. 2018-01-09T18:18:42Z osune: uhhhhh 2018-01-09T18:18:46Z heurist`_ is now known as heurist 2018-01-09T18:18:50Z phoe: The predicate for FIND-IF expects one argument. 2018-01-09T18:19:04Z phoe: FIND works via repeatedly executing things like (EQL x y). 2018-01-09T18:19:19Z Xach: osune: it is true that sometimes functionality overlaps, and you could write a :test that would do what find-if does, but it would be pretty convoluted 2018-01-09T18:19:19Z phoe: FIND-IF works via repeatedly executing (FUNCALL predicate x). 2018-01-09T18:19:41Z phoe: Both of them return immediately when they get a non-null result. 2018-01-09T18:19:43Z hexfive joined #lisp 2018-01-09T18:20:40Z borei: tks guys ! 2018-01-09T18:21:00Z _death: FIND is similar to (find-if (lambda (hay) (funcall test hay needle)) ...), disregarding certain details 2018-01-09T18:21:14Z phoe: Xach: I just realized a thing. 2018-01-09T18:21:29Z Xach: spill it 2018-01-09T18:21:44Z osune: So i would have to 'workaround' with a lambda (x, y) (oddp x) or equivalent to use FIND. Thanks I wasn't able to grasp that at the moment and I started to get annoyed. 2018-01-09T18:22:29Z phoe: The moment I mention a thing to answer a basic question and other people go "that's advanced stuff, disregard it", I don't think I'm a newbie anymore. 2018-01-09T18:23:11Z Xach: ok!! 2018-01-09T18:23:22Z osune: well yes that's the reverse definition of "newbie" :) 2018-01-09T18:25:31Z phoe: kinda 2018-01-09T18:26:45Z Xach: phoe: I think sometimes when trying to help it can be hard to separate the "applicable knowledge" from the "necessary knowledge" for a situation 2018-01-09T18:26:59Z Xach: static-vectors info is applicable but i think not necessary 2018-01-09T18:28:16Z phoe: Xach: correct. 2018-01-09T18:30:30Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T18:31:15Z phoe: I think that I am just sore on that spot right now 2018-01-09T18:31:33Z phoe: after not using static-vectors made my library 40000% slower than it should be 2018-01-09T18:31:41Z phoe: (this is not a made up number) 2018-01-09T18:31:56Z red-dot joined #lisp 2018-01-09T18:34:03Z attila_lendvai42 quit (Ping timeout: 256 seconds) 2018-01-09T18:35:50Z emaczen` quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-09T18:36:35Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-09T18:38:17Z nowhere_man joined #lisp 2018-01-09T18:44:44Z Shinmera: I was just reminded that I started writing a plaster.el . I guess I'll take that as a small project between exam studying. 2018-01-09T18:46:23Z bitch quit (Ping timeout: 248 seconds) 2018-01-09T18:50:01Z bitch joined #lisp 2018-01-09T18:50:01Z bitch quit (Changing host) 2018-01-09T18:50:01Z bitch joined #lisp 2018-01-09T18:50:01Z bitch quit (Changing host) 2018-01-09T18:50:01Z bitch joined #lisp 2018-01-09T18:50:08Z attila_lendvai42 joined #lisp 2018-01-09T18:50:48Z jmercouris quit (Read error: Connection reset by peer) 2018-01-09T18:51:26Z jmercouris joined #lisp 2018-01-09T18:54:23Z Oddity quit (Ping timeout: 248 seconds) 2018-01-09T18:54:28Z Arcaelyx joined #lisp 2018-01-09T18:58:53Z josemanuel joined #lisp 2018-01-09T19:00:49Z Oddity joined #lisp 2018-01-09T19:01:29Z RichardPaulBck[m left #lisp 2018-01-09T19:01:42Z RichardPaulBck[m joined #lisp 2018-01-09T19:05:38Z varjag joined #lisp 2018-01-09T19:06:48Z jstypo quit (Ping timeout: 268 seconds) 2018-01-09T19:06:53Z nydel joined #lisp 2018-01-09T19:08:26Z malice quit (Remote host closed the connection) 2018-01-09T19:11:21Z JonSmith joined #lisp 2018-01-09T19:19:45Z thijso quit (Ping timeout: 268 seconds) 2018-01-09T19:22:15Z test1600 quit (Ping timeout: 260 seconds) 2018-01-09T19:25:51Z bgardner quit (Ping timeout: 240 seconds) 2018-01-09T19:27:04Z damke_ joined #lisp 2018-01-09T19:27:05Z Sauvin quit (Ping timeout: 240 seconds) 2018-01-09T19:29:45Z damke quit (Ping timeout: 264 seconds) 2018-01-09T19:31:01Z Murii quit (Quit: WeeChat 1.4) 2018-01-09T19:32:01Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T19:33:16Z red-dot joined #lisp 2018-01-09T19:34:07Z gravicappa quit (Ping timeout: 252 seconds) 2018-01-09T19:35:05Z attila_lendvai42 quit (Ping timeout: 260 seconds) 2018-01-09T19:45:01Z d4ryus: hey #lisp, could someone tell me the difference between usocket and iolib? 2018-01-09T19:45:14Z dlowe: usocket is a wrapper for socket operations 2018-01-09T19:45:29Z dlowe: iolib is a full event multiplexer for managing lots of io operations and timed events 2018-01-09T19:46:16Z d4ryus: dlowe: thanks 2018-01-09T19:47:21Z hexfive quit (Remote host closed the connection) 2018-01-09T19:47:53Z Shinmera: iolib also requires libfixposix, whereas usocket is a pure-CL socket solution. 2018-01-09T19:50:23Z attila_lendvai42 joined #lisp 2018-01-09T19:53:13Z BitPuffin quit (Remote host closed the connection) 2018-01-09T19:54:05Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-09T19:54:06Z jasom: and usocket works on windows, I don't think iolib will 2018-01-09T19:56:47Z orivej quit (Ping timeout: 248 seconds) 2018-01-09T19:58:10Z phoe: d4ryus: (over)simplifying things a real lot: usocket is portable, iolib is performant. 2018-01-09T19:58:17Z moei quit (Quit: Leaving...) 2018-01-09T19:59:13Z Shinmera: I don't think that's a good way to put it at all 2018-01-09T19:59:26Z Xach: I've been interested in basic-binary-ipc for quite some time too. 2018-01-09T19:59:26Z Shinmera: iolib has a different scope and approach. 2018-01-09T19:59:47Z jasom: +1 for basic-binary-ipc 2018-01-09T20:00:27Z smasta joined #lisp 2018-01-09T20:00:30Z jasom: though note that the overlapped-io driver on windows is under-exercised (it works as far as anyone knows, but it hasn't been used as heavily as the epoll driver, so there may be some latent issues) 2018-01-09T20:01:04Z papachan quit (Ping timeout: 252 seconds) 2018-01-09T20:01:18Z jasom: though that information is like 2 years old; pillton might know if it's being used more these days 2018-01-09T20:01:47Z damke joined #lisp 2018-01-09T20:02:02Z jasom remembers considering writing something like basic-binary-ipc but then thinking "that's a lot of boring, thankless, slog-work." 2018-01-09T20:02:11Z jasom: I'm always impressed with people that can finish projects like that 2018-01-09T20:02:56Z Shinmera: Speaking of things like that, I've been considering writing a github API client, but just the thought of dealing with oauth2 is making me cringe. 2018-01-09T20:03:20Z Shinmera: Will probably just bash my head through it eventually anyway though, if my past record is anything to go by. 2018-01-09T20:04:09Z hexfive joined #lisp 2018-01-09T20:04:26Z Shinmera: If I wanted to be fully future proof I'd probably have to implement the v4 though, which uses GraphQL. 2018-01-09T20:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T20:04:42Z Xach: Shinmera: so i have one called "githappy" and you can plug in a token from the dev site to get full rate querying without going through oauth2 2018-01-09T20:04:44Z jmercouris: It was reccomended to me to use https://github.com/flathub to distribute nEXT, any feedback on this? 2018-01-09T20:04:44Z Shinmera: Looking at that spec made my eyes glaze over though, so that probably won't happen 2018-01-09T20:05:05Z Xach: Shinmera: I use it to do all github-related quicklisp stuff (which isn't much yet) 2018-01-09T20:05:28Z jmercouris: Shinmera: There's already a few emacs github apis clients, why do you want to write one? 2018-01-09T20:05:35Z Shinmera: Xach: Ah, neat. 2018-01-09T20:05:45Z Shinmera: jmercouris: Because I don't want to write elisp? 2018-01-09T20:05:56Z Shinmera: And because my programs aren't written in elisp 2018-01-09T20:06:38Z Shinmera: Xach: Is that for the v3 API? 2018-01-09T20:06:42Z Xach: Shinmera: yeah 2018-01-09T20:06:47Z d4ryus: jasom, phoe, Shinmera: Thank you 2018-01-09T20:07:14Z Shinmera: Xach: Alright, I'll see if I can convince myself to just extend/use that. 2018-01-09T20:07:48Z Xach: I understand if the result is "no", as it is not documented or high-level. 2018-01-09T20:07:51Z papachan joined #lisp 2018-01-09T20:07:53Z jmercouris: Shinmera: True, who does enjoy writing in elisp :D 2018-01-09T20:08:47Z Shinmera: Xach: The purist in me is hoping I'll write yak-shave a GraphQL library and then use V4, but we'll see. 2018-01-09T20:09:20Z jmercouris: You should call it yak-razor 2018-01-09T20:09:20Z d4ryus: I have been using usocket, but iam missing stuff like checking how many bytes i can read from a socket without blocking. 2018-01-09T20:09:40Z pjb quit (Ping timeout: 265 seconds) 2018-01-09T20:09:59Z Shinmera: You can at least check whether there's anything to read or not without blocking 2018-01-09T20:10:28Z d4ryus: Shinmera: yes, but that would suggest reading single bytes :/ 2018-01-09T20:10:37Z Shinmera: Huh? Why? 2018-01-09T20:11:05Z d4ryus: Because a byte is the least amount available 2018-01-09T20:11:48Z Shinmera: Yeah but you'll send messages in chunks rather than individual bytes, yeah? 2018-01-09T20:12:04Z Shinmera: So when there's input available you read an entire message. 2018-01-09T20:12:08Z d4ryus: yes, true. but that could be abused. 2018-01-09T20:12:19Z Shinmera: How? 2018-01-09T20:13:02Z d4ryus: once i do a read-line, or read-sequence n and the other end sends less bytes then i expect, my client hangs 2018-01-09T20:13:33Z Shinmera: Are you hoping to do everything in a single thread or something? 2018-01-09T20:13:40Z bms_ joined #lisp 2018-01-09T20:13:52Z d4ryus: yep, that would be the goal 2018-01-09T20:14:17Z Xach: d4ryus: You should not use read-line and read-sequence, then. 2018-01-09T20:14:24Z phoe: I went around this by using peek-char-no-hang 2018-01-09T20:14:25Z nullman quit (Ping timeout: 248 seconds) 2018-01-09T20:14:26Z Shinmera: Whatever for? Having a socket reader thread and a queue for messages is not a big deal. 2018-01-09T20:14:26Z phoe: https://github.com/phoe/phoe-toolbox/blob/master/phoe-toolbox.lisp#L274 2018-01-09T20:14:27Z Xach: d4ryus: use interfaces that read as much as is availble and return. 2018-01-09T20:14:57Z d4ryus: Xach: interfaces like? 2018-01-09T20:15:21Z nullman joined #lisp 2018-01-09T20:15:28Z Shinmera: phoe: read-char-no-hang does not help here. 2018-01-09T20:15:40Z Shinmera: And reading char by char is atrocious for performance, especially if you do the no-hang variant. 2018-01-09T20:16:13Z d4ryus: yes, like shinmera said, that would be reading single bytes 2018-01-09T20:16:30Z pagnol joined #lisp 2018-01-09T20:16:31Z phoe: ayup, but I doubt you can do better with usocket. 2018-01-09T20:16:53Z d4ryus: Xach: which interfaces exist that read only as much as is available? 2018-01-09T20:16:58Z Shinmera: Using a thread and checking for input before reading a full message works perfectly fine. 2018-01-09T20:17:52Z Xach: d4ryus: I'm not sure what is portable, but sb-bsd-sockets:socket-receive I think will do the trick. 2018-01-09T20:17:54Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-09T20:18:15Z frodef joined #lisp 2018-01-09T20:18:36Z d4ryus: Xach: looking into that, thank you 2018-01-09T20:19:00Z dlowe: I have some code floating around using iolib that opens a non-blocking socket, reads into an expanding buffer on input, and runs a callback function when a full line is read. 2018-01-09T20:19:02Z Shinmera: The API I'd prefer instead is having a read-timeout available. 2018-01-09T20:19:04Z dlowe: It's not particularly hard. 2018-01-09T20:19:49Z d4ryus: Shinmera: yes thats my current solution. Iam creating a thread for each connection, those get terminated in case they hang on read-sequence 2018-01-09T20:20:36Z d4ryus: Shinmera: usocket allows you to set timeouts 2018-01-09T20:21:32Z Shinmera: Oh, it does? 2018-01-09T20:21:53Z Shinmera: Hmm 2018-01-09T20:22:02Z Shinmera: Why do I explicitly remember not seeing that 2018-01-09T20:22:07Z wigust_ joined #lisp 2018-01-09T20:22:08Z d4ryus: yes, checkout option.lisp 2018-01-09T20:22:17Z Xach: I've often thought about a portability layer that does not try to pretend sockets are streams, and just offers read-octets, write-octets and a few other things. 2018-01-09T20:24:13Z Shinmera: Ah, it was added after I first started using Usocket I think 2018-01-09T20:24:27Z wigust quit (Ping timeout: 246 seconds) 2018-01-09T20:24:35Z Shinmera: So much for the ecosystem being stagnant! 2018-01-09T20:24:58Z Xach: I've had that happen with cl-ppcre! It grew special processor options for register-groups-bind after I learned how to use it. 2018-01-09T20:25:56Z d4ryus: :D but stuff inside option.lisp is not too platform-independent 2018-01-09T20:25:58Z omilu joined #lisp 2018-01-09T20:28:34Z Shinmera: d4ryus: Every other line is a reader conditional. I think that's pretty dependent. 2018-01-09T20:29:21Z Shinmera: I actually wonder why it was done this way rather than having each function defined in the platform specific file. 2018-01-09T20:29:24Z Shinmera: :/ 2018-01-09T20:29:51Z d4ryus: Shinmera: yes, true. but most platforms are not implemented. 2018-01-09T20:32:20Z Shinmera: I see clisp, ccl, cmucl, ecl, lw, and sbcl for read timeout. Good enough for me! 2018-01-09T20:32:55Z phoe: abcl could be done as well, but eh 2018-01-09T20:33:20Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T20:34:19Z attila_lendvai42 quit (Ping timeout: 265 seconds) 2018-01-09T20:34:37Z red-dot joined #lisp 2018-01-09T20:36:11Z thijso joined #lisp 2018-01-09T20:36:15Z shka quit (Ping timeout: 248 seconds) 2018-01-09T20:38:20Z logicmoo: hrrm I noticed most all impls dont have private symbols in COMMON-LISP though most all describe the lambda list arguments that might have appeared in COMMON-LISP package as comming from their respective impl packages symbol examples are TEST,TEST-NOT,BODY etc 2018-01-09T20:39:56Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-09T20:40:01Z logicmoo: so i am trying to decide .. if i might just leave CL::TEST in the way ABCL does 2018-01-09T20:40:50Z Shinmera: Who cares? 2018-01-09T20:40:52Z logicmoo: or was there a reason everyone else scrubs out their CL non exported symbols? 2018-01-09T20:41:12Z Shinmera: Uh, typically there's no reason to put symbols in there other than those that are exported to begin with 2018-01-09T20:41:14Z scymtym quit (Ping timeout: 255 seconds) 2018-01-09T20:41:38Z logicmoo: (some dont scrub them out they are litternally where they belongs and then later exported into CL) 2018-01-09T20:42:43Z logicmoo: ok, so possibly, ABCL is the odd one here 2018-01-09T20:44:02Z fortitude joined #lisp 2018-01-09T20:45:02Z hexfive quit (Read error: Connection reset by peer) 2018-01-09T20:45:24Z logicmoo: in my impl (i followed ABCLs method here) i ended up with CL::TEST as a non exported symbol and was wondering how wierd it was to have several non export symbols in COMMON-LISP 2018-01-09T20:45:54Z Shinmera: 21:40:50 Shinmera | Who cares? 2018-01-09T20:45:58Z Xach: There should be exactly 976 symbols in COMMON-LISP. 2018-01-09T20:46:07Z Shinmera: the standard only says things about exported symbols, if I remember correctly 2018-01-09T20:46:08Z Xach: Any more and things could really get fouled up. 2018-01-09T20:46:12Z hexfive joined #lisp 2018-01-09T20:46:12Z logicmoo: exacly i was thinking about the ANSI tests 2018-01-09T20:46:53Z logicmoo: Shinmera.. please ignore me 2018-01-09T20:47:10Z Shinmera: I refuse 2018-01-09T20:47:12Z drewc_ joined #lisp 2018-01-09T20:47:49Z Shinmera: clhs 11.1.2.1 2018-01-09T20:47:49Z specbot: The COMMON-LISP Package: http://www.lispworks.com/reference/HyperSpec/Body/11_aba.htm 2018-01-09T20:48:14Z Shinmera: "The COMMON-LISP package can have additional internal symbols. 2018-01-09T20:48:17Z Shinmera: " 2018-01-09T20:48:58Z logicmoo: yet everyone works very hard not to 2018-01-09T20:49:07Z Shinmera: I don't think they do, there's just no reason to. 2018-01-09T20:49:12Z phoe grabs the STANDARD-COMPLIANT stamp 2018-01-09T20:49:23Z Shinmera: You shouldn't (in-package :cl) anyway, so there's no reason other symbols might end up in there anyway. 2018-01-09T20:49:31Z attila_lendvai42 joined #lisp 2018-01-09T20:49:47Z drewc quit (Ping timeout: 268 seconds) 2018-01-09T20:50:30Z logicmoo: yeah i think i am going to stop doing that 2018-01-09T20:50:43Z phoe: interning symbols in CL package is undefined behaviour 2018-01-09T20:50:59Z Shinmera: phoe: Remember he's writing an implementation 2018-01-09T20:51:24Z phoe facepalms 2018-01-09T20:51:37Z logicmoo: ABCL does it via (in-package :cl) (so was i) 2018-01-09T20:51:45Z phoe: in this case, interning symbols in CL package is undefined behaviour, BUT you're in a good place to define it 2018-01-09T20:51:51Z fortitude_ joined #lisp 2018-01-09T20:52:24Z Shinmera: logicmoo: I'd just define the functions in your implementation package and then (export (import foo :cl) :cl). Maybe even make a macro that does that automatically. 2018-01-09T20:52:27Z logicmoo: mainly my concern was code that for whatever reason my call (find-symbol "..." :CL) 2018-01-09T20:52:35Z logicmoo: my/might 2018-01-09T20:53:55Z d4ryus: to clarify: sb-bsd-sockets:socket-receive with :dontwait t only reads all available bytes without blocking. Which means one could use usocket:wait-for-input to check which sockets have input available and then read from those all available bytes without blocking. This can be used to read from multiple sockets from a single thread. 2018-01-09T20:54:25Z logicmoo: Shinmera: yup i have seen a few macros that do that in various places 2018-01-09T20:54:58Z fortitude quit (Ping timeout: 252 seconds) 2018-01-09T20:57:06Z eivarv quit (Quit: Sleep) 2018-01-09T21:05:17Z Jen quit (Remote host closed the connection) 2018-01-09T21:05:22Z hexfive quit (Remote host closed the connection) 2018-01-09T21:05:35Z Jen joined #lisp 2018-01-09T21:08:58Z bgardner joined #lisp 2018-01-09T21:11:19Z Xach: I would make a defpackage with all 976 symbols exported, and then only reference them as cl:whatever thereafter. 2018-01-09T21:12:56Z Xach: d4ryus: there ya go 2018-01-09T21:17:40Z nowhereman_ joined #lisp 2018-01-09T21:19:20Z xaotuk joined #lisp 2018-01-09T21:20:03Z Ven`` joined #lisp 2018-01-09T21:21:14Z nowhere_man quit (Ping timeout: 268 seconds) 2018-01-09T21:22:14Z hexfive joined #lisp 2018-01-09T21:23:21Z borei: does lisp generate generic function for macroses ? in other words can i create 2 macroses with the same name but different signature ? 2018-01-09T21:23:51Z dlowe: borei: you can with &rest parameters 2018-01-09T21:24:15Z dlowe: borei: it will be the same macro but you will have to decide its behavior depending on its arguments. 2018-01-09T21:24:15Z frodef quit (Ping timeout: 248 seconds) 2018-01-09T21:24:22Z cgay: sbcl CREDITS hasn't been updated for 5 years, so supplement it with the github commit history I think. 2018-01-09T21:24:31Z borei: oh, forgot about that key. 2018-01-09T21:24:33Z borei: tks ! 2018-01-09T21:24:40Z dlowe: np 2018-01-09T21:24:50Z cgay: aaaaand I forgot I was reading scrollback again. 2018-01-09T21:25:23Z dlowe: still a little relevant :) 2018-01-09T21:25:50Z cgay: dammit. I mostly try not to be relevant. 2018-01-09T21:26:19Z bms_: :P 2018-01-09T21:26:48Z quazimodo joined #lisp 2018-01-09T21:30:12Z gtuser quit (Quit: gtuser) 2018-01-09T21:34:15Z attila_lendvai42 quit (Ping timeout: 265 seconds) 2018-01-09T21:34:41Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T21:35:14Z aeth: Don't forget that macros use a more advanced lambda list than functions. (defmacro foo (((&key bar) &key foo) &body body) `'(,foo ,bar ,@body)) (foo ((:bar 0) :foo 42) 1) 2018-01-09T21:36:06Z red-dot joined #lisp 2018-01-09T21:36:24Z aeth: (&optional and &rest can be used instead of &key in that example, if you also change the way the macro's called) 2018-01-09T21:36:39Z scymtym joined #lisp 2018-01-09T21:37:08Z aeth: The best part about this is that if you can do it entirely through the lambda-list, Emacs+SLIME will know the full API and tell you in the mini-buffer. 2018-01-09T21:38:01Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-01-09T21:38:16Z damke_ joined #lisp 2018-01-09T21:41:09Z damke quit (Ping timeout: 264 seconds) 2018-01-09T21:46:05Z tomaw quit (Read error: Connection reset by peer) 2018-01-09T21:46:36Z tomaw joined #lisp 2018-01-09T21:48:35Z attila_lendvai42 joined #lisp 2018-01-09T21:49:44Z grumble quit (Killed (Sigyn (BANG!))) 2018-01-09T21:50:19Z grumble joined #lisp 2018-01-09T21:54:05Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-09T21:54:37Z sz0_ joined #lisp 2018-01-09T21:57:41Z logicmoo: Xach: thank you 2018-01-09T22:01:06Z nowhereman_ joined #lisp 2018-01-09T22:03:14Z josemanuel quit (Quit: leaving) 2018-01-09T22:06:05Z jmercouris: Is there a way to embed an opengl view within mcclim? 2018-01-09T22:07:06Z Shinmera: Things work the other way around. 2018-01-09T22:07:07Z bms_ quit (Quit: Leaving) 2018-01-09T22:07:21Z Shinmera: You'd embed mcclim in an opengl window. 2018-01-09T22:07:29Z jmercouris: I see 2018-01-09T22:07:38Z Shinmera: And then you could draw opengl stuff to a subregion of that. 2018-01-09T22:07:50Z jmercouris: hmm, sounds complicated 2018-01-09T22:10:30Z Shinmera: Anyway, point is, if you want to draw with GL you need a GL context and a GL window from the OS. 2018-01-09T22:10:59Z Shinmera: You could potentially do stuff like creating an offscreen context, rendering to that, extracting the texture, and then drawing that onto a native surface or whatever 2018-01-09T22:11:23Z Shinmera: But typically you want things to go the other way around 2018-01-09T22:11:58Z hexfive quit (Read error: Connection reset by peer) 2018-01-09T22:12:16Z aeth: Generally, people use SDL via cl-sdl2 to get the GL context and GL window and handle input. This is extreme overkill because you're bundling a large C library with tons of platform support you'll never use and tons of features you'll never use, via a large wrapper with additional features you won't use, just to get OpenGL up. 2018-01-09T22:12:41Z aeth: But I do this because doing things the right way would probably be harder. Doing things the lazy way probably makes distribution harder, though. 2018-01-09T22:13:02Z Shinmera: GLFW is more minimal and works just as well 2018-01-09T22:13:17Z Shinmera: There's also the lisp native GLOP, but it's pretty broken 2018-01-09T22:13:27Z hexfive joined #lisp 2018-01-09T22:14:11Z junxit quit (Remote host closed the connection) 2018-01-09T22:14:17Z aeth: Fortunately, I only need to support X and Windows because Apple decided to not update OpenGL in the last 6.5 years or so. 2018-01-09T22:14:28Z aeth: So I could do an approach similar to GLOP if only I had the time. 2018-01-09T22:14:50Z Shinmera: Huh? GL3+ works just fine on mac. 2018-01-09T22:15:03Z aeth: 4.1 2018-01-09T22:15:06Z aeth: Mac stops at 4.1 2018-01-09T22:15:18Z Guest54593 quit (Remote host closed the connection) 2018-01-09T22:15:19Z aeth: OpenGL 4.2 was released 2011-08-08 2018-01-09T22:15:24Z hexfive quit (Client Quit) 2018-01-09T22:15:36Z Shinmera: Well, most things can be done with 4.1 2018-01-09T22:16:31Z sjl quit (Ping timeout: 248 seconds) 2018-01-09T22:18:20Z aeth: I don't have the resources to maintain two renderers, a fast one for modern OpenGL and a slow one for OS X. 2018-01-09T22:18:50Z aeth: I also don't have the resources to overpay for hardware and get a Mac Mini just to test on OS X. 2018-01-09T22:19:14Z phoe: aeth: hackintoshes are doable nowadays 2018-01-09T22:19:21Z phoe: but that's a completely #lispcafe topic 2018-01-09T22:21:09Z Shinmera: aeth: What exactly do you need to do that requires such a recent GL? 2018-01-09T22:21:58Z aeth: Shinmera: I currently use 3.3 and I am bumping up the API as I need the features, but I am not supporting OS X with my engine because I'm not going to limit my features at 4.1. 2018-01-09T22:22:05Z aeth: e.g. 4.3 introduces compute shaders 2018-01-09T22:22:34Z Shinmera: Well, you're cutting out a large user base then. 2018-01-09T22:24:09Z aeth: Anyone will be free to add #+darwin and #-darwin via patches to my engine if they want to. I just don't have the resources to do so myself. 2018-01-09T22:25:42Z aeth: It wouldn't just be the renderer, though, e.g. Windows and standard Unix configuration/local-data directories (e.g. ~/.config/ and ~/.local/share/) are supported for "free" through UIOP 2018-01-09T22:26:02Z aeth: macOS directories would have to be handled manually 2018-01-09T22:26:47Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-09T22:26:52Z aeth: (UIOP treats macOS as a Unix) 2018-01-09T22:27:02Z fikka joined #lisp 2018-01-09T22:31:01Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T22:32:04Z shifty joined #lisp 2018-01-09T22:33:42Z xaotuk quit (Ping timeout: 265 seconds) 2018-01-09T22:34:50Z SuperJen joined #lisp 2018-01-09T22:35:09Z attila_lendvai42 quit (Ping timeout: 265 seconds) 2018-01-09T22:35:13Z angavrilov quit (Remote host closed the connection) 2018-01-09T22:35:28Z wigust_ quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-09T22:36:11Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T22:36:24Z phoe: (as it should be) 2018-01-09T22:36:57Z fortitude_ quit (Ping timeout: 265 seconds) 2018-01-09T22:37:12Z red-dot joined #lisp 2018-01-09T22:38:02Z vlatkoB_ quit (Remote host closed the connection) 2018-01-09T22:38:57Z Jen quit (Ping timeout: 248 seconds) 2018-01-09T22:39:58Z wigust joined #lisp 2018-01-09T22:45:46Z logicmoo is now known as dmiles 2018-01-09T22:46:07Z p_l has trouble considering macOS to be "large user base" still :| 2018-01-09T22:46:13Z quazimodo quit (Ping timeout: 256 seconds) 2018-01-09T22:46:40Z quazimodo joined #lisp 2018-01-09T22:46:48Z Shinmera: it's significant enough for developers 2018-01-09T22:47:24Z pilfink joined #lisp 2018-01-09T22:47:46Z Shinmera: As in, lots of developers use macs 2018-01-09T22:49:21Z aeth: For games, there's the Steam HW survey. Unfortunately, the Steam HW Survey is no longer accurate due to the massive surge of accounts from China for PUBG. It's unlikely that those accounts are going to buy most games, especially ones without Chinese localizations. 2018-01-09T22:49:21Z wxie joined #lisp 2018-01-09T22:49:30Z aeth: I don't think the Steam HW survey has a region breakdown. 2018-01-09T22:49:32Z attila_lendvai42 joined #lisp 2018-01-09T22:49:56Z aeth: e.g. right now Linux is at 0.26%, way down from last year, but in the US, it's closer to 2.5% or so iirc. 2018-01-09T22:50:13Z aeth: OSX is at 1.42%, but in the US it's probably closer to 8% or so 2018-01-09T22:50:28Z aeth: if not 10% 2018-01-09T22:50:35Z Shinmera: It also doesn't report GL version availability 2018-01-09T22:50:50Z Shinmera: It lists most cards used, but you'd have to crunch the numbers manually and that's a pita 2018-01-09T22:51:22Z aeth: And that wouldn't take into account OSes. 2018-01-09T22:51:31Z aeth: macOS ships perfectly capable hardware, limited by drivers to 4.1 2018-01-09T22:51:50Z aeth: And Intel's versions differ depending on platform because they have separate driver teams for Windows and Linux. 2018-01-09T22:51:50Z jmercouris: I wonder why they do that 2018-01-09T22:51:53Z jmercouris: what is their reasoning 2018-01-09T22:52:01Z Shinmera: Writing drivers is hard 2018-01-09T22:52:05Z jmercouris: I don 2018-01-09T22:52:10Z jmercouris: I don't think that's their reasoning 2018-01-09T22:52:23Z aeth: jmercouris: Android runs GL, iOS runs GL. (Technically the embedded version.) Only iOS and macOS run Metal. Mobile lock-in is the reason. 2018-01-09T22:52:52Z aeth: They'll take worse games on Macbooks to provide more exclusive games to iOS, where they get a cut on every sale. 2018-01-09T22:53:01Z jmercouris: You think so? 2018-01-09T22:53:06Z jmercouris: I don't know that seems really far fetched to me 2018-01-09T22:53:15Z jmercouris: what about other applications like final cut, and photoshop 2018-01-09T22:53:23Z aeth: Applications that use GL tend to lag behind. 2018-01-09T22:53:29Z aeth: It's the games that want the newer APIs 2018-01-09T22:53:43Z jmercouris: This is too tinfoil hat 2018-01-09T22:53:47Z jmercouris: especially since there is also a mac app store 2018-01-09T22:53:49Z aeth: How much does Apple make on games on macOS? They don't get any from the ones sold through Steam. 2018-01-09T22:53:55Z jmercouris: so why would they not want to sell games on the mac app store as well? 2018-01-09T22:54:15Z jmercouris: I think a typical mac user will install from the app store before installing steam client + some games 2018-01-09T22:54:20Z Shinmera: Anyway, this is getting pretty far from Lisp, so please >>#lispcafe 2018-01-09T22:54:28Z aeth: jmercouris: I think most people who game on Apple hardware probably use Bootcamp to game through Windows because Windows has much better support for games. 2018-01-09T22:54:36Z jmercouris: yeah, or wineskin 2018-01-09T22:57:38Z Karl_Dscc quit (Remote host closed the connection) 2018-01-09T22:57:48Z openthesky joined #lisp 2018-01-09T22:58:18Z resttime joined #lisp 2018-01-09T23:00:49Z Bike quit (Ping timeout: 260 seconds) 2018-01-09T23:01:03Z damke joined #lisp 2018-01-09T23:03:01Z dddddd quit (Remote host closed the connection) 2018-01-09T23:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-09T23:04:41Z rumbler31: aeth: there exists a no-lib-necessary way to get an opengl i just need to find it 2018-01-09T23:05:03Z Shinmera: rumbler31: I already mentioned it. It's called GLOP and it's broken. 2018-01-09T23:05:40Z aeth: rumbler31: You essentially need to CFFI directly to X (or perhaps a clx-style approach would work), WinAPI, macOS's API, etc. 2018-01-09T23:05:45Z aeth: That's what GLOP does (poorly) 2018-01-09T23:05:50Z varjag quit (Ping timeout: 276 seconds) 2018-01-09T23:06:21Z aeth: And, yeah, then if you solve sound, too, you have a 0-library approach, even though you do have to FFI to the OS and to OpenGL. 2018-01-09T23:06:31Z Shinmera: Sound is solved 2018-01-09T23:06:32Z aeth: s/0-library/0-foreign-library/ 2018-01-09T23:06:40Z wxie quit (Quit: Bye.) 2018-01-09T23:07:34Z aeth: Shinmera: Is the sound library non-consing? The main reason (other than no libraries) that I'd want to replace cl-sdl2 is because it is the only thing in my game loop that conses, and a direct FFI approach could (hopefully) preallocate everything. 2018-01-09T23:07:36Z resttime quit (Read error: Connection reset by peer) 2018-01-09T23:07:55Z Shinmera: Should be mostly non-consing, though I have not tested for it. 2018-01-09T23:08:08Z Shinmera: Non-consing isn't very important to me, but nativeness is. 2018-01-09T23:08:09Z aeth: yeah, I get mostly non-consing through cl-sdl2 2018-01-09T23:08:17Z aeth: I get absolutely non-consing in everything else, at least in SBCL 2018-01-09T23:08:35Z aeth: Not even stack allocating, except for a few matrices that would be a pain to deal with in non-allocating ways. 2018-01-09T23:09:44Z aeth: Ideally, the GC could be disabled during gameplay (can this be done in SBCL?) and only turned on outside of gameplay when consing could potentially happen. Although I'm not sure the GC would do much if all that's there are a bunch of long-lasting preallocated data structures that don't change. 2018-01-09T23:10:36Z Shinmera: Avoiding GC at all cost kinda throws a lot of what makes CL advantageous out of the window in my opinion 2018-01-09T23:10:57Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-09T23:11:06Z aeth: What makes CL adventageous is real macros and controlling when evaluation happens. The macros would be painful to write without GC, but the GC is happening outside of the game loop so it doesn't matter. 2018-01-09T23:12:02Z aeth: I have two styles: inside game loop and outside game loop. Only the former cares about avoiding consing. 2018-01-09T23:12:24Z LiamH quit (Quit: Leaving.) 2018-01-09T23:12:25Z aeth: I should probably update my CONTRIBUTING.md to explain this, although it's not like anyone contributes. 2018-01-09T23:12:44Z quazimodo joined #lisp 2018-01-09T23:13:14Z rumbler31: ah glop is broken you say? 2018-01-09T23:13:18Z Shinmera: It is. 2018-01-09T23:13:23Z jasom: aeth: sbcl does support disabling the GC, but it will explode if a GC is ever needed 2018-01-09T23:13:47Z Shinmera: rumbler31: if I remember correctly doesn't work at all on OS X, has a broken, unmovable, borderless, fixed-size window on Windows. 2018-01-09T23:13:58Z rumbler31: huh 2018-01-09T23:14:02Z rumbler31: thanks for the heads up 2018-01-09T23:14:43Z Shinmera: jasom: if I remember correctly the GC shouldn't trigger unless there's pressure anyway, right? 2018-01-09T23:15:30Z rumbler31: has anyone looked into cribbing racket's ui toolkit? 2018-01-09T23:16:15Z mishoo_ joined #lisp 2018-01-09T23:16:40Z mishoo__ quit (Read error: Connection reset by peer) 2018-01-09T23:20:41Z Kaisyu joined #lisp 2018-01-09T23:22:02Z markong quit (Ping timeout: 265 seconds) 2018-01-09T23:23:18Z margeas joined #lisp 2018-01-09T23:26:36Z markong joined #lisp 2018-01-09T23:27:17Z rumbler31 quit (Ping timeout: 276 seconds) 2018-01-09T23:27:50Z margeas quit (Ping timeout: 260 seconds) 2018-01-09T23:34:50Z attila_lendvai42 quit (Ping timeout: 260 seconds) 2018-01-09T23:35:29Z mishoo_ quit (Ping timeout: 248 seconds) 2018-01-09T23:37:50Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-09T23:38:35Z red-dot joined #lisp 2018-01-09T23:38:44Z JuanDaugherty: cribbing is documenting or porting? 2018-01-09T23:39:06Z Xach: JuanDaugherty: borrowing, taking inspiration from, copying 2018-01-09T23:39:07Z osune quit (Read error: Connection reset by peer) 2018-01-09T23:39:10Z aeth: I added an explanation of my no-consing style to my CONTRIBUTING.md: https://gitlab.com/zombie-raptor/zombie-raptor/blob/5e0f01a21cd1b3359925f726eddff9237f02d3ff/CONTRIBUTING.md#consing-heap-allocations 2018-01-09T23:39:26Z JuanDaugherty: ah, that's what I meant by porting 2018-01-09T23:39:35Z JuanDaugherty: (from scheme to cl) 2018-01-09T23:40:04Z JuanDaugherty: do have deja vu about the usage now 2018-01-09T23:40:23Z jameser joined #lisp 2018-01-09T23:40:27Z JuanDaugherty: the sense of inspiration, clonal activity vs regular port 2018-01-09T23:40:53Z fikka quit (Ping timeout: 265 seconds) 2018-01-09T23:41:54Z Tristam quit (Read error: Connection timed out) 2018-01-09T23:44:14Z moei joined #lisp 2018-01-09T23:45:03Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-09T23:45:05Z margeas joined #lisp 2018-01-09T23:45:12Z fikka joined #lisp 2018-01-09T23:45:43Z markong quit (Ping timeout: 256 seconds) 2018-01-09T23:46:30Z smasta quit (Ping timeout: 260 seconds) 2018-01-09T23:47:31Z xrash joined #lisp 2018-01-09T23:49:14Z attila_lendvai42 joined #lisp 2018-01-09T23:52:19Z milanj_ quit (Read error: Connection reset by peer) 2018-01-09T23:53:05Z phadthai quit (Ping timeout: 256 seconds) 2018-01-09T23:53:29Z phadthai joined #lisp 2018-01-09T23:53:47Z mhd joined #lisp 2018-01-09T23:54:14Z nightfly joined #lisp 2018-01-09T23:55:18Z otwieracz quit (Remote host closed the connection) 2018-01-09T23:55:19Z antoszka quit (Quit: WeeChat 1.9.1) 2018-01-09T23:55:19Z mrSpec quit (Quit: ZNC - http://znc.in) 2018-01-09T23:55:33Z mhd quit (Ping timeout: 180 seconds) 2018-01-09T23:59:44Z gendl: Hi, is there something which works similar to mapcan, but collects the results into a string instead of a list? (where the lambda function would return a string). 2018-01-10T00:00:28Z Xach: not built-in 2018-01-10T00:00:48Z antoszka joined #lisp 2018-01-10T00:01:33Z warweasle joined #lisp 2018-01-10T00:02:43Z sz0_ quit (Quit: Connection closed for inactivity) 2018-01-10T00:04:35Z markong joined #lisp 2018-01-10T00:04:36Z margeas quit (Ping timeout: 246 seconds) 2018-01-10T00:06:17Z phoe: (concatenate 'string ...) the mapcar'd results 2018-01-10T00:06:21Z phoe: it will work for short lists 2018-01-10T00:07:52Z phoe: if you want longer lists, then go for a custom concatenator whom you feed a list of strings, which makes a fresh string of length (reduce #'+ strings :key #'length) and then copy-seqs each string into its respective place inside the result string. 2018-01-10T00:11:27Z nullman quit (Ping timeout: 240 seconds) 2018-01-10T00:12:02Z nullman joined #lisp 2018-01-10T00:16:31Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-10T00:17:24Z margeas joined #lisp 2018-01-10T00:18:25Z jfb4 joined #lisp 2018-01-10T00:18:38Z borei: i'm implementing basic linear algebra library, was working on the matricies arithmetic operations - like '+', '-', multiplication by number, but COMMON-LISP package already has that operation defined as ordinary functions, does it mean that i can't use above operation normally like for example in C++ ? without package prefix like cl:+ ? 2018-01-10T00:19:09Z markong quit (Ping timeout: 256 seconds) 2018-01-10T00:21:17Z attila_lendvai42 quit (Quit: Leaving.) 2018-01-10T00:26:41Z pilfink quit (Ping timeout: 248 seconds) 2018-01-10T00:26:45Z margeas quit (Ping timeout: 264 seconds) 2018-01-10T00:27:33Z Xach: borei: that's about right, if you shadow cl:+ etc 2018-01-10T00:28:20Z FreeBirdLjj joined #lisp 2018-01-10T00:30:52Z borei: but i can't completely shadow it, because i still need to add numbers 2018-01-10T00:32:11Z borei: seems like best approach would be introduction of alphanumerical functions names like - add, subtract, mult, divide etc 2018-01-10T00:32:54Z damke_ joined #lisp 2018-01-10T00:33:05Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-10T00:34:14Z itruslove quit (Ping timeout: 276 seconds) 2018-01-10T00:34:37Z jonh left #lisp 2018-01-10T00:35:09Z damke quit (Ping timeout: 264 seconds) 2018-01-10T00:35:32Z antoszka quit (Ping timeout: 276 seconds) 2018-01-10T00:36:00Z antoszka joined #lisp 2018-01-10T00:36:09Z itruslove joined #lisp 2018-01-10T00:36:11Z felideon quit (Ping timeout: 276 seconds) 2018-01-10T00:37:16Z jameser joined #lisp 2018-01-10T00:37:23Z epony quit (Remote host closed the connection) 2018-01-10T00:38:38Z felideon joined #lisp 2018-01-10T00:40:07Z jstypo joined #lisp 2018-01-10T00:42:56Z Oladon joined #lisp 2018-01-10T00:44:11Z Xach: borei: "shadow" in the lisp sense means what happens when you use a package but don't want to use it all 2018-01-10T00:50:40Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-10T00:55:26Z nirved quit (Quit: Leaving) 2018-01-10T00:55:28Z epony joined #lisp 2018-01-10T00:56:25Z Bike joined #lisp 2018-01-10T00:56:44Z JonSmith quit (Remote host closed the connection) 2018-01-10T00:56:44Z epony quit (Max SendQ exceeded) 2018-01-10T00:57:33Z epony joined #lisp 2018-01-10T00:57:44Z groovy2shoes quit (Ping timeout: 265 seconds) 2018-01-10T01:01:31Z varjag joined #lisp 2018-01-10T01:02:02Z jasom: Shinmera: all I know is that whatever heuristic sbcl uses for invoking the GC doesn't usually do what I want. I typically invoke the GC manually 2018-01-10T01:02:18Z smasta joined #lisp 2018-01-10T01:02:29Z groovy2shoes joined #lisp 2018-01-10T01:03:31Z JonSmith joined #lisp 2018-01-10T01:06:07Z varjag quit (Ping timeout: 248 seconds) 2018-01-10T01:07:45Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-10T01:12:53Z varjag joined #lisp 2018-01-10T01:17:31Z varjag quit (Ping timeout: 256 seconds) 2018-01-10T01:18:32Z test1600 joined #lisp 2018-01-10T01:18:57Z aeth: borei: If you're writing a linear algebra library and you want generic arithemtic operators, you probably want to use specialization-store by pillton instead of writing your own macros. https://github.com/markcox80/specialization-store/ 2018-01-10T01:20:03Z aeth: You *might* be able to use it to still call cl:+ for types that cl:+ supports, with most of the work done for you. 2018-01-10T01:20:24Z ebrasca joined #lisp 2018-01-10T01:21:12Z aeth: specialization-store basically lets you define functions that work in (roughly) the same way as the built-in CL functions that are generic over sequences or numbers. Runtime dispatch on unknown types, but more efficient code if the types are known. 2018-01-10T01:24:14Z aeth: (This only happens when inline, but if you want a middle ground for more complex functions that probably shouldn't be inline, you could define functions that are called by inline specializations.) 2018-01-10T01:24:34Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-10T01:25:21Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T01:26:32Z aeth: (And you'd probably want to wrap that function call in (the foo-type ...) if the return type is known) 2018-01-10T01:27:10Z igemnace joined #lisp 2018-01-10T01:28:54Z aeth: (Actually, it'd be great if specialization-store had something like :inline-function-call that did this automatically.) 2018-01-10T01:29:11Z ebrasca: No applicable methods to generic function # (PARSE-NAMESTRING-USING-HOST) when called with (# ">Fonts>LICENSE" NIL). 2018-01-10T01:29:17Z ebrasca: What does it mean? 2018-01-10T01:31:43Z Bike: parse-namestring-using-host is a generic function, and it doesn't have any methods that would fit the classes of those objects. 2018-01-10T01:32:49Z jasom: ebrasca: looks like a mezanno specific thing froggey can help maybe? 2018-01-10T01:33:58Z damke joined #lisp 2018-01-10T01:34:31Z ebrasca: jasom: ok 2018-01-10T01:35:23Z aeth: Bike: Is it possible to write hygienic macros in CL without any libraries? If not, is it possible to write hygienic macros in CL with introspect-environment? Or is there some vital information missing? https://github.com/Bike/introspect-environment 2018-01-10T01:35:43Z aeth: The main thing I know about hygienic macros is that they require knowledge of the environment. 2018-01-10T01:36:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T01:36:21Z Bike: not something i care about, but maybe see https://pdfs.semanticscholar.org/8b69/c81fff9a5ecebdd0a5839536eb7d716d8b5b.pdf 2018-01-10T01:37:03Z warweasle quit (Ping timeout: 248 seconds) 2018-01-10T01:37:12Z |3b| joined #lisp 2018-01-10T01:37:54Z esthlos quit (Remote host closed the connection) 2018-01-10T01:38:10Z esthlos joined #lisp 2018-01-10T01:40:36Z esthlos quit (Remote host closed the connection) 2018-01-10T01:40:50Z esthlos joined #lisp 2018-01-10T01:41:35Z smaster joined #lisp 2018-01-10T01:42:00Z smasta quit (Ping timeout: 260 seconds) 2018-01-10T01:43:27Z pagnol quit (Ping timeout: 248 seconds) 2018-01-10T01:45:45Z aeth: hmm... I might actually write cl-cl after cl-scheme. 2018-01-10T01:47:21Z aeth: Here's why: I think I could actually produce faster CL code by generating CL code from CL code since cl-cl would be able to analyze the whole program and essentially automatically apply little optimization tricks. 2018-01-10T01:49:06Z damke_ joined #lisp 2018-01-10T01:51:21Z damke quit (Ping timeout: 264 seconds) 2018-01-10T01:51:45Z openthesky quit (Quit: Page closed) 2018-01-10T01:52:02Z warweasle joined #lisp 2018-01-10T01:53:04Z fortitude_ joined #lisp 2018-01-10T01:53:28Z fikka joined #lisp 2018-01-10T01:58:09Z asarch: "Today, I want to use CLISP instead of SBCL" <- Is there any way to start SLIME with a different Lisp? 2018-01-10T01:59:30Z sigjuice: asarch: C-u M-x slime 2018-01-10T01:59:38Z ebrasca: asarch: I think with (setq inferior-lisp-program "clisp") 2018-01-10T01:59:47Z reverse_light joined #lisp 2018-01-10T02:00:04Z asarch: ebrasca, yeah but from a different lisp from .emacs file 2018-01-10T02:00:40Z ebrasca: asarch: It is in my init.el file 2018-01-10T02:01:06Z asarch: Thank you sigjuice 2018-01-10T02:01:37Z ebrasca: asarch: https://github.com/slime/slime 2018-01-10T02:02:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T02:03:46Z sigjuice: asarch: the Run Lisp: prompt in the minibuffer should also have history, accessible by / 2018-01-10T02:04:47Z raynold: ahh it's a wonderful day 2018-01-10T02:04:57Z test1600 quit (Ping timeout: 240 seconds) 2018-01-10T02:05:45Z d4ryus quit (Ping timeout: 264 seconds) 2018-01-10T02:07:15Z asarch: Thank you guys 2018-01-10T02:07:20Z asarch: Thank you very much :-) 2018-01-10T02:09:29Z nkfx joined #lisp 2018-01-10T02:10:20Z sigjuice: This is also super convenient for trying out a different version of an SBCL binary release. There is no need to "install" anything. C-u M-x slime ~/sbcl-1.4.3-x86-linux/run-sbcl.sh RET 2018-01-10T02:10:57Z red-dot joined #lisp 2018-01-10T02:11:29Z smurfrobot quit (Remote host closed the connection) 2018-01-10T02:12:30Z nkfx quit (Quit: leaving) 2018-01-10T02:13:18Z orivej joined #lisp 2018-01-10T02:18:41Z smurfrobot joined #lisp 2018-01-10T02:22:53Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-10T02:22:55Z asarch: Thank you 2018-01-10T02:23:12Z asarch: What is the correct way to exit from Slime? 2018-01-10T02:23:24Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-10T02:26:26Z sigjuice: asarch I am not sure. I was wondering the same thing myself a couple of days ago. 2018-01-10T02:26:45Z ebrasca: asarch: Maybe " M-x slime-quit-lisp " 2018-01-10T02:27:44Z asarch: Because "Do you want to kill to process?" is quite terrible 2018-01-10T02:28:44Z turkja joined #lisp 2018-01-10T02:29:13Z sigjuice: ebrasca thanks! 2018-01-10T02:30:24Z sigjuice: hmm. seems to leave behind a dead *slime-repl sbcl* buffer. 2018-01-10T02:31:01Z asarch: You can kill it with C-x k 2018-01-10T02:31:10Z asarch: Thanks ebrasca 2018-01-10T02:35:45Z jstypo quit (Ping timeout: 264 seconds) 2018-01-10T02:41:35Z smurfrobot joined #lisp 2018-01-10T02:41:44Z sigjuice: Also leaves behind a *slime-events* buffer. C-h f slime-quit-lisp RET says "Quit lisp, kill the inferior process and associated buffers.". 2018-01-10T02:42:17Z felideon quit (Ping timeout: 276 seconds) 2018-01-10T02:42:25Z felideon joined #lisp 2018-01-10T02:42:56Z RichardPaulBck[m quit (Ping timeout: 276 seconds) 2018-01-10T02:42:56Z cryptomarauder quit (Ping timeout: 276 seconds) 2018-01-10T02:43:43Z sigjuice: I have way too many buffers, so an extra couple here or there doesn't bother me :) 2018-01-10T02:46:23Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-10T02:47:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-10T02:48:29Z jstypo joined #lisp 2018-01-10T02:51:35Z FreeBirdLjj joined #lisp 2018-01-10T02:52:38Z orivej joined #lisp 2018-01-10T02:54:40Z RichardPaulBck[m joined #lisp 2018-01-10T02:54:52Z cryptomarauder joined #lisp 2018-01-10T02:56:01Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-10T03:00:30Z damke joined #lisp 2018-01-10T03:01:02Z sjl joined #lisp 2018-01-10T03:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T03:05:57Z sjl quit (Ping timeout: 268 seconds) 2018-01-10T03:06:00Z khisanth_ quit (Ping timeout: 260 seconds) 2018-01-10T03:13:17Z varjag joined #lisp 2018-01-10T03:14:09Z Oladon quit (Quit: Leaving.) 2018-01-10T03:15:38Z d4ryus1 joined #lisp 2018-01-10T03:15:44Z wigust quit (Ping timeout: 248 seconds) 2018-01-10T03:17:40Z varjag quit (Ping timeout: 260 seconds) 2018-01-10T03:20:14Z pierpa joined #lisp 2018-01-10T03:20:49Z khisanth_ joined #lisp 2018-01-10T03:25:52Z lemoinem quit (Read error: Connection reset by peer) 2018-01-10T03:26:18Z lemoinem joined #lisp 2018-01-10T03:29:46Z jmercouris: does anyone use mezzano as their primary os? 2018-01-10T03:31:14Z damke_ joined #lisp 2018-01-10T03:33:57Z damke quit (Ping timeout: 264 seconds) 2018-01-10T03:38:03Z nika joined #lisp 2018-01-10T03:39:40Z damke joined #lisp 2018-01-10T03:41:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T03:42:26Z smurfrobot joined #lisp 2018-01-10T03:43:35Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-10T03:43:52Z ebrasca: jmercouris: Probably not used as primary os , but I can start mezzano in my PC bare metal. 2018-01-10T03:44:54Z warweasle quit (Quit: Leaving) 2018-01-10T03:45:33Z quazimodo joined #lisp 2018-01-10T03:47:05Z ircbrowse quit (Ping timeout: 240 seconds) 2018-01-10T03:47:13Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-10T03:50:03Z jmercouris: no way? that's amazing 2018-01-10T03:50:18Z jmercouris: did you have to write your own drivers? 2018-01-10T03:52:04Z ircbrowse joined #lisp 2018-01-10T03:55:01Z sz0_ joined #lisp 2018-01-10T03:55:45Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T03:55:57Z Patzy quit (Ping timeout: 240 seconds) 2018-01-10T03:57:55Z Patzy joined #lisp 2018-01-10T03:59:59Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T04:05:16Z red-dot joined #lisp 2018-01-10T04:05:38Z JonSmith joined #lisp 2018-01-10T04:06:53Z orivej quit (Ping timeout: 252 seconds) 2018-01-10T04:07:52Z ebrasca: jmercouris: I have don't write my own drivers. 2018-01-10T04:10:07Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-10T04:12:37Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-10T04:16:37Z mhd quit (Ping timeout: 180 seconds) 2018-01-10T04:16:52Z mhd quit (Ping timeout: 265 seconds) 2018-01-10T04:18:05Z misv quit (Ping timeout: 240 seconds) 2018-01-10T04:19:04Z misv joined #lisp 2018-01-10T04:19:27Z beach: Good morning everyone! 2018-01-10T04:20:02Z Kaisyu7 joined #lisp 2018-01-10T04:22:07Z brandonz quit (Quit: WeeChat 2.0) 2018-01-10T04:22:11Z ebrasca: beach: Good morning 2018-01-10T04:23:32Z fikka joined #lisp 2018-01-10T04:26:25Z smurfrobot joined #lisp 2018-01-10T04:28:05Z Oladon joined #lisp 2018-01-10T04:31:10Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-10T04:35:00Z ebrasca-mezzano joined #lisp 2018-01-10T04:35:06Z ebrasca-mezzano: Hi 2018-01-10T04:35:22Z ebrasca-mezzano quit (Client Quit) 2018-01-10T04:42:00Z schoppenhauer quit (Ping timeout: 265 seconds) 2018-01-10T04:43:42Z schoppenhauer joined #lisp 2018-01-10T04:51:44Z orivej joined #lisp 2018-01-10T04:55:16Z aeth: Is it possible to use static-vectors (which appears to be terribly documented) to allocate a big chunk of memory and use a subset of it? This appears to be very possible in C: static-vector-pointer has an offset parameter, which is either in bits or bytes (again, terrible documentation... I'm guessing bytes?) so the byte size given in cffi:foreign-type-size definitely can work there. 2018-01-10T04:57:21Z orivej quit (Ping timeout: 264 seconds) 2018-01-10T04:57:53Z aeth: (Although it looks like making an offset pointer appears to be a complicated, consing process) 2018-01-10T04:58:47Z turkja quit (Ping timeout: 276 seconds) 2018-01-10T04:59:57Z pankracy quit (Ping timeout: 240 seconds) 2018-01-10T05:00:38Z pankracy joined #lisp 2018-01-10T05:01:51Z Bike quit (Quit: Lost terminal) 2018-01-10T05:02:01Z pierpa: looks like an implementation specific question 2018-01-10T05:02:12Z aeth: It looks like in SBCL's implementation part, you *can*, but not in general. 2018-01-10T05:02:38Z aeth: So one possibility would be to patch it to make it work in general, but another possibility is to just work with offsets. 2018-01-10T05:02:47Z shka joined #lisp 2018-01-10T05:02:55Z aeth: So some range 2018-01-10T05:03:32Z aeth: I think an issue with working with a range, though, is that the function could bounds check each aref, which could become expensive for a large range (e.g. 16) 2018-01-10T05:06:30Z schasta joined #lisp 2018-01-10T05:08:15Z aeth: At least in the SBCL I am on, not only does it have an INVALID-ARRAY-INDEX-ERROR for each index, it also doesn't appear to be smart enough to remove those checks automatically if I first do a manual length check 2018-01-10T05:08:35Z SuperJen quit (Ping timeout: 240 seconds) 2018-01-10T05:09:05Z pierpa quit (Quit: Page closed) 2018-01-10T05:09:57Z smaster quit (Ping timeout: 264 seconds) 2018-01-10T05:10:52Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T05:11:08Z broccolistem quit (Ping timeout: 268 seconds) 2018-01-10T05:12:48Z pillton: That problem is hard. 2018-01-10T05:13:16Z red-dot joined #lisp 2018-01-10T05:13:27Z pillton: I created the operator unsafe-row-major-aref for that purpose. 2018-01-10T05:13:44Z varjag joined #lisp 2018-01-10T05:15:19Z aeth: well, now I have a problem. 2018-01-10T05:15:36Z aeth: The function is 1253 bytes when it knows the length, so inlining is out of the question 2018-01-10T05:17:37Z orivej joined #lisp 2018-01-10T05:17:39Z aeth: Without known lengths, it's 5834 bytes. 2018-01-10T05:17:53Z varjag quit (Ping timeout: 248 seconds) 2018-01-10T05:18:01Z aeth: It looks like it does 143 bounds checks 2018-01-10T05:18:23Z aeth: s/143/144/ 2018-01-10T05:19:26Z aeth: That could be replaced with just 3 if safety is 0, which people say never to do 2018-01-10T05:19:33Z aeth: (3 manual bounds checks) 2018-01-10T05:19:37Z wigust joined #lisp 2018-01-10T05:20:52Z pillton: Replace the aref with unsafe-aref so the (safety 0) is limited to an area. 2018-01-10T05:21:24Z pillton: i.e. (locally (declare (safety 0)) (aref ...)) 2018-01-10T05:22:11Z aeth: aha 2018-01-10T05:22:49Z aeth: that keeps the other elements of the safety, which declaring the whole function unsafe would not do 2018-01-10T05:22:58Z aeth: smart idea 2018-01-10T05:24:13Z pillton: There are references in the book "Types and Programming Languages" by Pierce which discuss the subject of automatically removing array bound checks. 2018-01-10T05:24:36Z mathrick joined #lisp 2018-01-10T05:24:44Z aeth: What's the correct way to manually do my own bounds checking? 2018-01-10T05:26:14Z pillton: Before any loops? 2018-01-10T05:26:15Z aeth: I guess if it's always a fixed size range only give the starting point of the range, and check that the (> (length foo) (+ start range-length)) 2018-01-10T05:28:29Z aeth: but should I throw an error? 2018-01-10T05:28:48Z pillton: What else would you? 2018-01-10T05:31:54Z turkja joined #lisp 2018-01-10T05:32:47Z orivej quit (Ping timeout: 248 seconds) 2018-01-10T05:34:11Z orivej joined #lisp 2018-01-10T05:36:22Z asarch quit (Quit: Leaving) 2018-01-10T05:36:51Z FreeBirdLjj joined #lisp 2018-01-10T05:38:58Z aeth: Well, I could do something fancier. Is there something like this? #-(safety 0) 2018-01-10T05:39:24Z aeth: because otherwise it would perform worse with global safety 0 because it forces some limited bounds checks that otherwise wouldn't be there 2018-01-10T05:41:15Z SaganMan joined #lisp 2018-01-10T05:41:41Z FreeBirdLjj quit (Ping timeout: 276 seconds) 2018-01-10T05:44:37Z pillton: aeth: What about? https://hastebin.com/orasicikat.lisp 2018-01-10T05:45:35Z orivej quit (Ping timeout: 248 seconds) 2018-01-10T05:46:10Z pillton: I don't understand the last comment. 2018-01-10T05:48:11Z broccolistem joined #lisp 2018-01-10T05:48:15Z aeth: pillton: I mean, is there a way to only do something when safety > 0? 2018-01-10T05:48:43Z pillton: I think CLtL2 has support for inspecting optimize declarations. 2018-01-10T05:48:46Z aeth: Otherwise, if the program is compiled with (safety 0) I will have accidentally introduced some safety to it 2018-01-10T05:49:16Z pillton: I'm happy to live with that decision. 2018-01-10T05:51:34Z brandonz joined #lisp 2018-01-10T05:52:05Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-10T05:52:07Z smurfrobot joined #lisp 2018-01-10T05:56:39Z chens joined #lisp 2018-01-10T05:59:01Z vtomole joined #lisp 2018-01-10T06:00:50Z damke_ joined #lisp 2018-01-10T06:00:57Z damke quit (Ping timeout: 265 seconds) 2018-01-10T06:01:25Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-10T06:01:31Z orivej joined #lisp 2018-01-10T06:06:36Z damke joined #lisp 2018-01-10T06:08:49Z damke_ quit (Ping timeout: 252 seconds) 2018-01-10T06:12:34Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-01-10T06:13:24Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T06:13:41Z orivej joined #lisp 2018-01-10T06:14:24Z red-dot joined #lisp 2018-01-10T06:14:33Z fortitude__ joined #lisp 2018-01-10T06:17:05Z xrash quit (Remote host closed the connection) 2018-01-10T06:18:30Z fortitude_ quit (Ping timeout: 260 seconds) 2018-01-10T06:19:26Z larme quit (Ping timeout: 252 seconds) 2018-01-10T06:20:43Z damke_ joined #lisp 2018-01-10T06:21:24Z LocaMocha joined #lisp 2018-01-10T06:22:16Z mishoo_ joined #lisp 2018-01-10T06:22:19Z damke quit (Read error: Connection reset by peer) 2018-01-10T06:24:01Z vibs29 quit (Ping timeout: 248 seconds) 2018-01-10T06:24:49Z damke joined #lisp 2018-01-10T06:26:52Z vibs29 joined #lisp 2018-01-10T06:27:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T06:27:21Z damke_ quit (Ping timeout: 263 seconds) 2018-01-10T06:32:35Z Karl_Dscc joined #lisp 2018-01-10T06:35:27Z oleo quit (Quit: Leaving) 2018-01-10T06:37:04Z sjl joined #lisp 2018-01-10T06:37:09Z Oladon quit (Quit: Leaving.) 2018-01-10T06:37:39Z damke_ joined #lisp 2018-01-10T06:39:57Z damke quit (Ping timeout: 264 seconds) 2018-01-10T06:41:27Z sjl quit (Ping timeout: 240 seconds) 2018-01-10T06:45:53Z larme joined #lisp 2018-01-10T06:48:35Z dec0n joined #lisp 2018-01-10T06:59:52Z smurfrobot joined #lisp 2018-01-10T07:01:10Z fikka joined #lisp 2018-01-10T07:04:35Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-10T07:08:43Z damke joined #lisp 2018-01-10T07:09:19Z scymtym quit (Ping timeout: 248 seconds) 2018-01-10T07:09:51Z fouric quit (Ping timeout: 248 seconds) 2018-01-10T07:09:53Z smurfrobot joined #lisp 2018-01-10T07:09:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T07:10:29Z fouric joined #lisp 2018-01-10T07:10:33Z orivej quit (Ping timeout: 256 seconds) 2018-01-10T07:13:01Z cromachina quit (Read error: Connection reset by peer) 2018-01-10T07:14:11Z varjag joined #lisp 2018-01-10T07:14:45Z damke quit (Ping timeout: 246 seconds) 2018-01-10T07:15:19Z damke joined #lisp 2018-01-10T07:18:55Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-10T07:18:57Z varjag quit (Ping timeout: 264 seconds) 2018-01-10T07:19:10Z shifty quit (Ping timeout: 260 seconds) 2018-01-10T07:20:17Z damke_ joined #lisp 2018-01-10T07:22:27Z damke quit (Ping timeout: 246 seconds) 2018-01-10T07:23:43Z mishoo_ quit (Ping timeout: 268 seconds) 2018-01-10T07:26:01Z Karl_Dscc quit (Remote host closed the connection) 2018-01-10T07:27:42Z damke joined #lisp 2018-01-10T07:28:02Z varjag joined #lisp 2018-01-10T07:30:36Z shka quit (Read error: Connection reset by peer) 2018-01-10T07:30:49Z shka joined #lisp 2018-01-10T07:30:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T07:32:27Z varjag quit (Ping timeout: 240 seconds) 2018-01-10T07:33:35Z flamebeard joined #lisp 2018-01-10T07:35:34Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-01-10T07:36:55Z dvdmuckle joined #lisp 2018-01-10T07:42:33Z otwieracz joined #lisp 2018-01-10T07:42:49Z Cthulhux joined #lisp 2018-01-10T07:46:28Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-10T07:47:03Z jameser joined #lisp 2018-01-10T07:49:02Z varjag joined #lisp 2018-01-10T07:51:27Z mishoo joined #lisp 2018-01-10T07:56:38Z xaotuk joined #lisp 2018-01-10T07:57:32Z murii joined #lisp 2018-01-10T07:58:11Z fikka quit (Ping timeout: 276 seconds) 2018-01-10T07:59:45Z jfb4 quit (Ping timeout: 264 seconds) 2018-01-10T08:02:46Z phoe: pillton: correct, it has a mechanism for that, you can use its functions inside macros. 2018-01-10T08:02:53Z phoe: because you'll have the env object there. 2018-01-10T08:03:47Z Shinmera: borei: Any reason you're implementing yet another linalg system? 2018-01-10T08:03:51Z fikka joined #lisp 2018-01-10T08:04:24Z Shinmera: Instead of using one of the dozens that are already out there 2018-01-10T08:05:15Z vhost- quit (Ping timeout: 260 seconds) 2018-01-10T08:06:19Z vhost- joined #lisp 2018-01-10T08:06:41Z jfb4 joined #lisp 2018-01-10T08:08:49Z shaftoe joined #lisp 2018-01-10T08:09:04Z pfdietz quit 2018-01-10T08:11:42Z jdz: Your regular reminder: don't use (SAFETY 0). 2018-01-10T08:15:08Z xaotuk quit (Ping timeout: 255 seconds) 2018-01-10T08:15:50Z fortitude_ joined #lisp 2018-01-10T08:16:40Z varjagg joined #lisp 2018-01-10T08:19:50Z fortitude__ quit (Ping timeout: 268 seconds) 2018-01-10T08:21:05Z varjagg quit (Ping timeout: 240 seconds) 2018-01-10T08:21:54Z d4ryus1 is now known as d4ryus 2018-01-10T08:22:33Z QualityAddict quit (Ping timeout: 264 seconds) 2018-01-10T08:25:35Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-10T08:25:37Z vhost- quit (Ping timeout: 248 seconds) 2018-01-10T08:26:45Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-10T08:27:45Z jfb4 joined #lisp 2018-01-10T08:28:24Z vtomole quit (Ping timeout: 260 seconds) 2018-01-10T08:29:05Z vhost- joined #lisp 2018-01-10T08:29:52Z jameser joined #lisp 2018-01-10T08:30:49Z scymtym joined #lisp 2018-01-10T08:31:19Z beach: jdz: Sadly, many of the discussions here involve using Common Lisp to do unsafe things such as accessing memory directly. 2018-01-10T08:32:18Z schweers joined #lisp 2018-01-10T08:34:02Z broccolistem quit (Ping timeout: 252 seconds) 2018-01-10T08:37:12Z broccolistem joined #lisp 2018-01-10T08:38:29Z quazimodo quit (Ping timeout: 276 seconds) 2018-01-10T08:38:29Z marusich joined #lisp 2018-01-10T08:39:09Z jasom: beach: sadly the rest of the world is unsafe and we have to interact with it 2018-01-10T08:39:34Z beach: I disagree. That's a choice. 2018-01-10T08:39:52Z jasom: much of the time the choice is between unsafe and irrelevant 2018-01-10T08:40:52Z beach: Well, since most people think Common Lisp is irrelevant as well, then one might as well use a language that is unsafe by design, rather than trying to twist an otherwise safe language into doing unsafe things. 2018-01-10T08:44:09Z damke quit (Ping timeout: 264 seconds) 2018-01-10T08:45:56Z scymtym quit (Remote host closed the connection) 2018-01-10T08:50:35Z scymtym joined #lisp 2018-01-10T08:51:09Z p_l: beach: I'd argue that since our computational substrate doesn't provide some higher abstraction by itself, we should strive to give all the power we can while simultaneously making the easy problems trivial, hard problems easy, and insane problems doable, for the end user of the tool 2018-01-10T08:52:47Z beach: And we do that by turning Common Lisp into just another unsafe language? 2018-01-10T08:56:01Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T08:56:14Z jackdaniel: while direct memory access may be considered unsafe it is only a minor bug which may be avoided (that is a case for using language which manage memory for the programmer, I'm all for that and we have a lot of mainstream languages doing that too) - avoiding this class of problems doesn't make a language safe though 2018-01-10T08:57:14Z beach: So you are saying, Common Lisp is unsafe anyway, so we might as well go the extra mile to make it totally useless? 2018-01-10T08:57:28Z jackdaniel: no, that is not what I'm saying 2018-01-10T08:57:51Z beach: Enlighten me! 2018-01-10T08:58:39Z jackdaniel: what I'm saying is that trading "unsafe" language to Common Lisp is trading one "unsafe" language to another "unsafe" language, so it is not a very good argument to switch 2018-01-10T08:58:46Z jarwin joined #lisp 2018-01-10T08:58:49Z jackdaniel: happily CL has many other very good qualities which are very appealing 2018-01-10T08:58:52Z jarwin is now known as Jarwin 2018-01-10T09:00:20Z jackdaniel: (for instance Java doesn't have direct memory access but many people seem to dislike it and software written in it still has bugs which lead to unsafe behavior, yet some of bloat could be mitigated with macro abstraction which it lacks) 2018-01-10T09:00:48Z aeth: Imo CL is about controlling when evaluation happens 2018-01-10T09:01:48Z p_l: beach: CL is "safer" in the default state. Essentially giving "sane defaults" while at the same time providing ways to expand *when needed* 2018-01-10T09:02:01Z otwieracz: Do you have any ideas for examples how to handle file upload properly with clack/ningle? 2018-01-10T09:02:17Z p_l: beach: someone nicely described "low-level language" as one where issues irrelevant to problem being solved are important :) 2018-01-10T09:04:47Z varjag: could anyone suggest an example of code handling cl+ssl errors? 2018-01-10T09:05:10Z aeth: And I'd love not to have to use CFFI at all. If we add window, input, sound, and 3D graphics to the next version of the standard, I guess that'll get rid of a lot of reasons to use it. 2018-01-10T09:05:18Z mingus joined #lisp 2018-01-10T09:05:20Z aeth: Shift more work to the implementers 2018-01-10T09:05:23Z varjag: i wrap it into handler-case trying to invoke continue restarts 2018-01-10T09:05:29Z varjag: but it is probably not very intelligent 2018-01-10T09:05:50Z shaftoe quit (Quit: WeeChat 2.0.1) 2018-01-10T09:06:32Z hhdave joined #lisp 2018-01-10T09:07:21Z shaftoe joined #lisp 2018-01-10T09:08:42Z jackdaniel: /another kind of safety improvement would be static typing which some could argue (me included) would be an overkill for CL/ 2018-01-10T09:09:10Z aeth: jackdaniel: My Lisp is mostly typed 2018-01-10T09:09:13Z fikka joined #lisp 2018-01-10T09:09:13Z damke joined #lisp 2018-01-10T09:09:31Z jackdaniel: good for you ;-) 2018-01-10T09:09:45Z aeth: Because CL has sequence-generic and number-generic things, declaring types for sequences/arrays and numbers makes a big difference. 2018-01-10T09:09:54Z aeth: I don't think it really matters for anything else. 2018-01-10T09:10:10Z aeth: I think the compiler can normally tell what type is expected by what functions are being used on it, although I could be wrong. 2018-01-10T09:10:46Z aeth: I do wish it was standard that type declarations checked and aren't assumed when safety != 0, though 2018-01-10T09:10:58Z aeth: A lot of code assumes this, including mine 2018-01-10T09:11:05Z jackdaniel: aeth: by static typing I don't mean declarations but rather some enforcement from the compiler to make various informations certain and available at compilation time 2018-01-10T09:11:19Z jackdaniel: so some class of issues may be compromised before running the code 2018-01-10T09:11:27Z vibs29 quit (Ping timeout: 248 seconds) 2018-01-10T09:11:51Z aeth: jackdaniel: It could be done, there would just need to be a way to handle functions differently. 2018-01-10T09:12:01Z Jarwin quit (Ping timeout: 248 seconds) 2018-01-10T09:12:10Z jackdaniel: maybe, that's not my point though 2018-01-10T09:12:12Z fiddlerwoaroof_: That sort of thing is feasible to implement as a macro. 2018-01-10T09:12:16Z beach: jackdaniel: Static typing is known to be undecidable. 2018-01-10T09:12:23Z vibs29 joined #lisp 2018-01-10T09:12:49Z aeth: fiddlerwoaroof_: pretty much, you'd just wrap a function foo with (the return-type (foo ...)) or (the (values return-type-0 return-type-1) (foo ...)) 2018-01-10T09:12:57Z beach: jackdaniel: So what they do with languages that enforce static typing is to make the type system so restrictive that it severely hinders programmer productivity. 2018-01-10T09:12:57Z aeth: the issue is if you recompile foo at runtime, though 2018-01-10T09:13:22Z jackdaniel: beach: that's what I mean by "overkill" 2018-01-10T09:13:36Z damke quit (Read error: Connection reset by peer) 2018-01-10T09:13:40Z damke_ joined #lisp 2018-01-10T09:13:45Z beach: I see, yes. 2018-01-10T09:14:29Z fiddlerwoaroof_: minion: memo for Xach: I added a new Makefile to the repository that should work without any external dependencies. Just Make -f Makefile.minimal mkapp 2018-01-10T09:14:30Z Jarwin joined #lisp 2018-01-10T09:14:31Z minion: Remembered. I'll tell Xach when he/she/it next speaks. 2018-01-10T09:16:11Z damke joined #lisp 2018-01-10T09:16:55Z pagnol joined #lisp 2018-01-10T09:18:48Z damke__ joined #lisp 2018-01-10T09:18:57Z damke_ quit (Ping timeout: 265 seconds) 2018-01-10T09:20:20Z aeth: jackdaniel: I think the future is a mix between static and dynamic typing within one language 2018-01-10T09:20:53Z aeth: Languages are slowly inching their way in that direction in different ways (of course, Lisp has always had type declarations) 2018-01-10T09:21:09Z pillton: beach: The discussion I had with aeth regarding unsafe array access was to eliminate redundant index checks. 2018-01-10T09:21:23Z p_l: aeth: having graphics et al in standard is quick way for obsolescence 2018-01-10T09:21:32Z beach: pillton: I know. 2018-01-10T09:21:47Z p_l: (look at COBOL, which has graphics in standard for example...) 2018-01-10T09:21:49Z orivej joined #lisp 2018-01-10T09:21:52Z Shinmera: beach: I don't /want/ to do unsafe stuff, but I do want to get things done. Sometimes getting things done requires doing unsafe stuff. The benefit is that others won't have to anymore once someone has made a library that does it for them. 2018-01-10T09:21:57Z aeth: Ideally I can do one check before tons of arefs instead of one check on every aref. Very niche situation to need so many arefs, pretty much just matrix* 2018-01-10T09:21:57Z damke quit (Ping timeout: 264 seconds) 2018-01-10T09:22:11Z paratox joined #lisp 2018-01-10T09:22:25Z aeth: p_l: Tech is moving more slowly now, though. 2018-01-10T09:22:45Z phoe: nowadays software becomes slow faster than hardware becomes fast 2018-01-10T09:22:54Z jackdaniel: Tech is moving more slowly now, though, and it moves backwards as a bonus! ;-) 2018-01-10T09:23:04Z aeth: p_l: Stuff from 2010 is still prefectly viable today, and for the foreseeable future. 2018-01-10T09:23:13Z aeth: In 2000, stuff from 1992 was absolutely obsolete 2018-01-10T09:23:21Z jackdaniel uses technology standarized in 1994 2018-01-10T09:23:24Z Shinmera: jackdaniel: In actuality tech is moving more like a dry cleaner. The same stuff being done over and over. 2018-01-10T09:23:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T09:23:45Z Shinmera: And eventually someone changes the laundry 2018-01-10T09:23:45Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T09:24:03Z aeth: jackdaniel: Tech totally moved backwards with apps + web. 2018-01-10T09:24:05Z beach: Shinmera: I totally agree. Stuff like that should be isolated behind some Common Lisp abstraction layer. The reason I uttered something in the first place, is that the discussions here are disproportionately about unsafe stuff, suggesting that not only do we hide stuff behind abstractions, but many applications programmers do it as a normal part of the application. 2018-01-10T09:24:13Z p_l: language standards take time, and just for graphics in one API family there were significant changes since 2000. Let's see, around 5 big changes? 2018-01-10T09:24:16Z jackdaniel: Shinmera: if it were just that. as an example: websockets are build on top of ton of abstractions, which when peeked at the bottom is build on top of sockets 2018-01-10T09:24:23Z jackdaniel: so it is rather a mudball which grows 2018-01-10T09:24:25Z jackdaniel: than a dry cleaner 2018-01-10T09:24:42Z Shinmera: So a clogged up washing machine? :^) 2018-01-10T09:24:52Z p_l: with toddlers playing in mud 2018-01-10T09:24:59Z pillton: beach: Ok. I don't really classify this problem as wanting to make CL programs unsafe. 2018-01-10T09:25:01Z aeth: beach: It might just be because the FFI stuff is harder and less obvious than native Lisp stuff 2018-01-10T09:25:09Z Shinmera: p_l: That even includes the unsafety angle! Perfect 2018-01-10T09:25:20Z beach: I am also very surprised that we still continue to claim that some features must be IN THE STANDARD in order to be useful, even though many people use languages without any standard whatsoever, and many others use libraries that are not part of the standard of the programming language they have chosen to use. 2018-01-10T09:25:30Z phoe: ^ 2018-01-10T09:25:38Z aeth: I was joking about putting graphics in the standard 2018-01-10T09:25:48Z aeth: Apparently the COBOL people heard me and did so with a time machine, though 2018-01-10T09:26:08Z p_l: beach: true. Personally, I'd rather see more cooperation on the CDR front, as essentially "enshrining" common library code 2018-01-10T09:26:23Z mrSpec joined #lisp 2018-01-10T09:26:25Z beach: p_l: That sounds very good to me. 2018-01-10T09:26:40Z mrSpec quit (Changing host) 2018-01-10T09:26:40Z mrSpec joined #lisp 2018-01-10T09:26:47Z p_l: aeth: the standard even includes "visual" laying out of the UI! ;) 2018-01-10T09:27:01Z aeth: p_l: If SBCL, CCL, and ECL developers can agree on some language extension (CDR or otherwise), it will reach most users, at least in #lisp 2018-01-10T09:27:13Z aeth: But if SBCL, CCL, and ECL developers ignore it, then it probably won't reach too many people 2018-01-10T09:27:22Z Shinmera: aeth: Visual Basic would like to have a word 2018-01-10T09:27:42Z aeth: SBCL, CCl, ECL, ABCL, CLISP, CMUCL, MKCL, Clasp, and Mezzano are the only living FOSS implementations I could find. 2018-01-10T09:28:03Z alexmlw joined #lisp 2018-01-10T09:28:03Z aeth: MKCL does not seem to be very popular. 2018-01-10T09:28:06Z p_l: aeth: I think a bunch of people would have to band to work on implementation of such extensions, because frankly speaking I think current set of developers already has enough on their plate 2018-01-10T09:28:15Z jackdaniel: well, many extensions are agreed upon, or have a reasonable portability layer 2018-01-10T09:28:15Z p_l: aeth: does MKCL even live anymore? 2018-01-10T09:28:21Z aeth: p_l: I am not sure 2018-01-10T09:28:24Z aeth: p_l: It seems to have updates 2018-01-10T09:28:27Z jackdaniel: p_l: it does 2018-01-10T09:28:35Z aeth: https://common-lisp.net/project/mkcl/ 2018-01-10T09:28:39Z aeth: It got an update one year ago 2018-01-10T09:28:43Z p_l: ... color me surprised 2018-01-10T09:29:01Z p_l has long ago relegated it into same closet as GCL 2018-01-10T09:29:02Z eschatologist quit (Quit: ZNC 1.6.5+deb2build2 - http://znc.in) 2018-01-10T09:29:07Z jackdaniel: since when updating website is a prime way to judge activity? 2018-01-10T09:29:28Z jackdaniel checks in his memos where he should start doing that 2018-01-10T09:29:34Z aeth: MKCL is the only one I can't access through Roswell to run tests on. Well, I can't access Clasp, either, because it has a compilation error, but I can't see that compilation error from Roswell, I just see a Lisp stack trace saying the subprocess make failed 2018-01-10T09:29:35Z MrBusiness3 quit (Ping timeout: 265 seconds) 2018-01-10T09:29:41Z MrBusiness joined #lisp 2018-01-10T09:29:43Z Cymew joined #lisp 2018-01-10T09:29:57Z phoe: https://github.com/jcbeaudoin/MKCL/commits/master 2018-01-10T09:30:08Z jackdaniel: I've tried Roswell, dumped it after one wasteful day 2018-01-10T09:30:10Z aeth: jackdaniel: The website announced a release 2017-01-18 and 2014-07-04 2018-01-10T09:30:16Z pjb joined #lisp 2018-01-10T09:30:27Z aeth: jackdaniel: roswell is not very stable... it has issues with its C 2018-01-10T09:30:32Z jackdaniel: read my question again – release /= activity 2018-01-10T09:30:40Z aeth: If someone made something like Roswell entirely in CL, that would be great. 2018-01-10T09:30:41Z eschatologist joined #lisp 2018-01-10T09:30:56Z jackdaniel: and roswell has more issues with its abstraction, it was impossible for me to add hand-compiled implementation to it (even if it was sbcl) 2018-01-10T09:31:01Z aeth: I don't use Roswell to get access of CL in general, I use it to get access of CLs that would be hard to get access to manually. 2018-01-10T09:31:10Z p_l: use a statically-linked ECL-built roswell replacement? ;) 2018-01-10T09:31:26Z jackdaniel dives in his stuff, see you \o 2018-01-10T09:31:53Z aeth: p_l: that would help... what really is needed in general is some way to run tests on SBCL, CCL, ECL, ABCL, CLISP, CMUCL, and Clasp. 2018-01-10T09:32:11Z aeth: Ideally in a way that's more convenient than manually building all of those 2018-01-10T09:32:26Z p_l: there's already some harness for running tests on many implementations 2018-01-10T09:33:44Z aeth: Well, not all tests are well-defined in test suites, sometimes SLIME is useful. 2018-01-10T09:34:03Z orivej quit (Ping timeout: 246 seconds) 2018-01-10T09:34:35Z aeth: There might be an alternative that does SLIME + testing, I'd love to know, I'd consider using it instead if it's more stable 2018-01-10T09:34:44Z aeth: It took me an hour or so to fix Roswell last time I updated it and it broke 2018-01-10T09:35:01Z fikka joined #lisp 2018-01-10T09:35:36Z Cymew: A community vote system really would be a nice thing to have, integrated in ql and in github. 2018-01-10T09:36:33Z pjb: write the code! 2018-01-10T09:36:54Z pjb: (vote '(write the code) 'Cymew) 2018-01-10T09:37:22Z pjb: with (ql:quickload :cymew-vote) (use-package :cymew-vote) 2018-01-10T09:37:35Z aeth: p_l: and, yeah, it would have to take a lot of coordination (and perhaps one person who knows the internals of several implementations) to get some extensions 2018-01-10T09:37:49Z aeth: Cymew: voting on what? 2018-01-10T09:37:52Z Cymew: :) 2018-01-10T09:38:00Z dddddd joined #lisp 2018-01-10T09:38:07Z p_l: rubygems-like backend could be nice as well, to extend ql 2018-01-10T09:38:07Z pjb: (cymew-vote:open-elections) --> ((write the code) …) 2018-01-10T09:38:31Z Cymew: aeth: "This system is good and alive -> 5 stars" or "This system is not maintained -> 1 star". 2018-01-10T09:38:54Z Cymew: Something you could use when quickloading to see if you need to bother. 2018-01-10T09:39:24Z aeth: Cymew: only if there's a second star system for documentation 2018-01-10T09:39:34Z Cymew: I actually started to read the quicklisp code to figure out how to add features to it, then a paying job came around... 2018-01-10T09:39:53Z aeth: I would say with the majority of libraries I have to read the code because there's essentially 0 documentation 2018-01-10T09:40:10Z pjb: yea, paying jobs, the curse of all good thing. Promote Universal Basic Income! 2018-01-10T09:40:11Z Cymew: aeth: I think the exact details could be discussed, but yes I agree that is very important. 2018-01-10T09:41:02Z aeth: Rating based on documentation would be tricky, though, because do you reset it if it adds documentation? 2018-01-10T09:41:08Z jackdaniel: that sounds like a way for people who don't do to say people who do what to do ;-) 2018-01-10T09:41:10Z beach: Cymew: I think a voting system is an excellent idea. That's the main problem with finding something appropriate, namely knowing the opinions of others. 2018-01-10T09:42:09Z aeth: jackdaniel: but if there's a 5-star library with 1-star documentation, that gives someone looking for something to do a good suggestion of what they can do 2018-01-10T09:42:12Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-10T09:42:27Z aeth: I don't think people are going to reject documentation patches unless they're incorrect 2018-01-10T09:43:27Z randomstrangerb joined #lisp 2018-01-10T09:45:37Z aeth: On the subject of documentation, how many public classes have :documentation filled out? 2018-01-10T09:45:43Z aeth: probably not many 2018-01-10T09:47:34Z Shinmera can't wait for the inevitable drama of people getting upset over their libraries getting low ratings 2018-01-10T09:48:34Z Shinmera: aeth: I document all types. 2018-01-10T09:48:54Z Shinmera: So you won't find (:documentation "foo") in my code, but that doesn't mean it isn't documented 2018-01-10T09:50:18Z jackdaniel: I rate it 2-stars, wait for `(:documentation …)` patches ;-) 2018-01-10T09:50:44Z BitPuffin joined #lisp 2018-01-10T09:54:43Z damke__ joined #lisp 2018-01-10T09:55:01Z _death: we could inflict ratings on other languages :d 2018-01-10T09:55:18Z aeth: 2/10, cannot evaluate at read time 2018-01-10T09:57:26Z phoe: I go for #'(setf documentation) sometimes 2018-01-10T10:08:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T10:10:21Z afterK joined #lisp 2018-01-10T10:10:21Z afterK quit (Changing host) 2018-01-10T10:10:21Z afterK joined #lisp 2018-01-10T10:12:13Z afterK quit (Client Quit) 2018-01-10T10:13:10Z sjl joined #lisp 2018-01-10T10:13:43Z BitPuffin quit (Remote host closed the connection) 2018-01-10T10:15:00Z BitPuffin joined #lisp 2018-01-10T10:17:08Z varjagg joined #lisp 2018-01-10T10:17:35Z sjl quit (Ping timeout: 248 seconds) 2018-01-10T10:21:47Z varjagg quit (Ping timeout: 265 seconds) 2018-01-10T10:22:47Z angavrilov joined #lisp 2018-01-10T10:28:12Z chens quit (Remote host closed the connection) 2018-01-10T10:30:44Z attila_lendvai42 joined #lisp 2018-01-10T10:32:27Z drewc_ quit (Ping timeout: 240 seconds) 2018-01-10T10:33:44Z Jarwin quit (Ping timeout: 255 seconds) 2018-01-10T10:35:50Z knicklux joined #lisp 2018-01-10T10:36:31Z attila_lendvai42 quit (Ping timeout: 240 seconds) 2018-01-10T10:49:52Z fikka quit (Ping timeout: 252 seconds) 2018-01-10T10:50:36Z scottj quit (Quit: leaving) 2018-01-10T10:51:08Z attila_lendvai42 joined #lisp 2018-01-10T10:51:14Z orivej joined #lisp 2018-01-10T10:54:40Z shaftoe: there's a voting system already... the library downloads per month or how many other libraries depend on it 2018-01-10T10:54:49Z shaftoe: popularity might be a better word 2018-01-10T10:55:16Z shaftoe: you might give split-sequence 1 star, but it's one of the more heavily depended on and downloaded libs 2018-01-10T10:55:20Z shaftoe: likewise alexandria 2018-01-10T10:55:38Z phoe: alexandria actually has docs 2018-01-10T10:55:45Z phoe: (even though it's outdated) 2018-01-10T10:55:56Z shaftoe: alexandria draft manual from whenever 2018-01-10T10:56:48Z Shinmera: shaftoe: That doesn't reflect popularity nor how good a system is 2018-01-10T10:56:59Z Shinmera: The download stats are heavily falsified by CI systems 2018-01-10T10:57:01Z fikka joined #lisp 2018-01-10T10:57:08Z shaftoe: point taken 2018-01-10T10:57:53Z Shinmera: Or, well, not falsified, but tainted. 2018-01-10T10:58:00Z shaftoe: one example where a popularity/rating system would be handy, was with graph libraries... there's at least 3 on quicklisp with various licenses and featuresets 2018-01-10T10:58:17Z shaftoe: logging would be another 2018-01-10T10:58:30Z Shinmera: https://i.imgur.com/dsm1Eg9.png 2018-01-10T10:58:32Z Shinmera: err 2018-01-10T10:58:35Z Shinmera: https://sites.google.com/site/sabraonthehill/comparison-of-lisp-logging-libraries 2018-01-10T10:58:52Z shaftoe: which reminds me of another post, i think from same site 2018-01-10T10:58:55Z shaftoe: on json libs 2018-01-10T10:59:05Z arbv quit (Ping timeout: 240 seconds) 2018-01-10T10:59:08Z Shinmera: Unfortunately the above is already quite a bit outdated 2018-01-10T10:59:08Z shaftoe: json, http, logging, etc 2018-01-10T10:59:11Z Shinmera: at least when it comes to Verbose 2018-01-10T11:01:46Z jameser_ joined #lisp 2018-01-10T11:02:51Z Jarwin joined #lisp 2018-01-10T11:04:46Z shaftoe: likewise, updated for 2018 comparison articles would be good material for any aspiring lisp blogger 2018-01-10T11:05:39Z shaftoe: a "how to benchmark lisp packages" would also be useful 2018-01-10T11:06:00Z nika quit (Remote host closed the connection) 2018-01-10T11:06:02Z jameser quit (Ping timeout: 276 seconds) 2018-01-10T11:06:07Z jameser_ quit (Ping timeout: 248 seconds) 2018-01-10T11:06:11Z Shinmera: Benchmarking is the same problem in any language. The tricky bit is finding representative samples. 2018-01-10T11:06:18Z makomo joined #lisp 2018-01-10T11:06:39Z ebzzry joined #lisp 2018-01-10T11:06:44Z nika joined #lisp 2018-01-10T11:06:51Z ebzzry: In SLIME, is there a way to muffle the warnings caused by `sb-ext:*on-package-variance*` 2018-01-10T11:07:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-10T11:07:34Z makomo quit (Client Quit) 2018-01-10T11:07:40Z makomo joined #lisp 2018-01-10T11:08:24Z makomo quit (Client Quit) 2018-01-10T11:08:30Z makomo joined #lisp 2018-01-10T11:08:47Z makomo quit (Client Quit) 2018-01-10T11:09:57Z makomo joined #lisp 2018-01-10T11:10:46Z damke__ joined #lisp 2018-01-10T11:10:49Z nirved joined #lisp 2018-01-10T11:11:20Z nika quit (Ping timeout: 260 seconds) 2018-01-10T11:11:27Z fikka joined #lisp 2018-01-10T11:14:19Z makomo quit (Client Quit) 2018-01-10T11:14:31Z makomo joined #lisp 2018-01-10T11:14:41Z makomo quit (Client Quit) 2018-01-10T11:14:58Z makomo joined #lisp 2018-01-10T11:16:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-10T11:21:46Z Shinmera: The easiest way is to not vary your packages. 2018-01-10T11:22:13Z aeth: There are some libraries I don't like that I download anyway because they're dependencies of dependencies of dependencies of dependencies. 2018-01-10T11:22:52Z aeth: As in, I would never actually select those libraries for a project. I won't name names, though. 2018-01-10T11:23:11Z aeth: So download count isn't that useful 2018-01-10T11:23:21Z Shinmera: If they're any of mine I'd be happy to know 2018-01-10T11:23:49Z phoe: ditto 2018-01-10T11:24:27Z margeas joined #lisp 2018-01-10T11:25:07Z Shinmera: Mostly because I can't wait to have my self degradation validated. 2018-01-10T11:25:21Z knicklux quit (Remote host closed the connection) 2018-01-10T11:26:06Z damke joined #lisp 2018-01-10T11:27:32Z damke quit (Read error: Connection reset by peer) 2018-01-10T11:29:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T11:29:18Z fikka joined #lisp 2018-01-10T11:29:25Z m00natic joined #lisp 2018-01-10T11:29:47Z damke joined #lisp 2018-01-10T11:30:31Z pjb: Shinmera: https://www.youtube.com/watch?v=4FOU_aD00Sk 2018-01-10T11:30:52Z aeth: Nah, most of the libraries I don't like were from the 2000-2010 era of Lisp, possibly without even having any updates since that time. Usually unpatched for years. Probably abandoned. 2018-01-10T11:31:11Z aeth: Library quality is higher these days. 2018-01-10T11:32:00Z Shinmera: Aw maaan 2018-01-10T11:32:21Z pjb: Shinmera: you live dangerously… 2018-01-10T11:32:31Z Shinmera: pjb: Hm? 2018-01-10T11:32:51Z pjb: With your pizza pictures! 2018-01-10T11:33:04Z Shinmera: Ah. That was taken from a "worst pizza ever" thread 2018-01-10T11:33:20Z Shinmera: Anyway, pizza crimes are probably for #lispcafe 2018-01-10T11:33:53Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T11:34:22Z fikka joined #lisp 2018-01-10T11:34:25Z pagnol quit (Ping timeout: 248 seconds) 2018-01-10T11:35:09Z damke quit (Ping timeout: 246 seconds) 2018-01-10T11:35:21Z JenElizabeth joined #lisp 2018-01-10T11:36:24Z fe[nl]ix: aeth: such as ? 2018-01-10T11:37:36Z attila_lendvai42 quit (Ping timeout: 248 seconds) 2018-01-10T11:37:52Z damke joined #lisp 2018-01-10T11:38:05Z aeth: I'll name one because it's fairly common and because it's bad and because I've criticized it here before. A bit newer than the time range I was talking about. cl-json. 2018-01-10T11:38:46Z jameser joined #lisp 2018-01-10T11:39:50Z aeth: Its default settings are just so bad, e.g. nil <-> null and nil <- false 2018-01-10T11:39:55Z fikka quit (Ping timeout: 260 seconds) 2018-01-10T11:40:23Z aeth: Unless its documentation is wrong. I'll test it out since I already have it downloaded 2018-01-10T11:40:55Z dieggsy joined #lisp 2018-01-10T11:41:23Z aeth: Nope, nil produces "null". Someone honestly sat down and thought generating "null" was a more reasonable default than "false". 2018-01-10T11:42:12Z pagnol joined #lisp 2018-01-10T11:42:19Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-10T11:43:08Z aeth: It has good documentation, though 2018-01-10T11:43:28Z makomo quit (Ping timeout: 265 seconds) 2018-01-10T11:43:36Z smurfrobot joined #lisp 2018-01-10T11:46:02Z fikka joined #lisp 2018-01-10T11:48:17Z damke_ joined #lisp 2018-01-10T11:48:56Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-10T11:49:16Z orivej quit (Ping timeout: 252 seconds) 2018-01-10T11:51:21Z damke quit (Ping timeout: 264 seconds) 2018-01-10T11:51:41Z damke__ joined #lisp 2018-01-10T11:51:58Z Cymew quit (Read error: Connection reset by peer) 2018-01-10T11:52:10Z smurfrobot joined #lisp 2018-01-10T11:53:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-10T11:53:44Z orivej joined #lisp 2018-01-10T11:54:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T11:55:31Z SaganMan quit (Quit: laters) 2018-01-10T11:56:15Z wigust quit (Ping timeout: 248 seconds) 2018-01-10T11:56:31Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-10T11:56:45Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T11:57:03Z Cymew joined #lisp 2018-01-10T11:57:51Z orivej quit (Ping timeout: 240 seconds) 2018-01-10T12:09:07Z fikka joined #lisp 2018-01-10T12:10:11Z smurfrobot joined #lisp 2018-01-10T12:14:55Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-10T12:15:05Z pagnol quit (Quit: Ex-Chat) 2018-01-10T12:16:11Z Tobbi joined #lisp 2018-01-10T12:18:52Z Tristam joined #lisp 2018-01-10T12:19:00Z smurfrobot joined #lisp 2018-01-10T12:22:09Z jameser joined #lisp 2018-01-10T12:23:49Z jameser quit (Client Quit) 2018-01-10T12:24:02Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-10T12:24:02Z Tristam quit (Ping timeout: 276 seconds) 2018-01-10T12:24:30Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T12:24:59Z QualityAddict joined #lisp 2018-01-10T12:28:01Z dieggsy quit (Remote host closed the connection) 2018-01-10T12:29:16Z schweers: quick question: given a file-descriptor (on linux), can I create a common lisp file-stream? 2018-01-10T12:30:40Z red-dot joined #lisp 2018-01-10T12:30:48Z smurfrobot joined #lisp 2018-01-10T12:32:58Z jackdaniel: yes, but not portably 2018-01-10T12:33:14Z jackdaniel: it may be called for instance ext:make-fd-stream 2018-01-10T12:33:28Z schweers: so I’ll have to write code for each implementation I’d like to use? 2018-01-10T12:33:39Z jackdaniel: check out how its done in osicat or usocket (don't remember exactly) 2018-01-10T12:33:49Z jackdaniel: yes, but it is basically a oneliner for each implementation 2018-01-10T12:33:58Z jackdaniel: you may create trivial-fd-streams portability layer 2018-01-10T12:34:31Z schweers: oh, I may have just found such a thing: https://github.com/cffi-posix/fd-stream 2018-01-10T12:34:31Z schweers: 2018-01-10T12:35:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-10T12:38:23Z mingus quit (Ping timeout: 255 seconds) 2018-01-10T12:39:13Z damke__ joined #lisp 2018-01-10T12:44:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T12:51:06Z fikka quit (Ping timeout: 246 seconds) 2018-01-10T12:51:30Z mingus joined #lisp 2018-01-10T12:53:12Z shifty joined #lisp 2018-01-10T12:56:33Z fikka joined #lisp 2018-01-10T12:58:12Z Jarwin quit (Remote host closed the connection) 2018-01-10T12:59:09Z dec0n quit (Read error: Connection reset by peer) 2018-01-10T13:01:35Z fikka_ joined #lisp 2018-01-10T13:02:15Z fikka quit (Ping timeout: 265 seconds) 2018-01-10T13:04:30Z EvW joined #lisp 2018-01-10T13:05:09Z zaquest quit (Remote host closed the connection) 2018-01-10T13:05:41Z reverse_light quit (Remote host closed the connection) 2018-01-10T13:06:47Z smurfrobot joined #lisp 2018-01-10T13:09:12Z zaquest joined #lisp 2018-01-10T13:12:20Z _paul0 joined #lisp 2018-01-10T13:15:43Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-10T13:16:02Z paul0 quit (Ping timeout: 276 seconds) 2018-01-10T13:19:32Z djeis joined #lisp 2018-01-10T13:27:32Z smurfrobot joined #lisp 2018-01-10T13:27:37Z makomo joined #lisp 2018-01-10T13:30:35Z tazjin joined #lisp 2018-01-10T13:31:26Z tazjin: has anyone here used this JWT/JOSE implementation? https://github.com/fukamachi/jose 2018-01-10T13:32:03Z smurfrobot quit (Ping timeout: 246 seconds) 2018-01-10T13:32:25Z djeis_ joined #lisp 2018-01-10T13:32:46Z djeis_ quit (Client Quit) 2018-01-10T13:32:57Z djeis_ joined #lisp 2018-01-10T13:34:51Z djeis quit (Ping timeout: 240 seconds) 2018-01-10T13:35:33Z djeis_ quit (Client Quit) 2018-01-10T13:38:08Z fikka joined #lisp 2018-01-10T13:38:25Z Cymew: Nope 2018-01-10T13:39:42Z Cymew: I do note a distinct shortage of docs, as per our earlier conversation in this channel. Have seen worse, though. 2018-01-10T13:41:15Z fikka_ quit (Ping timeout: 260 seconds) 2018-01-10T13:42:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-10T13:43:59Z djeis_ joined #lisp 2018-01-10T13:44:12Z djeis_ is now known as djeis 2018-01-10T13:44:47Z tazjin: Cymew: assuming you're responding to me, the docs shortage isn't really the problem (API is very straightforward), it just doesn't quite seem to do what I expect :P 2018-01-10T13:45:45Z schasta quit (Ping timeout: 265 seconds) 2018-01-10T13:48:52Z Cymew: That would be a problem. Myself, I have not used it. The author have written quite a few systems, and not all easy to use. I suspect overexposure to ruby, considering how some of the web stuff looks like. 2018-01-10T13:49:51Z msb joined #lisp 2018-01-10T13:49:52Z fikka joined #lisp 2018-01-10T13:50:17Z EvW quit (Ping timeout: 252 seconds) 2018-01-10T13:50:37Z damke__ joined #lisp 2018-01-10T13:50:42Z EvW1 joined #lisp 2018-01-10T13:53:22Z djeis quit (Remote host closed the connection) 2018-01-10T13:56:05Z orivej joined #lisp 2018-01-10T13:58:00Z Jesin quit (Quit: Leaving) 2018-01-10T13:59:09Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-10T14:02:24Z djeis joined #lisp 2018-01-10T14:04:11Z wxie joined #lisp 2018-01-10T14:04:52Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-10T14:04:57Z murii quit (Remote host closed the connection) 2018-01-10T14:05:48Z djeis quit (Read error: Connection reset by peer) 2018-01-10T14:08:07Z smurfrobot joined #lisp 2018-01-10T14:11:51Z fikka quit (Ping timeout: 265 seconds) 2018-01-10T14:12:10Z asarch joined #lisp 2018-01-10T14:25:00Z fikka joined #lisp 2018-01-10T14:27:42Z test1600 joined #lisp 2018-01-10T14:28:48Z zaquest quit (Remote host closed the connection) 2018-01-10T14:29:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-10T14:29:34Z flamebeard quit (Quit: Leaving) 2018-01-10T14:31:00Z zaquest joined #lisp 2018-01-10T14:31:56Z wxie quit (Remote host closed the connection) 2018-01-10T14:33:31Z sjl joined #lisp 2018-01-10T14:33:32Z dtornabene joined #lisp 2018-01-10T14:35:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T14:36:02Z flamebeard joined #lisp 2018-01-10T14:36:43Z asarch: Today is Knuth's birthday 2018-01-10T14:37:03Z damke__ joined #lisp 2018-01-10T14:39:06Z Murii joined #lisp 2018-01-10T14:40:10Z Fare joined #lisp 2018-01-10T14:41:38Z damke joined #lisp 2018-01-10T14:42:08Z drewc joined #lisp 2018-01-10T14:42:57Z damke__ quit (Ping timeout: 264 seconds) 2018-01-10T14:43:25Z fikka joined #lisp 2018-01-10T14:44:02Z smurfrobot quit (Remote host closed the connection) 2018-01-10T14:44:23Z Shinmera: For those using the Plaster paste service there's now an Emacs extension for added convenience. https://github.com/Shirakumo/plaster#emacs-integration 2018-01-10T14:47:16Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T14:49:35Z red-dot joined #lisp 2018-01-10T14:53:27Z makomo: fuka 2018-01-10T14:53:34Z makomo: woopsie... 2018-01-10T14:53:45Z rippa joined #lisp 2018-01-10T14:56:22Z dieggsy joined #lisp 2018-01-10T15:00:27Z zaquest quit (Ping timeout: 240 seconds) 2018-01-10T15:01:57Z damke_ joined #lisp 2018-01-10T15:04:28Z SN joined #lisp 2018-01-10T15:05:09Z damke quit (Ping timeout: 263 seconds) 2018-01-10T15:06:28Z JenElizabeth quit (Remote host closed the connection) 2018-01-10T15:06:48Z JenElizabeth joined #lisp 2018-01-10T15:07:11Z red-dot quit (Ping timeout: 248 seconds) 2018-01-10T15:07:14Z SN is now known as red-dot 2018-01-10T15:07:43Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-10T15:08:04Z mishoo quit (Ping timeout: 268 seconds) 2018-01-10T15:08:16Z smurfrobot joined #lisp 2018-01-10T15:08:59Z randomstrangerb joined #lisp 2018-01-10T15:12:40Z kobain joined #lisp 2018-01-10T15:12:51Z smurfrobot quit (Ping timeout: 246 seconds) 2018-01-10T15:14:21Z nika joined #lisp 2018-01-10T15:15:01Z zaquest joined #lisp 2018-01-10T15:15:05Z sz0_ quit (Quit: Connection closed for inactivity) 2018-01-10T15:16:47Z JuanDaugherty joined #lisp 2018-01-10T15:18:01Z JenElizabeth quit (Remote host closed the connection) 2018-01-10T15:20:31Z FreeBirdLjj joined #lisp 2018-01-10T15:20:45Z jstypo quit (Remote host closed the connection) 2018-01-10T15:21:40Z JenElizabeth joined #lisp 2018-01-10T15:22:38Z Timzi joined #lisp 2018-01-10T15:24:47Z oleo joined #lisp 2018-01-10T15:27:16Z hexfive joined #lisp 2018-01-10T15:28:24Z Timzi quit (Remote host closed the connection) 2018-01-10T15:29:10Z flamebeard quit (Quit: Leaving) 2018-01-10T15:29:34Z phoe: machi 2018-01-10T15:30:00Z domovod quit (Quit: WeeChat 2.0.1) 2018-01-10T15:30:33Z Bike joined #lisp 2018-01-10T15:31:59Z LiamH joined #lisp 2018-01-10T15:32:03Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-10T15:33:07Z sjl: flip214: good news: the vlime author appears to be fine https://twitter.com/l04m33/status/951091266187493376 2018-01-10T15:33:16Z milanj joined #lisp 2018-01-10T15:33:16Z sjl: flip214: bad news is that they don't intend to continue working on vlime 2018-01-10T15:33:54Z smurfrobot joined #lisp 2018-01-10T15:35:12Z smurfrobot quit (Remote host closed the connection) 2018-01-10T15:41:07Z zaquest quit (Quit: Leaving) 2018-01-10T15:43:19Z rumbler31 joined #lisp 2018-01-10T15:44:55Z smurfrobot joined #lisp 2018-01-10T15:45:27Z crsc: Nice to know. I installed vlime yesterday and it works fine for me. Hopefully he will come back in the future. 2018-01-10T15:46:08Z dlowe: I suspect someone else should probably pick it up 2018-01-10T15:46:13Z dlowe: Maybe YOU 2018-01-10T15:46:45Z sjl: It's pretty well documented, and the code is pretty clean from what I remember. 2018-01-10T15:49:27Z raynold quit (Quit: Connection closed for inactivity) 2018-01-10T15:49:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T15:49:56Z mishoo joined #lisp 2018-01-10T15:50:35Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-10T15:50:58Z red-dot joined #lisp 2018-01-10T15:52:38Z jfb4 joined #lisp 2018-01-10T15:56:05Z dieggsy quit (Remote host closed the connection) 2018-01-10T16:13:31Z JonSmith joined #lisp 2018-01-10T16:21:42Z makomo: hm wait, sjl is steve losh? :-) 2018-01-10T16:21:54Z sjl: yeah 2018-01-10T16:22:13Z makomo: hah, hi there :D, i watched your (old?) stream about running lisp on an arudino and solving some PE problems 2018-01-10T16:22:21Z sjl: I generally use my initials for more tech-related things like github/irc and longer names for non tech stuff like photos 2018-01-10T16:22:26Z makomo: and also saw that cool-retro-term terminal emulator there 2018-01-10T16:22:36Z sjl: Oh, cool. I need to get back to streaming. Haven't done any over the holidays. 2018-01-10T16:22:48Z Jesin joined #lisp 2018-01-10T16:24:57Z eudoxia joined #lisp 2018-01-10T16:26:57Z turkja quit (Ping timeout: 240 seconds) 2018-01-10T16:30:04Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-10T16:36:47Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-10T16:37:27Z smurfrobot quit (Remote host closed the connection) 2018-01-10T16:38:00Z randomstrangerb joined #lisp 2018-01-10T16:39:29Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T16:40:56Z python476 joined #lisp 2018-01-10T16:42:11Z EvW1 quit (Ping timeout: 240 seconds) 2018-01-10T16:44:25Z eivarv joined #lisp 2018-01-10T16:44:39Z fikka joined #lisp 2018-01-10T16:51:31Z bgardner quit (Ping timeout: 240 seconds) 2018-01-10T16:51:34Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T16:52:14Z hexfive quit (Read error: Connection reset by peer) 2018-01-10T16:52:17Z red-dot joined #lisp 2018-01-10T16:53:12Z hexfive joined #lisp 2018-01-10T16:53:24Z FreeBirdLjj joined #lisp 2018-01-10T16:55:24Z varjag joined #lisp 2018-01-10T16:55:45Z smurfrobot joined #lisp 2018-01-10T16:58:19Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-10T17:01:18Z Jesin quit (Quit: Leaving) 2018-01-10T17:01:45Z hexfive quit (Remote host closed the connection) 2018-01-10T17:02:36Z hexfive joined #lisp 2018-01-10T17:08:17Z schweers quit (Remote host closed the connection) 2018-01-10T17:11:56Z papachan joined #lisp 2018-01-10T17:12:27Z smurfrobot quit (Remote host closed the connection) 2018-01-10T17:13:49Z ebdreger joined #lisp 2018-01-10T17:13:54Z marusich quit (Quit: Leaving) 2018-01-10T17:15:05Z igemnace joined #lisp 2018-01-10T17:18:53Z fortitude_ quit (Ping timeout: 252 seconds) 2018-01-10T17:19:25Z dieggsy joined #lisp 2018-01-10T17:19:33Z al-damiri joined #lisp 2018-01-10T17:23:09Z Karl_Dscc joined #lisp 2018-01-10T17:25:40Z fikka quit (Quit: leaving) 2018-01-10T17:25:55Z fikka joined #lisp 2018-01-10T17:26:20Z jmercouris joined #lisp 2018-01-10T17:26:30Z jmercouris: good evening 2018-01-10T17:28:42Z beach: Hello jmercouris. 2018-01-10T17:30:34Z phoe: Hey everyone 2018-01-10T17:30:43Z phoe: (that was a very short hey, since I have to run now) 2018-01-10T17:32:14Z jmercouris: hello, good bye :D 2018-01-10T17:33:26Z rpg joined #lisp 2018-01-10T17:35:45Z Murii quit (Ping timeout: 260 seconds) 2018-01-10T17:36:14Z dtornabene quit (Remote host closed the connection) 2018-01-10T17:36:27Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-10T17:37:20Z randomstrangerb quit (Ping timeout: 276 seconds) 2018-01-10T17:38:32Z randomstrangerb joined #lisp 2018-01-10T17:42:23Z hhdave quit (Ping timeout: 248 seconds) 2018-01-10T17:47:29Z BitPuffin quit (Ping timeout: 252 seconds) 2018-01-10T17:51:59Z nika quit 2018-01-10T17:52:51Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T17:53:30Z red-dot joined #lisp 2018-01-10T17:59:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-10T17:59:34Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-10T18:01:04Z drcode quit (Ping timeout: 248 seconds) 2018-01-10T18:01:58Z m00natic quit (Remote host closed the connection) 2018-01-10T18:02:53Z jpxe quit (Read error: Connection reset by peer) 2018-01-10T18:03:52Z fikka joined #lisp 2018-01-10T18:05:17Z jarwin joined #lisp 2018-01-10T18:05:17Z jarwin is now known as Jarwin 2018-01-10T18:05:29Z SuperJen joined #lisp 2018-01-10T18:06:36Z drcode joined #lisp 2018-01-10T18:08:42Z drcode quit (Read error: Connection reset by peer) 2018-01-10T18:09:37Z drcode joined #lisp 2018-01-10T18:09:50Z JenElizabeth quit (Ping timeout: 276 seconds) 2018-01-10T18:10:41Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T18:12:57Z Jarwin quit (Ping timeout: 264 seconds) 2018-01-10T18:13:17Z smurfrobot joined #lisp 2018-01-10T18:14:09Z test1600 quit (Ping timeout: 264 seconds) 2018-01-10T18:14:55Z shka: good evening 2018-01-10T18:14:59Z Jarwin joined #lisp 2018-01-10T18:17:55Z zaquest joined #lisp 2018-01-10T18:18:09Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-10T18:19:46Z smurfrobot joined #lisp 2018-01-10T18:21:29Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-10T18:22:08Z fikka joined #lisp 2018-01-10T18:22:44Z randomstrangerb joined #lisp 2018-01-10T18:23:15Z scymtym quit (Ping timeout: 246 seconds) 2018-01-10T18:23:29Z fortitude joined #lisp 2018-01-10T18:35:46Z Cthulhux quit (Changing host) 2018-01-10T18:35:46Z Cthulhux joined #lisp 2018-01-10T18:53:37Z smurfrobot quit (Remote host closed the connection) 2018-01-10T18:53:37Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T18:54:56Z red-dot joined #lisp 2018-01-10T18:55:26Z makomo joined #lisp 2018-01-10T18:58:05Z raynold joined #lisp 2018-01-10T19:00:02Z kobain quit (Ping timeout: 272 seconds) 2018-01-10T19:02:50Z gilez joined #lisp 2018-01-10T19:05:18Z sonologico joined #lisp 2018-01-10T19:15:59Z python476 quit (Read error: Connection reset by peer) 2018-01-10T19:26:59Z makomo: if i have a file with, in order, some defclasses, some defuns and in the end some defconstants whose value forms create instances of the previously introduced classes 2018-01-10T19:27:15Z makomo: what's the reason i get an error message from SBCL? 2018-01-10T19:27:30Z makomo: are the defconstants not evaluated only once everything before in the file has been evaluated? 2018-01-10T19:27:34Z phoe: makomo: (eval-when (:compile-toplevel :load-toplevel :execute) ...) 2018-01-10T19:27:45Z phoe: put your defclasses and defuns inside this eval-when 2018-01-10T19:27:56Z Shinmera: clhs defconstant 2018-01-10T19:27:56Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_defcon.htm 2018-01-10T19:28:01Z ebdreger: makomo: classess and functions not available until done processing file, unless you wrap with ... what phoe said. 2018-01-10T19:28:04Z makomo: phoe: i looked at that but i would like to know what the underlying problem is 2018-01-10T19:28:21Z ebdreger: makomo: compile time versus load time versus execution time :) 2018-01-10T19:28:23Z Shinmera: "An implementation may choose to evaluate the value-form at compile time, load time, or both." 2018-01-10T19:28:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T19:28:35Z Shinmera: Whereas classes only exist at load-time 2018-01-10T19:28:37Z makomo: Shinmera: i saw that too 2018-01-10T19:28:43Z makomo: ah, that's what i was missing 2018-01-10T19:28:49Z Shinmera: Also defconstant is a bad idea anyway 2018-01-10T19:28:53Z Shinmera: just use defvar 2018-01-10T19:28:54Z phoe: especially with classes 2018-01-10T19:29:00Z ebdreger nods at shinmera 2018-01-10T19:29:03Z LocaMocha quit (Ping timeout: 248 seconds) 2018-01-10T19:29:12Z phoe: since you'll be able to arbitrarily mess with the instance's slots anyway. 2018-01-10T19:29:17Z ebdreger: or use alexandria's define-constant (or similar) 2018-01-10T19:29:30Z makomo: that's a good point i guess 2018-01-10T19:29:31Z phoe: only the reference to the instance will be constant, the slots themselves won't. 2018-01-10T19:29:32Z warweasle joined #lisp 2018-01-10T19:29:33Z ebdreger: repeated invocation of defconstant from repl will give you pain 2018-01-10T19:29:43Z phoe: this too - it sucks for development 2018-01-10T19:29:45Z makomo: yeah, even thought i don't play on mutating the instances afterwards 2018-01-10T19:29:47Z ebdreger: (for certain data types) 2018-01-10T19:29:58Z makomo: yeah, it does, i have to choose the appropriate restart all the time 2018-01-10T19:31:06Z ebdreger: or use an alternative that checks equality using something a little more permissive 2018-01-10T19:31:08Z Shinmera: The points at which using defconstant is a good idea are exceedingly rare 2018-01-10T19:31:12Z makomo: is there some kind of a summary/description of the different phases that lisp has in one place? 2018-01-10T19:31:17Z ebdreger: cf.: eq versus eql versus equal versus equalp 2018-01-10T19:31:31Z makomo: i have a vague idea of what they are, but i would like a more in-depth explanation 2018-01-10T19:32:06Z Shinmera: There's four phases: read-time, compile-time, load-time, and execution-time 2018-01-10T19:32:22Z Shinmera: read-time turns strings into expressions 2018-01-10T19:32:37Z Shinmera: compile-time turns expressions into.. well, compiled objects 2018-01-10T19:33:15Z Shinmera: load-time happens during the loading of a file, after the file has already been compiled, or a form has been compiled 2018-01-10T19:33:26Z Shinmera: and execution time happens when code is evaluated. 2018-01-10T19:33:30Z makomo: does "loading" refers specifically to loading files? 2018-01-10T19:33:34Z Shinmera: Yes 2018-01-10T19:33:34Z phoe: (also macroexpansion-time that runs during compile-time whenever a macro needs to be expanded) 2018-01-10T19:33:38Z makomo: or can you say that a form is being loaded? 2018-01-10T19:33:40Z makomo: ah 2018-01-10T19:33:51Z Shinmera: A "form" is an expression meant to be evaluated 2018-01-10T19:34:01Z Shinmera: So a form can undergo loading, I suppose. 2018-01-10T19:34:09Z phoe: clhs load 2018-01-10T19:34:09Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_load.htm 2018-01-10T19:34:24Z phoe: clhs glossary/load 2018-01-10T19:34:24Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_l.htm#load 2018-01-10T19:34:38Z phoe: hm, the spec begs to disagree. it seems that loading refers only to files. 2018-01-10T19:34:44Z makomo: >to cause the code contained in the file to be executed. 2018-01-10T19:34:55Z Xach quit (Ping timeout: 248 seconds) 2018-01-10T19:35:03Z Shinmera: loading is not the same as load-time 2018-01-10T19:35:03Z makomo: so loading a file entails reading the file, compiling the file and executing the file then? 2018-01-10T19:35:19Z Shinmera: only for source files 2018-01-10T19:35:23Z Xach joined #lisp 2018-01-10T19:35:38Z Shinmera: loading a FASL won't incur compilation 2018-01-10T19:35:40Z makomo: oh i see. you're thinking of stuff liek fasls? 2018-01-10T19:35:44Z makomo: hmm right 2018-01-10T19:35:47Z makomo: like* 2018-01-10T19:36:05Z ebdreger: (it doesn't make life simpler that the compile and load phases are often blurred together by one's environment) 2018-01-10T19:36:08Z Shinmera: loading will cause either one of the following phases to happen: (read compile load execute) or (load execute) 2018-01-10T19:36:42Z Shinmera: While compile-file will cause (read compile) to happen 2018-01-10T19:36:57Z Shinmera: Note that things get more complicated still when you consider COMPILE and EVAL 2018-01-10T19:37:58Z ebdreger nods 2018-01-10T19:38:04Z makomo: yeah :^(, that's why it would be nice if the whole thing was described somewhere in one place 2018-01-10T19:38:05Z Shinmera: COMPILE will perform (compile load), though here the load is only relevant for load-time-value. 2018-01-10T19:38:22Z Shinmera: And EVAL will perform (compile load execute). 2018-01-10T19:38:24Z ebdreger: rule of thumb that makes life a little easier: don't use COMPILE or EVAL without good reason (usually dynamically-generated code that can't be created any other way) 2018-01-10T19:38:30Z Shinmera: Though EVAL only has to perform "minimal compilation" 2018-01-10T19:38:37Z Shinmera: So it can take shortcuts 2018-01-10T19:38:50Z fikka joined #lisp 2018-01-10T19:39:06Z smurfrobot joined #lisp 2018-01-10T19:39:17Z makomo: so what does load-time actually do? 2018-01-10T19:39:28Z makomo: load the function/class/etc. defs into the lisp image? 2018-01-10T19:39:34Z Shinmera: It "links" the file into the environment 2018-01-10T19:39:42Z Shinmera: or the definitions rather 2018-01-10T19:40:03Z phoe: ebdreger: I actually use compile in places like (compile nil (lambda (foo) (frob foo bar))) 2018-01-10T19:40:07Z makomo: so, if i had for example, a defun, followed by a top-level (+ 2 2) expression, followed by another defun 2018-01-10T19:40:19Z makomo: first the defuns would be loaded, and only then the (+ 2 2) expr eval'd? 2018-01-10T19:40:24Z phoe: where a lambda would do just as well, but compiled code is compiled code 2018-01-10T19:40:37Z ebdreger: phoe: ditto 2018-01-10T19:40:59Z Shinmera: makomo: depends on whether you're loading a source file or a fasl file 2018-01-10T19:41:08Z makomo: Shinmera: let's say it's a source file 2018-01-10T19:41:11Z Shinmera: makomo: in the source file case, forms are processed in order and go through all phases one by one 2018-01-10T19:41:18Z makomo: actually, i'm interested in both cases 2018-01-10T19:42:00Z Shinmera: Anyway, defuns are also evaluated. 2018-01-10T19:42:03Z makomo: Shinmera: oh, so there's an actual ordering. i thought that there might not be after what i've heard now (limiting ourselves to source files) 2018-01-10T19:42:41Z Shinmera: CL is rather strict about evaluation order in almost all things 2018-01-10T19:42:47Z Shinmera: (Thank god for that, too) 2018-01-10T19:43:26Z Shinmera: I'm not sure about the constraints of order for the load-time of a FASL. 2018-01-10T19:43:36Z Shinmera: But I think it has to be in order as well 2018-01-10T19:44:18Z Shinmera: One of the puzzling things to understand is that each phase can cause evaluation to happen 2018-01-10T19:44:37Z Shinmera: So, even if we speak of "load-time", there's probably just code being evaluated during it. 2018-01-10T19:45:03Z makomo: confusing :/ 2018-01-10T19:45:46Z Shinmera: Right. If you want to peek into the insanity of it all, read Fare's blog post on eval-when. http://fare.livejournal.com/146698.html 2018-01-10T19:47:00Z nightfly quit (Ping timeout: 260 seconds) 2018-01-10T19:47:05Z makomo: i'll give it a go 2018-01-10T19:47:22Z ebdreger: you could create a simple file: https://pastebin.com/ikesd8bv 2018-01-10T19:47:26Z ebdreger: and play with it 2018-01-10T19:47:58Z makomo: also not a bad idea, thanks 2018-01-10T19:48:07Z ebdreger: there also are fun tidbits like sb-ext:save-lisp-and-die that can help you distinguish the stages 2018-01-10T19:48:10Z Shinmera: Don't let it confuse you too much. Most of what you'll ever need to know is that some top level forms might not take effect until later, so you have to wrap them into (eval-when (:compile-toplevel :load-toplevel :execute) ..) to make their effects available at all times. 2018-01-10T19:49:04Z phoe: http://kpreid.livejournal.com/14713.html 2018-01-10T19:49:05Z phoe: woah 2018-01-10T19:49:12Z Shinmera: And you should know about load-time-value to emit constants without them needing to be FASL-dumpable. 2018-01-10T19:49:40Z makomo: i usually don't like using something without understanding the details of how it works. sometimes that's good, sometimes it leads me into a rabit hole that's hard to get out of 2018-01-10T19:49:59Z Shinmera: Well, I mean, compilation and evaluation semantics touch everything 2018-01-10T19:50:09Z Shinmera: But you really don't need to understand them in detail to use Lisp 2018-01-10T19:50:52Z nightfly joined #lisp 2018-01-10T19:52:36Z Shinmera: Anyway, I'm not the best to talk to about this either-- I feel unsure about the exact workings of some parts. beach and Bike might know better. 2018-01-10T19:53:07Z Bike: huh what 2018-01-10T19:53:53Z Shinmera: We're talking about the various evaluation times and their precise workings. 2018-01-10T19:54:44Z pmc_ joined #lisp 2018-01-10T19:55:11Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T19:55:24Z pmc_: What makes a string not a simple vector? 2018-01-10T19:55:45Z Shinmera: clhs simple-vector 2018-01-10T19:55:46Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_smp_ve.htm 2018-01-10T19:55:47Z Xach: pmc_: it is specialized for characters. simple vectors are not specialized. 2018-01-10T19:55:47Z minion: Xach, memo from fiddlerwoaroof_: I added a new Makefile to the repository that should work without any external dependencies. Just Make -f Makefile.minimal mkapp 2018-01-10T19:56:09Z pmc_: ok, thanks! 2018-01-10T19:56:20Z Xach: ...there should be a nice punchline for that seutp. 2018-01-10T19:57:00Z Shinmera: There are simple-strings, though 2018-01-10T19:57:16Z pmc_: clhs simple-string 2018-01-10T19:57:17Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_smp_st.htm 2018-01-10T19:58:16Z schasta joined #lisp 2018-01-10T19:58:45Z phoe: one of my most recent frustrations with the standard is related to the naming of simple-arrays and simple-vectors 2018-01-10T19:59:06Z phoe: ...and simple-strings 2018-01-10T19:59:09Z whoman joined #lisp 2018-01-10T19:59:31Z Shinmera: well, simple-vectors not allowing a specialisation is just weird in my opinion 2018-01-10T19:59:47Z phoe: for some reason, (simple-array type (n)) does NOT equate (simple-vector n) 2018-01-10T20:00:02Z Shinmera: like, the point of it being simple seems to me to allow optimisations 2018-01-10T20:00:02Z sjl: it is a little odd that vectors are one-dimensional arrays, but a one-dimensional simple-array is not necessarily a simple-vector 2018-01-10T20:00:03Z phoe: which would be God damn logical 2018-01-10T20:00:07Z pagnol joined #lisp 2018-01-10T20:00:19Z Shinmera: sjl: But it's still a vector! 2018-01-10T20:00:22Z phoe: #justlispthings 2018-01-10T20:00:23Z damke joined #lisp 2018-01-10T20:00:24Z sjl: yep 2018-01-10T20:00:26Z sjl: it is 2018-01-10T20:00:30Z sjl: just not a simple- one 2018-01-10T20:00:50Z sjl: naming is hard 2018-01-10T20:01:04Z rme: after tag checking, svref is a single instruction (on x86, anyway) 2018-01-10T20:02:33Z phoe: I think it's a single pointer dereference 2018-01-10T20:02:48Z phoe: because you have a vector of objects of type T 2018-01-10T20:03:02Z phoe: so you check basic tags like ones for fixnums and such, and then dereference 2018-01-10T20:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-10T20:03:42Z Shinmera: Sure, but point being if you have an immediate type you don't need to tag check, making it even faster. 2018-01-10T20:04:18Z Shinmera: Or rather, you wouldn't need to tag check if you had the element-type information 2018-01-10T20:04:28Z pjb: makomo: in any case, it is not useful to use defconstant to bind instances to variables. 2018-01-10T20:04:32Z phoe: yep, but simple-vectors are built around the idea of *not* having element-type information. 2018-01-10T20:04:40Z pjb: makomo: notice that defconstant defines (constant) _variables_. 2018-01-10T20:05:15Z scymtym joined #lisp 2018-01-10T20:05:45Z orivej quit (Ping timeout: 264 seconds) 2018-01-10T20:05:45Z makomo: pjb: yup, i'll be changing my code 2018-01-10T20:05:46Z pjb: makomo: the point of defconstant is to tell the compiler that it may generate the value as immediate value (thus making copies of the value) in the binary instructions. Therefore it's only useful for values that can be immediate in the native instruction set, ie. basically integers and characters. 2018-01-10T20:06:07Z pjb: (perhaps also floating-points). It's not useful to use defconstant on other types. 2018-01-10T20:06:31Z pjb: In general, defparameter is more useful. 2018-01-10T20:07:48Z SuperJen quit (Remote host closed the connection) 2018-01-10T20:08:07Z SuperJen joined #lisp 2018-01-10T20:16:46Z shifty quit (Ping timeout: 265 seconds) 2018-01-10T20:17:51Z warweasle is now known as warweasle_afk 2018-01-10T20:18:11Z arbv joined #lisp 2018-01-10T20:19:29Z Jarwin quit (Ping timeout: 268 seconds) 2018-01-10T20:20:35Z emaczen joined #lisp 2018-01-10T20:25:57Z shka quit (Ping timeout: 240 seconds) 2018-01-10T20:26:12Z red-dot joined #lisp 2018-01-10T20:29:32Z shka joined #lisp 2018-01-10T20:31:13Z eudoxia quit (Quit: Leaving) 2018-01-10T20:31:52Z fortitude_ joined #lisp 2018-01-10T20:32:57Z fortitude quit (Ping timeout: 240 seconds) 2018-01-10T20:39:36Z borei: is it possible to define setf for entire object, not for particular slot, but entire object ? 2018-01-10T20:40:06Z _death: (setf (entire-object object) new-value) 2018-01-10T20:42:31Z pjb: Of course. 2018-01-10T20:42:47Z warweasle_afk is now known as warweasle 2018-01-10T20:42:48Z borei: hmm, not what im looking for, better to provide example 2018-01-10T20:43:13Z borei: i have object of type matrix (for example) 2018-01-10T20:43:21Z borei: i'd like to have 2018-01-10T20:43:34Z pjb: Notice that the semantics of the slots is dependent on the class of the instance 2018-01-10T20:43:44Z borei: (setf matrix 5.0d0) - all elements of the matrix =5 2018-01-10T20:44:30Z aeth: borei: what you probably want it something like (setf (matrix-value matrix) 5.0d0) 2018-01-10T20:44:58Z borei: so it will sort of fake slot ? 2018-01-10T20:44:58Z aeth: Although it's confusing to have a setf function without an equivalent regular function and I'm not sure what a regular function would do by default. 2018-01-10T20:45:08Z aeth: You can have a writer without a reader 2018-01-10T20:45:10Z pjb: slots can contain immutable data (that can be copied), or references to immutable data (the reference can be copied, thus sharing the immutable data), or references to mutable data (that may or may not be copied, thus sharing or not sharing the mutable state), or also the may contain derived data or cached data, that is computed and updated "automatically". 2018-01-10T20:45:35Z pjb: borei: therefore we cannot give you a generic method to copy the slots from one instance to another: you have to provide it yourself! 2018-01-10T20:45:53Z borei: i got idea 2018-01-10T20:45:54Z phoe: borei: what do you mean, entire object? 2018-01-10T20:46:04Z phoe: setf is for setting places, not objects. 2018-01-10T20:46:07Z _death: you can also have (set-all-elements matrix 5.0d0) 2018-01-10T20:46:16Z borei: yep yep 2018-01-10T20:46:22Z aeth: Don't do that one 2018-01-10T20:46:29Z aeth: A writer makes perfect sense imo 2018-01-10T20:46:31Z pjb: ALERT: Edi Weitz took over cdr.eurolisp.org! 2018-01-10T20:46:31Z phoe: you can't modify whole objects in-place - you can only modify references. and places are references. 2018-01-10T20:46:39Z aeth: I use writers for strange things. 2018-01-10T20:46:49Z pjb: borei: there's a CDR specifying a copying generic function. 2018-01-10T20:46:51Z phoe: pjb: is it wat yet? 2018-01-10T20:47:06Z pjb: What does "wat" mean? 2018-01-10T20:47:19Z phoe: uh 2018-01-10T20:47:21Z phoe: is it war yet? 2018-01-10T20:47:29Z igemnace quit (Read error: Connection reset by peer) 2018-01-10T20:47:56Z igemnace joined #lisp 2018-01-10T20:47:57Z jmercouris: I still don't know what you mean, even with the correction 2018-01-10T20:47:59Z pjb: phoe: No, war is over, the USA won, and Europe is vasal. We can be raped anytime, and this occurs all the time 2018-01-10T20:48:02Z aeth: borei: If you write an accessor that only works on one value you can use with-accessors just like a CLOS accessor, and then you could do (setf matrix 5.0d0) while really calling the accessor 2018-01-10T20:48:11Z jmercouris: pjb: vassal, isn't that a french word? 2018-01-10T20:48:11Z oystewh joined #lisp 2018-01-10T20:48:26Z aeth: borei: If you write an accessor that works on more than one value, you'll have to manually use symbol-macrolet yourself, but the same principle applies 2018-01-10T20:48:49Z pjb: jmercouris: nope: https://www.merriam-webster.com/dictionary/vassal 2018-01-10T20:48:52Z aeth: (technically the setf accessor really has one more value than it looks like it has, though, the new value) 2018-01-10T20:49:05Z angavrilov quit (Remote host closed the connection) 2018-01-10T20:50:00Z jmercouris: pjb: "Middle English, borrowed from Anglo-French, borrowed from Medieval Latin vassallus" - it's kinda french :P 2018-01-10T20:50:31Z pjb: jmercouris: Not my fault if English is deficient (or should I say inexistant). 2018-01-10T20:51:05Z pjb: The fact that we don't write French here is also a hint that we lost. 2018-01-10T20:51:30Z jmercouris: pjb: something something lingua franca counting eggs too soon 2018-01-10T20:51:51Z jmercouris: there's a lot of french speaking countries that refuse to learn english, don't feel so bad :P 2018-01-10T20:52:17Z pmc_ quit (Quit: Leaving) 2018-01-10T20:52:20Z jmercouris: i like the people that suggest that we'll all be speaking chinese, like population of speakers is the only criteria for adoption of language, nevermind the impossible writing and pronounciation 2018-01-10T20:52:56Z aeth: The heart of with-accessors or something similar to it is (let ((thing (gensym))) `(let ((,thing ,object)) (declare (ignorable ,thing)) (symbol-macrolet #|fancy stuff|#) ,@body))) 2018-01-10T20:52:57Z schasta quit (Ping timeout: 240 seconds) 2018-01-10T20:53:13Z aeth: (If you want to write your own symbol-macrolets for fancier accessors) 2018-01-10T20:53:24Z aeth: But this sort of thing only works if you stick to accessors 2018-01-10T20:53:59Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-10T20:55:31Z pjb: jmercouris: Chinese, not because of the population, but because of the economic might. The USA is falling fast. 2018-01-10T20:55:54Z smurfrobot quit (Remote host closed the connection) 2018-01-10T20:55:56Z jmercouris: yeah, that's not enough, good luck learning chinese 2018-01-10T20:56:52Z pmetzger joined #lisp 2018-01-10T20:56:55Z aeth: pjb: That doesn't take into account that French was still the lingua franca after France stopped being the superpower, during pretty much the entire era of the British Empire's dominance 2018-01-10T20:56:56Z _death: chinual already has a meaning 2018-01-10T20:57:41Z aeth: English afaik really became the world language after 1945, with the primary countries of the competing languages of French and German in ruins 2018-01-10T20:59:32Z aeth: (Although even then, Russian was a competing world language through the Cold War.) 2018-01-10T21:00:16Z pjb: aeth: that's the difference between British empire and USA empire :-) 2018-01-10T21:00:25Z jmercouris: Russian was a language forced onto all of their satellite countries, I wouldn't say it was "competing" so much as "coerced" 2018-01-10T21:00:48Z aeth: well, yeah 2018-01-10T21:00:55Z jmercouris: as much as english sucks, it's an easy language to speak incorrectly and still be understood, the same cannot be said of most other languages 2018-01-10T21:00:55Z pjb: France hasn't been beaten by the United Kingdom. Europe has been beaten by the USA. 2018-01-10T21:01:11Z phoe: #lispcafe 2018-01-10T21:01:52Z pjb: jmercouris: speak incorrectly, and be understood incorrectly. 2018-01-10T21:04:45Z warweasle quit (Quit: For I have no bum and I must poo.) 2018-01-10T21:06:20Z krasnal joined #lisp 2018-01-10T21:10:17Z ebrasca left #lisp 2018-01-10T21:16:13Z fikka quit (Ping timeout: 265 seconds) 2018-01-10T21:16:36Z zmt01 joined #lisp 2018-01-10T21:17:09Z shka quit (Ping timeout: 264 seconds) 2018-01-10T21:18:18Z oystewh quit (Quit: Lost terminal) 2018-01-10T21:19:29Z zmt00 quit (Ping timeout: 248 seconds) 2018-01-10T21:22:01Z Tobbi quit (Quit: Leaving) 2018-01-10T21:22:45Z Tobbi joined #lisp 2018-01-10T21:22:56Z fikka joined #lisp 2018-01-10T21:24:35Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-10T21:25:49Z wigust joined #lisp 2018-01-10T21:26:45Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T21:27:27Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T21:27:34Z red-dot joined #lisp 2018-01-10T21:31:49Z quazimodo joined #lisp 2018-01-10T21:32:10Z Folkol joined #lisp 2018-01-10T21:34:36Z fikka joined #lisp 2018-01-10T21:35:56Z pmetzger quit 2018-01-10T21:36:21Z dyelar quit (Ping timeout: 264 seconds) 2018-01-10T21:37:59Z eivarv quit (Quit: Sleep) 2018-01-10T21:38:24Z josemanuel joined #lisp 2018-01-10T21:38:51Z Draz joined #lisp 2018-01-10T21:39:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-10T21:44:15Z xaotuk joined #lisp 2018-01-10T21:44:34Z xaotuk quit (Client Quit) 2018-01-10T21:45:11Z jmercouris: anybody working on some els papers they could use some help on? 2018-01-10T21:49:33Z Draz quit (Quit: Leaving) 2018-01-10T21:59:44Z dyelar joined #lisp 2018-01-10T22:00:07Z fikka joined #lisp 2018-01-10T22:04:33Z gilez quit (Ping timeout: 265 seconds) 2018-01-10T22:13:37Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-10T22:14:17Z Shinmera: Wish I was 2018-01-10T22:14:33Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-10T22:15:02Z Tristam joined #lisp 2018-01-10T22:15:27Z Tristam is now known as Guest97349 2018-01-10T22:16:28Z Guest97349 quit (Max SendQ exceeded) 2018-01-10T22:16:55Z rumbler31 quit (Ping timeout: 260 seconds) 2018-01-10T22:19:11Z tristam__ joined #lisp 2018-01-10T22:19:31Z fortitude_ quit (Ping timeout: 240 seconds) 2018-01-10T22:21:26Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-01-10T22:22:12Z alecigne joined #lisp 2018-01-10T22:22:45Z dvdmuckle joined #lisp 2018-01-10T22:25:58Z Jesin joined #lisp 2018-01-10T22:27:11Z tristam__ quit (Ping timeout: 248 seconds) 2018-01-10T22:28:08Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T22:28:53Z red-dot joined #lisp 2018-01-10T22:29:55Z margeas is now known as markong 2018-01-10T22:30:15Z mishoo quit (Ping timeout: 256 seconds) 2018-01-10T22:31:16Z pilfink joined #lisp 2018-01-10T22:33:17Z Oladon joined #lisp 2018-01-10T22:33:25Z wxie joined #lisp 2018-01-10T22:38:48Z bkst quit (Quit: leaving) 2018-01-10T22:39:27Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-10T22:42:49Z bkst joined #lisp 2018-01-10T22:42:59Z alecigne left #lisp 2018-01-10T22:49:24Z Bike quit (Ping timeout: 260 seconds) 2018-01-10T22:50:00Z asarch quit (Quit: Leaving) 2018-01-10T22:53:45Z Baggers joined #lisp 2018-01-10T22:54:42Z LiamH quit (Quit: Leaving.) 2018-01-10T22:54:55Z Jesin quit (Quit: Leaving) 2018-01-10T22:55:34Z josemanuel quit (Quit: leaving) 2018-01-10T22:56:41Z varjag quit (Ping timeout: 255 seconds) 2018-01-10T23:01:34Z Karl_Dscc quit (Remote host closed the connection) 2018-01-10T23:05:22Z damke_ joined #lisp 2018-01-10T23:07:33Z damke quit (Ping timeout: 264 seconds) 2018-01-10T23:08:05Z wxie quit (Quit: Bye.) 2018-01-10T23:08:33Z smurfrobot joined #lisp 2018-01-10T23:09:21Z Tobbi quit (Remote host closed the connection) 2018-01-10T23:10:21Z Tobbi joined #lisp 2018-01-10T23:17:05Z sjl quit (Ping timeout: 268 seconds) 2018-01-10T23:20:35Z nightfly quit (Ping timeout: 240 seconds) 2018-01-10T23:22:23Z varjag joined #lisp 2018-01-10T23:23:18Z nirved quit (Quit: Leaving) 2018-01-10T23:23:44Z Baggers quit (Remote host closed the connection) 2018-01-10T23:24:30Z nightfly joined #lisp 2018-01-10T23:25:45Z Bike joined #lisp 2018-01-10T23:27:21Z varjag quit (Ping timeout: 264 seconds) 2018-01-10T23:28:58Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-10T23:30:27Z red-dot joined #lisp 2018-01-10T23:32:31Z igemnace quit (Read error: Connection reset by peer) 2018-01-10T23:33:05Z igemnace joined #lisp 2018-01-10T23:34:59Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-10T23:42:44Z Kaisyu7 joined #lisp 2018-01-10T23:42:59Z Kaisyu joined #lisp 2018-01-10T23:44:09Z pagnol quit (Ping timeout: 264 seconds) 2018-01-10T23:45:20Z gilez joined #lisp 2018-01-10T23:45:53Z krasnal quit (Ping timeout: 276 seconds) 2018-01-10T23:49:51Z ckonstanski quit (Ping timeout: 248 seconds) 2018-01-10T23:50:29Z Tristam joined #lisp 2018-01-10T23:51:53Z kobain joined #lisp 2018-01-10T23:53:37Z nowhereman_ quit (Ping timeout: 248 seconds) 2018-01-11T00:04:27Z smurfrobot quit (Remote host closed the connection) 2018-01-11T00:08:26Z mikecheck joined #lisp 2018-01-11T00:10:09Z bms_ joined #lisp 2018-01-11T00:15:26Z DGASAU quit (Ping timeout: 272 seconds) 2018-01-11T00:15:40Z openthesky joined #lisp 2018-01-11T00:17:28Z turkja joined #lisp 2018-01-11T00:19:21Z cromachina joined #lisp 2018-01-11T00:26:05Z openthesky left #lisp 2018-01-11T00:26:36Z openthesky joined #lisp 2018-01-11T00:27:44Z AxelAlex joined #lisp 2018-01-11T00:32:10Z dddddd quit (Remote host closed the connection) 2018-01-11T00:32:15Z smurfrobot joined #lisp 2018-01-11T00:35:38Z Jen joined #lisp 2018-01-11T00:36:37Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-11T00:38:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-11T00:38:41Z Tobbi quit (Quit: Leaving) 2018-01-11T00:39:27Z SuperJen quit (Ping timeout: 248 seconds) 2018-01-11T00:40:25Z quazimodo joined #lisp 2018-01-11T00:40:57Z markong quit (Ping timeout: 268 seconds) 2018-01-11T00:44:05Z Tobbi joined #lisp 2018-01-11T00:46:09Z JuanDaugherty quit (Remote host closed the connection) 2018-01-11T00:46:17Z micro joined #lisp 2018-01-11T00:47:03Z nowhereman_ joined #lisp 2018-01-11T00:49:10Z quazimodo quit (Ping timeout: 260 seconds) 2018-01-11T00:50:05Z quazimodo joined #lisp 2018-01-11T00:53:50Z cgay quit (Ping timeout: 260 seconds) 2018-01-11T00:54:34Z cgay joined #lisp 2018-01-11T00:56:22Z fikka quit (Ping timeout: 268 seconds) 2018-01-11T00:56:27Z gilez quit (Ping timeout: 240 seconds) 2018-01-11T00:57:41Z gilez joined #lisp 2018-01-11T00:59:38Z pagnol joined #lisp 2018-01-11T01:02:25Z gilez quit (Ping timeout: 265 seconds) 2018-01-11T01:03:27Z borei quit (Ping timeout: 248 seconds) 2018-01-11T01:12:26Z Oladon quit (Quit: Leaving.) 2018-01-11T01:17:29Z jonh joined #lisp 2018-01-11T01:17:39Z igemnace quit (Read error: Connection reset by peer) 2018-01-11T01:18:18Z igemnace joined #lisp 2018-01-11T01:21:35Z bugrum joined #lisp 2018-01-11T01:23:32Z fikka joined #lisp 2018-01-11T01:24:52Z gilez joined #lisp 2018-01-11T01:26:28Z smurfrobot joined #lisp 2018-01-11T01:27:20Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-11T01:28:15Z zmt01 quit (Quit: Leaving) 2018-01-11T01:28:37Z zmt00 joined #lisp 2018-01-11T01:30:23Z fortitude joined #lisp 2018-01-11T01:30:59Z openthesky quit (Ping timeout: 260 seconds) 2018-01-11T01:33:59Z smurfrobot quit (Remote host closed the connection) 2018-01-11T01:37:48Z pierpa joined #lisp 2018-01-11T01:49:04Z madpengu joined #lisp 2018-01-11T01:50:00Z smurfrobot joined #lisp 2018-01-11T01:51:18Z smurfrobot quit (Remote host closed the connection) 2018-01-11T01:51:51Z dieggsy joined #lisp 2018-01-11T01:52:25Z ebrasca joined #lisp 2018-01-11T01:52:45Z pagnol quit (Ping timeout: 260 seconds) 2018-01-11T01:52:51Z shifty joined #lisp 2018-01-11T01:55:31Z jameser joined #lisp 2018-01-11T01:55:59Z madpengu: So is append destructive or not? 2018-01-11T01:56:48Z fikka quit (Ping timeout: 268 seconds) 2018-01-11T01:57:35Z Xach: madpengu: not 2018-01-11T01:58:05Z smurfrobot joined #lisp 2018-01-11T01:58:56Z ebrasca: Hi 2018-01-11T01:59:20Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:00:38Z bms_ quit (Quit: BYE) 2018-01-11T02:01:14Z Tobbi quit (Quit: Leaving) 2018-01-11T02:01:15Z bugrum quit (Remote host closed the connection) 2018-01-11T02:01:42Z smurfrobot joined #lisp 2018-01-11T02:02:57Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:04:30Z smurfrobot joined #lisp 2018-01-11T02:05:02Z safe joined #lisp 2018-01-11T02:05:26Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:06:06Z fikka joined #lisp 2018-01-11T02:07:40Z smurfrobot joined #lisp 2018-01-11T02:08:29Z madpengu: Append is supposed to reuse lists, yeah? 2018-01-11T02:08:36Z madpengu: I don't seem to get that behavior. 2018-01-11T02:08:56Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:09:17Z madpengu: (defparameter *a* (list 1 2 3)) (defparameter *b* (list 4 5 6)) (defparameter *c* (append *a* *b*)) (setf (first *a*) 55) 2018-01-11T02:09:25Z madpengu: For *c*, I still get 1 2 3 4 5 6 2018-01-11T02:09:25Z madpengu: wot. 2018-01-11T02:12:18Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-11T02:13:07Z rumbler31 joined #lisp 2018-01-11T02:15:22Z madpengu: Okay, figured, append is only allowed to reuse the last structure, not just any one of them 2018-01-11T02:15:33Z madpengu: So making changes to *b* does change the value of *c* as expected 2018-01-11T02:15:35Z madpengu: rookie mistake 2018-01-11T02:15:48Z smurfrobot joined #lisp 2018-01-11T02:16:37Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:18:07Z astronavt joined #lisp 2018-01-11T02:18:44Z dmiles: right, you'd still need to copy-list to detangle them 2018-01-11T02:18:58Z smurfrobot joined #lisp 2018-01-11T02:20:08Z pjb: madpengu: append is not destructive, but the result shares the last argument, so if you mutate the result, it could be destructive! 2018-01-11T02:20:13Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:20:36Z madpengu: yeah, I suppose append is not destructive but recycling? 2018-01-11T02:20:43Z madpengu: which means it could be destructive. 2018-01-11T02:20:54Z smurfrobot joined #lisp 2018-01-11T02:20:56Z pjb: (let ((a (list 1 2 3)) (b (list 4 5 6)) (c (list 7 8 9))) (tailp c (append a b c))) #| --> t |# 2018-01-11T02:21:00Z madpengu: I was just confusing about what is reused, it seems only the last structure, no the first one. 2018-01-11T02:21:47Z dmiles: if it reused the first structure then it would accidently modify the first structure 2018-01-11T02:21:52Z pjb: Notice that this is what lets you use append to build a dotted list: (append '(1 2 3) 4) #| --> (1 2 3 . 4) |# 2018-01-11T02:22:09Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:22:49Z smurfrobot joined #lisp 2018-01-11T02:23:15Z dmiles: (otherwise indeed it may have been nice to have had it resue the first structure to save space) 2018-01-11T02:23:31Z pjb: use nconc for that. 2018-01-11T02:23:34Z Oddity quit (Read error: No route to host) 2018-01-11T02:23:38Z madpengu: What is the difference of that with (cons (1 2 3) 4)? 2018-01-11T02:23:44Z pjb: (let ((a (list 1 2 3)) (b (list 4 5 6)) (c (list 7 8 9))) (tailp a (nconc a b c))) #| --> t |# 2018-01-11T02:23:55Z pjb: (cons '(1 2 3) 4) #| --> ((1 2 3) . 4) |# 2018-01-11T02:24:06Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:24:13Z pjb: I hope the difference jumps to your eyes! 2018-01-11T02:24:55Z madpengu: Hmmm. I think I get it. 2018-01-11T02:26:09Z smurfrobot joined #lisp 2018-01-11T02:26:22Z Oddity joined #lisp 2018-01-11T02:26:58Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:27:26Z schasta joined #lisp 2018-01-11T02:28:03Z smurfrobot joined #lisp 2018-01-11T02:29:00Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:29:00Z pjb: madpengu: you can also use (com.informatimago.common-lisp.picture.cons-to-ascii:draw-list (cons '(1 2 3) 4)) 2018-01-11T02:29:05Z oleo quit (Read error: Connection reset by peer) 2018-01-11T02:29:10Z rumbler31 quit (Remote host closed the connection) 2018-01-11T02:29:34Z oleo joined #lisp 2018-01-11T02:30:49Z smurfrobot joined #lisp 2018-01-11T02:31:50Z smurfrobot quit (Remote host closed the connection) 2018-01-11T02:35:43Z schasta quit (Ping timeout: 248 seconds) 2018-01-11T02:38:57Z fikka quit (Ping timeout: 248 seconds) 2018-01-11T02:41:10Z madpengu: pjb: How do I install that with ql? 2018-01-11T02:41:53Z FreeBirdLjj joined #lisp 2018-01-11T02:44:35Z smurfrobot joined #lisp 2018-01-11T02:44:37Z wxie joined #lisp 2018-01-11T02:46:25Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-11T02:47:59Z sz0_ joined #lisp 2018-01-11T02:48:50Z fikka joined #lisp 2018-01-11T02:49:11Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-11T02:49:11Z dieggsy quit (Ping timeout: 276 seconds) 2018-01-11T02:49:53Z jmercouris: madpengu: you'd place it in your local projects 2018-01-11T02:49:55Z sz0_ is now known as sz0 2018-01-11T02:51:37Z FreeBirdLjj joined #lisp 2018-01-11T02:51:57Z wxie quit (Remote host closed the connection) 2018-01-11T02:52:14Z nsrahmad joined #lisp 2018-01-11T02:56:20Z FreeBirdLjj quit (Ping timeout: 276 seconds) 2018-01-11T02:58:51Z d4ryus1 joined #lisp 2018-01-11T03:00:07Z gilez quit (Quit: leaving) 2018-01-11T03:00:46Z damke joined #lisp 2018-01-11T03:01:11Z vancan1ty joined #lisp 2018-01-11T03:01:27Z kolb quit (Read error: Connection reset by peer) 2018-01-11T03:01:40Z mrottenkolber joined #lisp 2018-01-11T03:01:57Z d4ryus quit (Ping timeout: 240 seconds) 2018-01-11T03:02:04Z mrottenkolber is now known as Guest80951 2018-01-11T03:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-11T03:02:51Z jasom: madpengu: (car (cons '(1 2 3) 4)) ;=> (1 2 3) 2018-01-11T03:08:57Z Tristam quit (Ping timeout: 240 seconds) 2018-01-11T03:15:42Z ebzzry quit (Quit: WeeChat 1.9.1) 2018-01-11T03:17:55Z fikka quit (Ping timeout: 260 seconds) 2018-01-11T03:18:16Z bms_ joined #lisp 2018-01-11T03:20:43Z fikka joined #lisp 2018-01-11T03:24:45Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-11T03:28:00Z schasta joined #lisp 2018-01-11T03:29:46Z nsrahmad quit (Quit: Leaving) 2018-01-11T03:35:19Z Oladon joined #lisp 2018-01-11T03:36:48Z test1600 joined #lisp 2018-01-11T03:40:59Z orivej joined #lisp 2018-01-11T03:45:10Z ebrasca: What are streams in common lisp? 2018-01-11T03:48:12Z ebrasca: In http://www.lispworks.com/documentation/HyperSpec/Body/21_aa.htm 2018-01-11T03:48:41Z ebrasca: is object equal to atom? 2018-01-11T03:52:33Z pillton: Stream objects are atoms. 2018-01-11T03:52:45Z warweasle joined #lisp 2018-01-11T03:54:30Z ebrasca: pillton: thanks 2018-01-11T03:54:47Z ebrasca: pillton: I try to implement open-using-host. 2018-01-11T03:55:12Z fikka quit (Ping timeout: 268 seconds) 2018-01-11T03:56:15Z astronavt quit (Ping timeout: 248 seconds) 2018-01-11T03:56:21Z pillton: I don't understand why your question is related to implementing open-using-host. 2018-01-11T03:56:55Z pillton: (subtypep 'stream 'atom) => T 2018-01-11T03:57:20Z drmeister: Does (unread nil ) make any sense? 2018-01-11T03:57:59Z drmeister: I realize that nil is not a character - but I have some code (not my own) that is invoking unread with nil. 2018-01-11T03:58:06Z pillton: unread-char? 2018-01-11T03:58:17Z ebrasca: I need streams to make open-using-host and I don't understand how to make streams. 2018-01-11T03:59:25Z bms_ quit (Remote host closed the connection) 2018-01-11T04:02:40Z bms_ joined #lisp 2018-01-11T04:04:10Z fikka joined #lisp 2018-01-11T04:05:27Z orivej quit (Ping timeout: 240 seconds) 2018-01-11T04:07:48Z openthesky joined #lisp 2018-01-11T04:08:03Z openthesky quit (Client Quit) 2018-01-11T04:09:05Z bugrum joined #lisp 2018-01-11T04:09:08Z sdelic joined #lisp 2018-01-11T04:09:27Z jasom: ebrasca: every object in lisp is either a cons or an atom. The type atom is literally the same as the type (not atom) 2018-01-11T04:10:30Z jasom: ebrasca: it's a bit silly that vectors and hash-tables are atoms, but the atom/cons distinction predates lisps having those 2018-01-11T04:11:05Z jasom: Correction: *The type atom is literally the same as the type (not cons) 2018-01-11T04:13:12Z jameser quit (Read error: Connection reset by peer) 2018-01-17T21:27:15Z ccl-logbot joined #lisp 2018-01-17T21:27:15Z 2018-01-17T21:27:15Z names: ccl-logbot Baggers fikka oleo PuercoPope ikki smasta scymtym hexfive lnostdal hvxgr openthesky milanj Murii Ven`` vydd damke epony nullman megalography toon` __main__ pagnol dlowe knobo JuanitoJons varjag drot dyelar eivarv kami cess11 d4ryus Karl_Dscc drewc Tristam warweasle moei Jesin LiamH JonSmith sjl randomstrangerb loli dddddd orivej Bike rumbler31 arbv asarch |3b| esthlos Tobbi thijso mingus gabot papachan nirved makomo heurist blacknc Arcaelyx 2018-01-17T21:27:15Z names: shka MetaYan Lord_Nightmare alexmlw DeadTrickster borei schoppenhauer guaqua zooey eschatologist fittestbits jonh khisanth_ mood Xal _whitelogger terpri CrazyEddy fortitude mikaelj sebastien_ sukaeto whoman jibanes beach vaporatorius brucem lonjil AntiSpamMeta runejuhl rgrau aindilis jfb4 Kevslinger yeticry msb koisoke QualityAddict philosaur tonton xantoz kozy bkst Patzy attila_lendvai sshirokov dmiles sbryant manualcrank vhost- raynold lexa_ grumble 2018-01-17T21:27:15Z names: thinkpad Xof sthalik greaser|q pfdietz koenig presiden jself kolb ben3 nopf DGASAU ski ft eli zotan vert2 Tordek ineiros nydel ozzloy Cthulhux fouric MrBusiness drcode vyzo vutral itruslove snits jasom Colleen giraffe jack_rabbit gigetoo mathrick brandonz deba5e12 Nikotiini cpt_nemo foom2 akash47 askatasuna Rovanion tmc angular_mike PyroLagus rann Princess17b29a mjl jyc cmatei ericmathison @fe[nl]ix dim JoJoen stylewarning phadthai shaftoe rvirding 2018-01-17T21:27:15Z names: Oddity ryanbw pmden cpape jdz jsambrook voidlily tripty zacts troydm raydeejay TeMPOraL zymurgy Intensity azrazalea dan64- arrsim vibs29 ninegrid dcluna solene cods adulteratedjedi impulse zmt00 micro cromachina Kaisyu7 dvdmuckle Xach tazjin mrSpec paratox broccolistem otwieracz larme pankracy misv ircbrowse lemoinem cryptomarauder RichardPaulBck[m felideon antoszka tomaw omilu bitch crsc reu argoneus lxpz peterhil razzy libreman kushal creat sellout 2018-01-17T21:27:15Z names: p_l Blkt lugh davsebamse eagleflo easye ssake zkat gabiruh equalunique[m] tkd rme pillton Zhivago ArthurAGleckler[ dirb katco[m] hiq[m] plll[m] hdurer[m] kfdenden[m] Jach[m] mhitchman[m] kammd[m] Riviera- pchrist les CharlieBrown fiddlerwoaroof_ mtd salva Ober abbe dotcra Poeticode wladz_ ikopico _krator44 gilberth funnel bailon convexferret nimiux alms_clozure Lord_of_Life nicdev aeth ym Posterdati dxtr froggey hjudt benny leo_song guna_ malm 2018-01-17T21:27:15Z names: theBlackDragon kilimanjaro tfb asedeno sigjuice djinni` norserob djh drdo cibs alandipert spacepluk z0d weltung mgsk anaumov anon_ fluxit tessier whartung nyef`` sword Firedancer cross beaky flip214 DrPete butterthebuddha nhandler phoe White_Flame chocolait borodust Olgierd Elite-Epochs isoraqathedh joast ramus arrdem TMA luis mfiano ggherdov banjiewen terrorjack Meow-J_ jerme_ CEnnis91 l1x billstclair drmeister gbyers mbrock trig-ger jeremyheiler XachX 2018-01-17T21:27:15Z names: tobel joeygibson gz_ devlaf gendl danlentz splittist johs d4gg4d_ le4fy flazh mulk christoph_debian copec ecraven galdor shenghi malcom2073 jsnell aoh vsync rjeli saemcro HDurer elts trn peccu3 rotty SAL9000 kini gorgor Fade specbot eschulte em justinmcp xristos eMBee _death jurov dmh catern samebchase michalisko ksool pacon jackdaniel clog whaack Shinmera aijony Ziemas cyberlard lieven kjeldahl renard_ stux|RC-- sveit Mandus Aritheanie gingerale 2018-01-17T21:27:15Z names: AeroNotix uint tokenrove larsen pok stux|RC-only gko minion tokik swflint SlashLife alphor GGMethos zagura nikivi 2018-01-17T21:27:22Z jasom: so a file with (defun foo () ) (defun bar () (foo)) the call to foo in bar may be inlined, absent any other declarations 2018-01-17T21:28:10Z sjl: related: is there any way to set a function's inline status back to the default? 2018-01-17T21:28:27Z jasom: sjl: no portable way that I've ever been able to find 2018-01-17T21:28:39Z sjl: (declaim (inline foo)) (defun foo ...) (declaim (notinline foo)) makes foo inlineable but prevents any compiler macros 2018-01-17T21:29:18Z rumbler31: so without explicitly specifying notinline on foo when loading the file, given the default inline state, a conforming implementation will warn/error when foo is redefined? 2018-01-17T21:29:50Z jasom: rumbler31: it will not 2018-01-17T21:30:24Z jack_rabbit quit (Quit: Leaving) 2018-01-17T21:30:40Z rumbler31: then.. I guess I still don't know what you meant to say with your second sentence 2018-01-17T21:30:47Z jasom: rumbler31: the assumption is that you know what you are doing if you redefine functions unless something very obviously is wrong (it was declared inline, you have two definitions of the same function in the same file) 2018-01-17T21:31:27Z jasom: rumbler31: a conforming implementation is allowed to assume that a function defined in file X has a fixed definition for the entire body of file X. 2018-01-17T21:32:04Z rumbler31: what does fixed definition mean? s.t. re-invocations of defun are unspecified behavior? 2018-01-17T21:32:10Z jasom: rumbler31: correct 2018-01-17T21:32:45Z rumbler31: oh.. 2018-01-17T21:33:07Z jasom: rumbler31: in practice it usually just means that the redefinition won't take effect, but I suppose it could have safety implications if the type of the function were inferred (not sure if sbcl does this). 2018-01-17T21:34:09Z jasom: For the purposes of incremental development using C-c C-k will usually mean that all functions not declared inline will work right (since you recompile the entire file). 2018-01-17T21:35:13Z jasom: obviously macros (and compiler macros) have a different set of rules 2018-01-17T21:35:47Z rumbler31: can you go into the last sentence briefly? 2018-01-17T21:36:18Z jasom: regarding macros? 2018-01-17T21:36:24Z rumbler31: yes 2018-01-17T21:37:03Z jasom: macros definitions are invoked when the macro is expanded. When compiling this is the same as compile time. 2018-01-17T21:37:27Z jasom: so if you change a macro, there is no magic that finds all places in which it was expanded and recompiles them. 2018-01-17T21:37:50Z jasom: you should use asdf if you want this to work (it tracks dependencies on a file-level basis) 2018-01-17T21:40:01Z rumbler31: so the part about macros not being re-evaluated I understand. I will ponder how that affects function redefinition 2018-01-17T21:40:33Z jasom: My point is everything I said up to that sentence refers only to redefining functions. If you redefine macros, then you need to think differently 2018-01-17T21:40:40Z hexfive quit (Remote host closed the connection) 2018-01-17T21:40:43Z rumbler31: oh I see what you mean now 2018-01-17T21:41:23Z hexfive joined #lisp 2018-01-17T21:42:06Z cgay joined #lisp 2018-01-17T21:45:35Z eivarv quit (Quit: Sleep) 2018-01-17T21:46:49Z aeth: jasom: Return type information isn't inferred unless the function is inline afaik, i.e. (defun foo () (the single-float 1f0)) (defun bar () (+ 1f0 (foo))) (disassemble #'bar) 2018-01-17T21:47:45Z fikka quit (Ping timeout: 248 seconds) 2018-01-17T21:49:02Z aeth: You could probably wrap a the around the function call, which would get rid of the generic-+, but still do type checking because it still won't trust you not to redefine #'foo. You'd probably need sb-ext:truly-the in SBCL, and you'd need to *really* make sure your wrapper will never fail. 2018-01-17T21:49:31Z jasom: aeth: I do *not* see the same behavior when I tried it. 2018-01-17T21:50:07Z zaquest joined #lisp 2018-01-17T21:50:28Z aeth: ah, they need to be in the same file 2018-01-17T21:50:36Z aeth: And then it produces the same effect as the, but not truly-the 2018-01-17T21:50:45Z nullniverse joined #lisp 2018-01-17T21:51:10Z aeth: Actually, almost but not 2018-01-17T21:51:13Z smasta quit (Ping timeout: 256 seconds) 2018-01-17T21:51:42Z aeth: It will type-check that it's 1.0f0, not just single-float 2018-01-17T21:51:56Z jasom: https://gist.github.com/jasom/6f16cfb84cddab784db494e230acd13f 2018-01-17T21:52:07Z jasom: right it type-checks and then returns 2.0f0 without doing an add 2018-01-17T21:52:45Z jasom: I assume changing foo to be (random 1.0) or some such will have a similar effect. but use a single-float specialized add 2018-01-17T21:52:49Z quazimodo joined #lisp 2018-01-17T21:53:10Z PuercoPope quit (Ping timeout: 256 seconds) 2018-01-17T21:53:20Z aeth: jasom: I think that it's not a type thing but a constant thing, though. I've had the same thing happen with macros that generate functions that return constant strings. If I changed those macros in SBCL, I would then get a runtime type error on the user of that generated function if the length of the generated string changed (because length is part of the type in Pascal-style strings) 2018-01-17T21:53:25Z jasom: yup. So sbcl does assume that function-types for functions that are not declared inline are fixed 2018-01-17T21:53:47Z jasom: aeth: it's typechecking for a float in the range [1.0, 1.0] 2018-01-17T21:53:51Z aeth: s/those macros/those calls to the macro/ 2018-01-17T21:54:08Z aeth: jasom: yeah, but I think it's specifically an optimization for functions that are returning constants 2018-01-17T21:54:19Z jasom: aeth: it is not 2018-01-17T21:54:19Z PuercoPope joined #lisp 2018-01-17T21:54:36Z jasom: because I get a FPU add instead of generic+ when I change it to return a random single-float 2018-01-17T21:54:47Z jasom: ADDSS 2018-01-17T21:54:48Z fikka joined #lisp 2018-01-17T21:55:29Z jasom: fortunately it works like THE so it does not violate safety constraints 2018-01-17T21:55:31Z aeth: You are correct, I just tested that with (random 2f0) and I get ADDSS and it tests for '(single-float 0.0) 2018-01-17T21:56:21Z jasom: oh, and it does warn on redefinition in this case too 2018-01-17T21:56:57Z jasom: but only if I redefine on the REPL 2018-01-17T21:57:05Z aeth: I don't get a warn when recompiling foo to return "hi" (rather than the file), I just get a runtime type error when calling bar 2018-01-17T21:57:12Z aeth: It must have been added in a new version 2018-01-17T21:57:22Z aeth: Probably because someone else faced these sorts of issues 2018-01-17T21:57:28Z aeth: Possibly with a string-generating macro like I used 2018-01-17T21:57:42Z nullniverse quit (Ping timeout: 256 seconds) 2018-01-17T21:57:53Z aeth: It wouldn't warn when recompiling the file because it can update bar, too 2018-01-17T21:58:15Z Ven`` quit (Ping timeout: 260 seconds) 2018-01-17T22:00:10Z aeth: (well, it would warn about the return type of foo not being compatible with +, so my example isn't perfect) 2018-01-17T22:00:55Z jasom: changing it to return 1.0d0 is maybe a better example 2018-01-17T22:01:05Z aeth: This is interesting, though. It means that fewer, larger files aren't just a stylistic choice. It will potentially make the code more efficient, but at the cost of possibly causing issues with recompiling just an individual function rather than the file. 2018-01-17T22:01:31Z stylewarning: aeth this is well known about compiling things within the same compilation unit 2018-01-17T22:01:51Z stylewarning: CMUCL has block compilation to ameliorate some of the concerns, I think 2018-01-17T22:02:02Z jasom: asdf has with-upgradability at least partly because the entire thing gets put into a single .lisp file 2018-01-17T22:02:33Z Murii quit (Quit: WeeChat 1.4) 2018-01-17T22:02:36Z Ven`` joined #lisp 2018-01-17T22:05:06Z Bike: with-compilation-unit should be usable to make more things optimize together, at least in theory. hell if i know whether sbcl does 2018-01-17T22:05:53Z markong joined #lisp 2018-01-17T22:09:03Z smasta joined #lisp 2018-01-17T22:11:10Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-17T22:20:02Z milanj quit (Quit: This computer has gone to sleep) 2018-01-17T22:20:21Z smurfrobot joined #lisp 2018-01-17T22:24:39Z pjb joined #lisp 2018-01-17T22:24:49Z alexmlw quit (Quit: alexmlw) 2018-01-17T22:25:17Z alexmlw joined #lisp 2018-01-17T22:25:17Z alexmlw quit (Client Quit) 2018-01-17T22:25:37Z aeth: with-compilation-unit would only be necessary to get file-like optimizations in the REPL, though, right? 2018-01-17T22:26:02Z pjb: aeth: that, and if you want to remove the file boundary in a project. 2018-01-17T22:26:44Z aeth: pjb: Is removing the file boundary possible in a way that's compatible with ASDF? It might be useful as part of a build step for distributing a final executable. 2018-01-17T22:27:08Z pjb: You would need asdf support for with-compilation-unit. I don't remember if it's available or not. 2018-01-17T22:27:29Z knobo quit (Ping timeout: 256 seconds) 2018-01-17T22:28:03Z fikka quit (Ping timeout: 256 seconds) 2018-01-17T22:28:07Z pjb: Also, you raise a interesting question: can we always concatenate all the files of a project for distribution, without changing semantics, vs. a separate compilation. 2018-01-17T22:28:43Z pjb: Obviously, it's not possible in general: you would have to add eval-when to be able to compile the concatenated file. 2018-01-17T22:28:57Z aeth: yeah 2018-01-17T22:29:12Z pjb: Perhaps that's what asdf does? 2018-01-17T22:29:22Z aeth: Multiple packages would complicate things, too 2018-01-17T22:29:46Z aeth: Or at least could complicate things 2018-01-17T22:30:57Z milanj joined #lisp 2018-01-17T22:31:27Z smasta quit (Ping timeout: 256 seconds) 2018-01-17T22:32:43Z orivej quit (Ping timeout: 268 seconds) 2018-01-17T22:32:52Z toon` quit (Ping timeout: 272 seconds) 2018-01-17T22:33:00Z fikka joined #lisp 2018-01-17T22:33:11Z shifty joined #lisp 2018-01-17T22:33:47Z toon` joined #lisp 2018-01-17T22:33:56Z quazimodo quit (Ping timeout: 276 seconds) 2018-01-17T22:36:24Z smasta joined #lisp 2018-01-17T22:36:35Z ikki quit (Ping timeout: 240 seconds) 2018-01-17T22:43:15Z Karl_Dscc quit (Remote host closed the connection) 2018-01-17T22:44:03Z nirved quit (Quit: Leaving) 2018-01-17T22:44:49Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-17T22:46:05Z randomstrangerb joined #lisp 2018-01-17T22:48:42Z PuercoWork joined #lisp 2018-01-17T22:49:01Z PuercoPope quit (Ping timeout: 256 seconds) 2018-01-17T22:49:05Z smurfrobot quit (Remote host closed the connection) 2018-01-17T22:49:57Z smasta quit (Ping timeout: 256 seconds) 2018-01-17T22:49:59Z Bike quit (Ping timeout: 260 seconds) 2018-01-17T22:53:25Z LiamH quit (Quit: Leaving.) 2018-01-17T22:57:06Z raynold quit (Quit: Connection closed for inactivity) 2018-01-17T22:57:31Z PuercoWork quit (Ping timeout: 256 seconds) 2018-01-17T22:57:35Z smurfrobot joined #lisp 2018-01-17T22:59:25Z moei quit (Quit: Leaving...) 2018-01-17T23:00:21Z _main_ joined #lisp 2018-01-17T23:01:31Z damke_ joined #lisp 2018-01-17T23:02:02Z PuercoWork joined #lisp 2018-01-17T23:02:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-17T23:02:52Z __main__ quit (Ping timeout: 256 seconds) 2018-01-17T23:03:24Z _main_ is now known as __main__ 2018-01-17T23:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-17T23:05:05Z shka quit (Ping timeout: 240 seconds) 2018-01-17T23:06:30Z sjl quit (Ping timeout: 260 seconds) 2018-01-17T23:06:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-17T23:09:30Z fikka joined #lisp 2018-01-17T23:10:13Z smasta joined #lisp 2018-01-17T23:14:46Z pagnol quit (Ping timeout: 256 seconds) 2018-01-17T23:15:05Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-17T23:15:44Z openthesky quit (Quit: Page closed) 2018-01-17T23:15:47Z dilated_dinosaur joined #lisp 2018-01-17T23:17:05Z PuercoWork quit (Ping timeout: 240 seconds) 2018-01-17T23:19:30Z _main_ joined #lisp 2018-01-17T23:20:38Z __main__ quit (Ping timeout: 276 seconds) 2018-01-17T23:21:34Z kami quit (Ping timeout: 256 seconds) 2018-01-17T23:23:04Z _main_ is now known as __main__ 2018-01-17T23:24:00Z drmeister: That’s what I assumed with-compilation-unit was for when I first encountered it. Optimize whole compilation units together 2018-01-17T23:28:00Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-17T23:35:05Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-17T23:35:07Z __main__ quit (Read error: Connection reset by peer) 2018-01-17T23:35:22Z _main_ joined #lisp 2018-01-17T23:36:18Z randomstrangerb joined #lisp 2018-01-17T23:38:32Z _main_ is now known as __main__ 2018-01-17T23:39:11Z Baggers quit (Remote host closed the connection) 2018-01-17T23:39:53Z Bike joined #lisp 2018-01-17T23:41:50Z PuercoWork joined #lisp 2018-01-17T23:43:30Z Jesin quit (Quit: Leaving) 2018-01-17T23:43:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-17T23:44:13Z zmt00 quit (Read error: Connection reset by peer) 2018-01-17T23:44:37Z zmt00 joined #lisp 2018-01-17T23:45:29Z smasta quit (Ping timeout: 256 seconds) 2018-01-17T23:48:53Z smasta joined #lisp 2018-01-17T23:51:43Z fikka joined #lisp 2018-01-17T23:58:22Z smurfrobot joined #lisp 2018-01-17T23:58:57Z smasta quit (Ping timeout: 240 seconds) 2018-01-17T23:59:22Z dddddd quit (Read error: Connection reset by peer) 2018-01-18T00:00:08Z dddddd joined #lisp 2018-01-18T00:02:23Z JuanitoJons quit (Quit: Leaving) 2018-01-18T00:03:32Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-18T00:07:42Z whoman quit (Remote host closed the connection) 2018-01-18T00:08:12Z hvxgr quit (Ping timeout: 265 seconds) 2018-01-18T00:14:12Z damke joined #lisp 2018-01-18T00:17:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-18T00:20:55Z JonSmith quit (Remote host closed the connection) 2018-01-18T00:22:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T00:25:04Z fikka joined #lisp 2018-01-18T00:25:05Z markong quit (Ping timeout: 276 seconds) 2018-01-18T00:26:42Z nullniverse joined #lisp 2018-01-18T00:28:33Z dtornabene joined #lisp 2018-01-18T00:29:35Z PuercoWork quit (Ping timeout: 240 seconds) 2018-01-18T00:29:37Z FreeBirdLjj joined #lisp 2018-01-18T00:30:05Z PuercoWork joined #lisp 2018-01-18T00:31:23Z nullniverse quit (Ping timeout: 256 seconds) 2018-01-18T00:32:54Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-18T00:33:16Z safe joined #lisp 2018-01-18T00:34:00Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-18T00:37:57Z Kaisyu joined #lisp 2018-01-18T00:40:32Z PuercoWork quit (Quit: WeeChat 2.0.1) 2018-01-18T00:47:34Z JonSmith joined #lisp 2018-01-18T00:50:50Z pierpa joined #lisp 2018-01-18T00:51:30Z turkja joined #lisp 2018-01-18T00:52:17Z JonSmith quit (Ping timeout: 276 seconds) 2018-01-18T00:55:53Z toon` quit (Quit: toon`) 2018-01-18T00:58:07Z smasta joined #lisp 2018-01-18T00:58:41Z fikka quit (Ping timeout: 248 seconds) 2018-01-18T00:59:07Z smurfrobot joined #lisp 2018-01-18T01:00:04Z zooey quit (*.net *.split) 2018-01-18T01:00:58Z fikka joined #lisp 2018-01-18T01:03:53Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-18T01:04:29Z Oladon joined #lisp 2018-01-18T01:10:47Z Devon joined #lisp 2018-01-18T01:13:02Z Tobbi quit (Quit: Leaving) 2018-01-18T01:24:40Z iqubic joined #lisp 2018-01-18T01:24:51Z iqubic: How hard is Lisp to learn and pick up? 2018-01-18T01:29:04Z beach quit (Ping timeout: 256 seconds) 2018-01-18T01:29:31Z pfdietz: I'd say not hard, although there are some parts you don't want to do first. Restarts are a bit tricky. 2018-01-18T01:29:48Z iqubic: What are restarts? 2018-01-18T01:32:47Z fikka quit (Ping timeout: 256 seconds) 2018-01-18T01:34:29Z smasta quit (Ping timeout: 256 seconds) 2018-01-18T01:35:12Z pfdietz: Restarts are a way to resume after a condition (like, an error) is signaled, without unwinding the stack. 2018-01-18T01:37:50Z Tobbi joined #lisp 2018-01-18T01:39:25Z iqubic: What'd the best way to get a Lisp code editing set-u in Emacs? 2018-01-18T01:41:42Z fikka joined #lisp 2018-01-18T01:42:12Z aeth: SLIME and paredit 2018-01-18T01:45:21Z iqubic: how do I get Slime set-up? 2018-01-18T01:46:20Z iqubic: I assume that step one is: get SBCL. 2018-01-18T01:47:45Z blacknc quit (Quit: Leaving) 2018-01-18T01:47:55Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-18T01:55:16Z PyroLagus quit (*.net *.split) 2018-01-18T01:55:16Z mjl quit (*.net *.split) 2018-01-18T01:55:16Z fe[nl]ix quit (*.net *.split) 2018-01-18T01:55:19Z katco[m] quit (*.net *.split) 2018-01-18T01:55:19Z plll[m] quit (*.net *.split) 2018-01-18T01:55:20Z salva quit (*.net *.split) 2018-01-18T01:55:23Z beaky quit (*.net *.split) 2018-01-18T01:55:25Z mfiano quit (*.net *.split) 2018-01-18T01:55:35Z fe[nl]ix joined #lisp 2018-01-18T01:55:35Z ChanServ has set mode +o fe[nl]ix 2018-01-18T01:55:45Z salva joined #lisp 2018-01-18T01:55:55Z mfiano joined #lisp 2018-01-18T01:56:05Z mjl joined #lisp 2018-01-18T01:57:03Z PyroLagus joined #lisp 2018-01-18T01:57:25Z katco[m] joined #lisp 2018-01-18T01:57:27Z rgrau quit (Ping timeout: 240 seconds) 2018-01-18T01:57:55Z plll[m] joined #lisp 2018-01-18T01:57:57Z beaky joined #lisp 2018-01-18T01:59:54Z smurfrobot joined #lisp 2018-01-18T02:00:18Z rgrau joined #lisp 2018-01-18T02:01:28Z copec quit (Remote host closed the connection) 2018-01-18T02:04:46Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-18T02:06:17Z papachan quit (Quit: Leaving) 2018-01-18T02:08:02Z copec joined #lisp 2018-01-18T02:11:37Z zooey joined #lisp 2018-01-18T02:12:35Z loke joined #lisp 2018-01-18T02:13:21Z yeticry quit (Ping timeout: 248 seconds) 2018-01-18T02:14:11Z iqubic left #lisp 2018-01-18T02:15:26Z fikka quit (Ping timeout: 255 seconds) 2018-01-18T02:15:45Z yeticry joined #lisp 2018-01-18T02:20:28Z fikka joined #lisp 2018-01-18T02:28:53Z lnostdal quit (Ping timeout: 256 seconds) 2018-01-18T02:29:30Z Cymew joined #lisp 2018-01-18T02:31:43Z vydd quit (Ping timeout: 256 seconds) 2018-01-18T02:33:29Z loli: Slime and lispy is rather nice though lispy takes some getting used to 2018-01-18T02:34:06Z saturn2 joined #lisp 2018-01-18T02:34:10Z Cymew quit (Ping timeout: 260 seconds) 2018-01-18T02:35:48Z zooey quit (Remote host closed the connection) 2018-01-18T02:43:46Z Oladon quit (Quit: Leaving.) 2018-01-18T02:45:10Z zooey joined #lisp 2018-01-18T02:45:17Z razzy quit (Ping timeout: 255 seconds) 2018-01-18T02:46:33Z zooey quit (*.net *.split) 2018-01-18T02:47:10Z zooey joined #lisp 2018-01-18T02:49:17Z brendyn joined #lisp 2018-01-18T02:50:39Z loke: loli: what is lispy? 2018-01-18T02:50:56Z d4ryus1 joined #lisp 2018-01-18T02:51:40Z FreeBirdLjj joined #lisp 2018-01-18T02:52:43Z razzy joined #lisp 2018-01-18T02:53:32Z loli: it does a job similar to parsec, but it does it in quite the different way 2018-01-18T02:53:37Z loli: you basically have vim keys behind ()'s 2018-01-18T02:53:44Z loli: it's really nice 2018-01-18T02:53:56Z loli: https://github.com/abo-abo/lispy 2018-01-18T02:54:27Z loli: paredit* not parsec 2018-01-18T02:54:29Z loli: sorry 2018-01-18T02:54:29Z d4ryus quit (Ping timeout: 276 seconds) 2018-01-18T02:54:35Z fikka quit (Ping timeout: 260 seconds) 2018-01-18T02:54:42Z Kevslinger joined #lisp 2018-01-18T02:55:45Z nika joined #lisp 2018-01-18T02:56:00Z loke: So it's basically paredit for vi bindings? 2018-01-18T02:56:10Z loli: kinda 2018-01-18T02:56:27Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-18T02:59:06Z fikka joined #lisp 2018-01-18T03:00:37Z damke_ joined #lisp 2018-01-18T03:00:40Z smurfrobot joined #lisp 2018-01-18T03:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-18T03:05:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-18T03:09:01Z ebzzry joined #lisp 2018-01-18T03:11:13Z emacsomancer joined #lisp 2018-01-18T03:13:01Z smasta joined #lisp 2018-01-18T03:14:53Z Oladon joined #lisp 2018-01-18T03:16:38Z milanj quit (Quit: This computer has gone to sleep) 2018-01-18T03:18:14Z smasta quit (Ping timeout: 268 seconds) 2018-01-18T03:30:06Z jonh quit (*.net *.split) 2018-01-18T03:30:06Z shaftoe quit (*.net *.split) 2018-01-18T03:30:07Z kushal quit (*.net *.split) 2018-01-18T03:30:08Z ArthurAGleckler[ quit (*.net *.split) 2018-01-18T03:30:09Z CharlieBrown quit (*.net *.split) 2018-01-18T03:30:10Z nicdev quit (*.net *.split) 2018-01-18T03:30:11Z drdo quit (*.net *.split) 2018-01-18T03:30:11Z weltung quit (*.net *.split) 2018-01-18T03:30:13Z mbrock quit (*.net *.split) 2018-01-18T03:30:13Z jeremyheiler quit (*.net *.split) 2018-01-18T03:30:13Z joeygibson quit (*.net *.split) 2018-01-18T03:30:14Z ecraven quit (*.net *.split) 2018-01-18T03:30:14Z HDurer quit (*.net *.split) 2018-01-18T03:30:16Z _death quit (*.net *.split) 2018-01-18T03:30:17Z eMBee quit (*.net *.split) 2018-01-18T03:30:26Z ecraven joined #lisp 2018-01-18T03:30:30Z drdo joined #lisp 2018-01-18T03:30:31Z jonh joined #lisp 2018-01-18T03:30:32Z shaftoe joined #lisp 2018-01-18T03:30:32Z HDurer joined #lisp 2018-01-18T03:30:32Z HDurer quit (Changing host) 2018-01-18T03:30:32Z HDurer joined #lisp 2018-01-18T03:31:04Z nicdev joined #lisp 2018-01-18T03:31:29Z mbrock joined #lisp 2018-01-18T03:31:39Z _death joined #lisp 2018-01-18T03:31:42Z jeremyheiler joined #lisp 2018-01-18T03:31:42Z joeygibson joined #lisp 2018-01-18T03:31:46Z weltung joined #lisp 2018-01-18T03:31:56Z kushal joined #lisp 2018-01-18T03:32:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-18T03:32:20Z kushal is now known as Guest21826 2018-01-18T03:32:27Z rgrau quit (Ping timeout: 240 seconds) 2018-01-18T03:33:14Z ArthurAGleckler[ joined #lisp 2018-01-18T03:33:49Z CharlieBrown joined #lisp 2018-01-18T03:34:59Z fikka joined #lisp 2018-01-18T03:35:53Z igemnace joined #lisp 2018-01-18T03:37:09Z rgrau joined #lisp 2018-01-18T03:39:01Z Guest21826 left #lisp 2018-01-18T03:40:00Z asarch quit (Quit: Leaving) 2018-01-18T03:46:47Z z3t0 joined #lisp 2018-01-18T03:50:57Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-18T03:51:20Z sjl joined #lisp 2018-01-18T03:55:27Z sjl quit (Ping timeout: 240 seconds) 2018-01-18T04:01:44Z les quit (Quit: "") 2018-01-18T04:01:51Z beach joined #lisp 2018-01-18T04:01:59Z beach: Good morning everyone! 2018-01-18T04:01:59Z Colleen: beach: drmeister said 1 hour, 17 minutes ago: concrete-syntax-tree-base.asd contains a dependency for :alexandria but doesn't use anything from the system - could you remove it? Also - I submitted a pull request for the improved fix for handling end-of-file in the sicl reader. 2018-01-18T04:02:02Z eMBee joined #lisp 2018-01-18T04:03:21Z em quit (Remote host closed the connection) 2018-01-18T04:04:36Z beach: drmeister: Pull request merged. Thanks! And yes, I can remove it. 2018-01-18T04:06:25Z beach: Dependency removed. Thanks! 2018-01-18T04:07:01Z lagagain joined #lisp 2018-01-18T04:07:26Z smasta joined #lisp 2018-01-18T04:09:03Z fikka quit (Ping timeout: 248 seconds) 2018-01-18T04:12:00Z fikka joined #lisp 2018-01-18T04:12:23Z smasta quit (Ping timeout: 256 seconds) 2018-01-18T04:16:52Z les joined #lisp 2018-01-18T04:20:00Z dtornabene quit (Quit: Leaving) 2018-01-18T04:20:14Z dddddd quit (Remote host closed the connection) 2018-01-18T04:23:00Z kbtr joined #lisp 2018-01-18T04:23:00Z kbtr quit (Client Quit) 2018-01-18T04:23:30Z kbtr joined #lisp 2018-01-18T04:28:30Z Oladon quit (Read error: Connection reset by peer) 2018-01-18T04:29:10Z Oladon joined #lisp 2018-01-18T04:38:35Z hexfive quit (Quit: 404 hexfive not found) 2018-01-18T04:38:51Z drmeister: Hey lispers - when people refer to "tooling" as being important in how they use their programming languages and IDE's - do you know what that means? 2018-01-18T04:39:27Z drmeister: I think I kind of know what it means - but I'm trying to broaden my understanding of what people think it is. 2018-01-18T04:39:52Z beach: Where did you see it used? 2018-01-18T04:41:00Z Oladon quit (Quit: Leaving.) 2018-01-18T04:43:02Z drmeister: I guess this kind of answers my question: 2018-01-18T04:43:03Z drmeister: https://blog.newrelic.com/2014/05/21/toolsforjavadevelopers/ 2018-01-18T04:43:38Z drmeister: http://reactkungfu.com/2015/07/the-hitchhikers-guide-to-modern-javascript-tooling/ 2018-01-18T04:45:57Z drmeister: When I read responses on Hacker News to new language announcements - invariably someone says "Your new language X sucks because it lacks what my language Y has - which is the tooling". 2018-01-18T04:46:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-18T04:46:05Z nullman quit (Ping timeout: 240 seconds) 2018-01-18T04:46:21Z drmeister: We have a lot of that with quicklisp, asdf, and slime - I guess. 2018-01-18T04:46:48Z beach: Sort of, yes. 2018-01-18T04:46:58Z nullman joined #lisp 2018-01-18T04:47:28Z drmeister: One of the promises of Clang's AST tools that hasn't really been realized afaik is that it would improve tooling for C++ syntax aware tools. 2018-01-18T04:47:29Z beach: We shouldn't be too proud of having the best tools, though. 2018-01-18T04:47:40Z beach: We could do a lot better than SLIME, for example. 2018-01-18T04:47:53Z drmeister: Cleavir's cst-to-ast could provide new capabilities for slime. 2018-01-18T04:48:36Z drmeister: syntax highlighting, finding locations that call a function, finding where functions are defined - these could be made more robust with cst-to-ast. 2018-01-18T04:48:52Z beach: Indeed. 2018-01-18T04:49:35Z beach: I would like to see something like this: http://metamodular.com/clordane.pdf 2018-01-18T04:49:37Z drmeister: Source to source translation could also be carried out. 2018-01-18T04:49:58Z Bike quit (Quit: Lost terminal) 2018-01-18T04:50:29Z smasta joined #lisp 2018-01-18T04:50:46Z fikka joined #lisp 2018-01-18T04:52:11Z beach: Currently, most implementations implement TRACE by modifying the code. Then you can't debug the debugger. 2018-01-18T04:52:12Z drmeister: Imagine if someone makes a poor choice for a function name - or dynamic variable. grep/search/replace is brittle and error prone. A syntax aware search and replace would be much more robust. 2018-01-18T04:52:35Z drmeister: Uh huh. 2018-01-18T04:52:52Z beach: drmeister: Yes, already planned: http://metamodular.com/second-climacs.pdf 2018-01-18T04:54:05Z beach: The good thing here is that I plan to use CST-to-AST also in Second Climacs, so that we can avoid code duplication. 2018-01-18T04:55:11Z drmeister: Can I just say that I think "Second Climacs" is an unfortunate name for an editor? 2018-01-18T04:55:20Z beach: You are not alone. 2018-01-18T04:55:40Z beach: I guess I will be the only user. 2018-01-18T04:55:50Z drmeister: I feel the same way about "Slime" - love the programming environment - hate the name. 2018-01-18T04:57:13Z beach: Aside from that, I mean, calling the SLIME debugger a "debugger" is a joke. 2018-01-18T04:57:26Z beach: And it makes people think that we have the greatest programming environment around. 2018-01-18T04:57:27Z schoppenhauer quit (Ping timeout: 240 seconds) 2018-01-18T04:57:31Z beach: That just isn't the case. 2018-01-18T04:57:34Z drmeister: That won't make me stop using something - but I'd love to see a better "official" name. 2018-01-18T04:59:04Z drmeister: I don't disagree with you about sldb. 2018-01-18T04:59:33Z loke: beach: There are no screenshots or references in the PDF on clordane you posted. 2018-01-18T04:59:43Z schoppenhauer joined #lisp 2018-01-18T05:00:00Z beach: loke: That's because it doesn't exist. It's a specification. 2018-01-18T05:00:06Z loke: I see 2018-01-18T05:02:16Z smurfrobot joined #lisp 2018-01-18T05:02:31Z beach: The point here is that our Common Lisp implementations need to make breakpoints "thread aware" so that we can have one thread run the debugger to debug another thread. 2018-01-18T05:02:50Z beach: As long as that is not happening, we are doomed to have inferior programming environments. 2018-01-18T05:02:54Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-18T05:02:59Z raynold joined #lisp 2018-01-18T05:03:08Z mfiano quit (Quit: WeeChat 1.9.1) 2018-01-18T05:03:26Z patche joined #lisp 2018-01-18T05:03:39Z warweasle quit (Remote host closed the connection) 2018-01-18T05:04:08Z beach: If we do it that way, we can even allow the user to set breakpoints in standard functions like READ or GETHASH. Currently, that would almost certainly make the debugger stop working. 2018-01-18T05:05:13Z drmeister: I don't disagree. For things like that I currently use gdb or lldb - but they are not lisp aware. 2018-01-18T05:06:12Z beach: How does Clasp implement traces and breakpoints? 2018-01-18T05:06:49Z drmeister: Traces - I think it compiles a wrapper function. Breakpoints - I use lldb or gdb. 2018-01-18T05:07:14Z beach: So it replaces the FDEFINITION by the wrapper? 2018-01-18T05:07:23Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-18T05:07:33Z drmeister: I say I think it compiles a wrapper function because I haven't investigated how it works. I inherited it from ECL and it just works. 2018-01-18T05:07:40Z beach: I see. 2018-01-18T05:07:47Z beach: I'll ask jackdaniel then. 2018-01-18T05:08:12Z drmeister: The behavior is consistent with replacing the fdefinition with a wrapper. 2018-01-18T05:08:21Z aeth: Do people use issue trackers to track future features in large Lisp projects? Or do people use something else (e.g. org files?) 2018-01-18T05:08:21Z beach: Well, that technique doesn't really "work" according to me. 2018-01-18T05:08:28Z drmeister: The trace disappears if I recompile the function. 2018-01-18T05:08:44Z loke: aeth: Github issue tracker is popular. 2018-01-18T05:08:47Z beach: drmeister: Are you sure about that? 2018-01-18T05:09:11Z drmeister: Yes I'm sure about recompiling the function and losing any trace on it. 2018-01-18T05:09:17Z beach: drmeister: If you say (compile #'my-fun), then it disappears? 2018-01-18T05:09:33Z drmeister: No - if I C-c C-c it in slime. 2018-01-18T05:09:47Z drmeister: I can verify in a few min. 2018-01-18T05:09:50Z beach: drmeister: Then you are not only recompiling the function, but also modifying the FDEFINITION. 2018-01-18T05:14:21Z terpri quit (Ping timeout: 256 seconds) 2018-01-18T05:14:54Z red-dot joined #lisp 2018-01-18T05:20:18Z blacknc joined #lisp 2018-01-18T05:20:48Z drmeister: Good point 2018-01-18T05:20:52Z mishoo joined #lisp 2018-01-18T05:21:44Z beach: Anyway, I suspect Clasp and ECL (just like SBCL) don't have thread-aware trace points or breakpoints. 2018-01-18T05:22:14Z beach: I am fairly sure I could say the same of every other free Common Lisp implementation. 2018-01-18T05:24:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T05:26:26Z pierpa quit (Quit: Page closed) 2018-01-18T05:30:53Z fikka joined #lisp 2018-01-18T05:31:26Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-18T05:32:29Z Devon quit (Ping timeout: 256 seconds) 2018-01-18T05:32:40Z randomstrangerb joined #lisp 2018-01-18T05:36:28Z aeth: What would it take to multithread compilation in CL? 2018-01-18T05:36:34Z aeth: I don't think most implementations do this. 2018-01-18T05:36:45Z FreeBirdLjj joined #lisp 2018-01-18T05:38:19Z terpri joined #lisp 2018-01-18T05:38:52Z groovy2shoes joined #lisp 2018-01-18T05:40:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-18T05:47:32Z wigust joined #lisp 2018-01-18T05:56:05Z blacknc quit (Quit: Leaving) 2018-01-18T05:57:31Z shaftoe: fiddlerwoaroof_: where's your linedit fork repo? 2018-01-18T05:58:05Z ebzzry quit (Ping timeout: 240 seconds) 2018-01-18T06:00:36Z orivej joined #lisp 2018-01-18T06:01:14Z damke joined #lisp 2018-01-18T06:03:11Z smurfrobot joined #lisp 2018-01-18T06:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-18T06:04:10Z fikka quit (Ping timeout: 260 seconds) 2018-01-18T06:06:47Z fikka joined #lisp 2018-01-18T06:07:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-18T06:13:51Z ebzzry joined #lisp 2018-01-18T06:15:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T06:16:00Z LocaMocha joined #lisp 2018-01-18T06:16:23Z lagagain quit (Quit: Connection closed for inactivity) 2018-01-18T06:19:02Z khrbt joined #lisp 2018-01-18T06:19:10Z khrbt left #lisp 2018-01-18T06:20:17Z khrbt joined #lisp 2018-01-18T06:21:14Z zooey quit (Ping timeout: 255 seconds) 2018-01-18T06:23:56Z beach: So here is an idea for the implementation of thread-aware breakpoints in x86. The important feature is that threads that are not being debugged should not take too big a performance hit. 2018-01-18T06:24:00Z beach: I suggest that, when code is compiled with a high value of the DEBUG quality, then the execution of each form starts and ends with a test of the DF status flag. If 0, then execution continues as normal. 2018-01-18T06:24:02Z beach: If 1, then some further action is taken to determine whether there is a breakpoint at this point in the code. The "further action" remains to be specified, but the slow version would be to interrogate a breakpoint table in the thread instance. 2018-01-18T06:24:26Z kushal joined #lisp 2018-01-18T06:25:28Z red-dot joined #lisp 2018-01-18T06:25:33Z beach: The use of the DF flag means that, if the implementation uses specific instructions that depend on its value, then the value has to be saved and restored around the execution of these instructions. 2018-01-18T06:27:00Z beach: Any thoughts or questions? 2018-01-18T06:29:08Z zooey joined #lisp 2018-01-18T06:32:33Z vibs29 quit (Ping timeout: 248 seconds) 2018-01-18T06:33:16Z rme: when I last looked into using the x86 direction flag, I found that manipulating it was expensive. it ended up being faster to set a flag in memory. 2018-01-18T06:33:44Z beach: Interesting. 2018-01-18T06:33:49Z White_Flame: I'm kind of preferential to Java-style interruption, where an address is routinely read. If it's to be interrupted, the address range is made unreable. Now, you could extend this so each thread is reading a different address (just an indirection through a thread-local pointer), and/or use different addresses per potential breakpoint. 2018-01-18T06:33:57Z beach: rme: Even reading it is expensive? 2018-01-18T06:34:15Z White_Flame: I think you have to push flags to stack to read the DF flag, only set & clear are part of the ISA 2018-01-18T06:34:30Z rme: it's been long enough ago that I don't remember the exact details, I'm afraid. 2018-01-18T06:34:37Z vibs29 joined #lisp 2018-01-18T06:34:56Z beach: White_Flame: It seems you are right about that. 2018-01-18T06:35:26Z phoe: and 99.9% of the time you'll be reading it, only 0.01% will be clearing/setting it 2018-01-18T06:35:29Z safe quit (Read error: Connection reset by peer) 2018-01-18T06:35:35Z White_Flame: hmm, if you have ample room in your 64-bit address space, you could read thread_local_page + N*program_counter to get a unique memory-protection based interrupt per location in your code 2018-01-18T06:35:50Z White_Flame: per location per thread 2018-01-18T06:35:59Z beach: White_Flame: Good ideas. I'll think about your suggestion(s). 2018-01-18T06:36:45Z White_Flame: and with future fixes for meltdown/crispr, it might even be quicker to interrupt than it is now ;) 2018-01-18T06:36:51Z White_Flame: erm, spectrre 2018-01-18T06:37:09Z rme: I'd want to look at trying to use the dr0 through dr3 debug registers on x86 for setting hardware breakpoints if possible 2018-01-18T06:39:34Z beach: rme: I haven't had the time to read up on hardware breakpoints, but that's an important subject. 2018-01-18T06:39:59Z oleo quit (Quit: Leaving) 2018-01-18T06:40:17Z zooey quit (Remote host closed the connection) 2018-01-18T06:40:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T06:41:07Z knobo joined #lisp 2018-01-18T06:41:28Z zooey joined #lisp 2018-01-18T06:41:42Z fikka joined #lisp 2018-01-18T06:43:30Z beach: I still like the DF over an address in memory, because that address would have to depend on the thread, making it expensive to read because of indirection. But here is a compromise: at the entry of each function compiled with a high value of the DEBUG quality, move the DF flag to a register or to the local stack frame so that each further test inside the function is cheaper. 2018-01-18T06:43:31Z Karl_Dscc joined #lisp 2018-01-18T06:43:55Z beach: I like White_Flame's suggestions as a "second test" when the flag is set. 2018-01-18T06:46:07Z beach: Some simple hash-like technique could be used. Take the PC modulo (say) 256 and consult a table in the thread instance. If a bit is set there, then consult a complete hash table to determine whether this PC value actually has a breakpoint. 2018-01-18T06:47:11Z White_Flame: I suspect the Java way is one of the least intrusive, though it probably does tie up a cache line 2018-01-18T06:47:58Z beach: I fear it will be expensive for threads that are not debugged. 2018-01-18T06:47:59Z rme: there's almost certainly going to be thread-local memory maintained by the lisp runtime. on ccl, %fs or %gs points to the thread-local memory block (except on highly advanced systems like macOS, where we have to burn a gpr for this). 2018-01-18T06:48:23Z White_Flame: beach: each thread reads its own address; you only deny read permissions for the memory page for one thread, in my idea 2018-01-18T06:48:49Z White_Flame: I don't know recall if Java's was per-thread, or for stop-the-world 2018-01-18T06:48:54Z White_Flame: -know 2018-01-18T06:49:03Z smasta quit (Ping timeout: 248 seconds) 2018-01-18T06:49:26Z beach: Oh, so you play with the memory manager for different threads? 2018-01-18T06:49:53Z White_Flame: basically, each thread just reads a canary location in memory. When you want to halt a thread, play with the memory manager for a particular canary location 2018-01-18T06:50:12Z White_Flame: each thread reads a _separate_ per-thread location 2018-01-18T06:50:28Z beach: Oh! 2018-01-18T06:50:34Z beach: That sounds expensive, though. 2018-01-18T06:50:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-18T06:50:47Z beach: Go to the thread instance, find the address to read, then read it. 2018-01-18T06:50:55Z beach: Sounds like several memory accesses. 2018-01-18T06:50:58Z beach: No? 2018-01-18T06:51:02Z beach: Am I missing something? 2018-01-18T06:51:08Z White_Flame: hopefully it's just a single indirection 2018-01-18T06:51:23Z White_Flame: I don't know all the addressing modes available 2018-01-18T06:51:25Z beach: That sounds way more expensive than testing a bit though. 2018-01-18T06:51:40Z beach: No? 2018-01-18T06:51:44Z White_Flame: the thing is, it'll always be cached. Which can also be a downside 2018-01-18T06:51:55Z White_Flame: the code footprint would be smaller for the memory location, though 2018-01-18T06:52:00Z White_Flame: depends on what you need 2018-01-18T06:52:17Z beach: What makes you think it is smaller? 2018-01-18T06:52:23Z quazimodo joined #lisp 2018-01-18T06:52:42Z White_Flame: it's just a read through a register+offset indirection, assuming a thread-local table is in a register 2018-01-18T06:52:50Z White_Flame: that doesn't require many bytes of SIA 2018-01-18T06:52:51Z White_Flame: ISA 2018-01-18T06:53:34Z beach: I think I understand. 2018-01-18T06:53:58Z pagnol joined #lisp 2018-01-18T06:55:11Z beach: So, either way, we have at least two ways of making thread-aware breakpoints with very little cost for threads that are not being debugged, and a modest cost for a thread being debugged, but not at this particular value of PC. 2018-01-18T06:56:11Z White_Flame: "safepoints" is seemingly the jvmterm: http://blog.ragozin.info/2012/10/safepoints-in-hotspot-jvm.html 2018-01-18T06:56:56Z White_Flame: If you did a read of thread-local-canary-address + 4k*PC, then maybe you could use the same trick to interrupt at a particular PC on a particular thread 2018-01-18T06:57:12Z heurist` joined #lisp 2018-01-18T06:57:17Z heurist quit (Ping timeout: 255 seconds) 2018-01-18T06:57:18Z White_Flame: having reserved a lot of 64bit address space for the purpose 2018-01-18T06:57:26Z waaron joined #lisp 2018-01-18T06:57:44Z beach: That makes me nervous though. It could just be me of course. 2018-01-18T06:58:07Z White_Flame: I'm fully aware that my imagination has no limits of practicality :) 2018-01-18T06:58:12Z beach: Heh! 2018-01-18T06:58:33Z patche quit (Quit: Lost terminal) 2018-01-18T06:58:34Z White_Flame: but a 64 bit space is ... big 2018-01-18T06:59:13Z White_Flame: if I remember correctly, the width of the visible universe in terms of electron-diameters is on the order of 2^80 2018-01-18T06:59:18Z beach: It is not important to me at this point to know the exact solution; just that one exists. And I am now convinced that there are at least two. 2018-01-18T07:01:14Z flamebeard joined #lisp 2018-01-18T07:01:16Z jackdaniel: someone told that god had to be a very cruel at the time he made men – give them mind with capabilities to make almost infinitely ambitious plans and time to live which doesn't allow to excercise them :) 2018-01-18T07:03:21Z jonh quit (Quit: WeeChat 0.4.2) 2018-01-18T07:04:22Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-18T07:06:39Z shka joined #lisp 2018-01-18T07:11:20Z Karl_Dscc quit (Remote host closed the connection) 2018-01-18T07:12:48Z fikka joined #lisp 2018-01-18T07:13:16Z sz0 joined #lisp 2018-01-18T07:13:45Z aeth: 128 bit is inevitable 2018-01-18T07:13:48Z aeth: Some day. 2018-01-18T07:16:43Z White_Flame: wasn't AS/400 128-bit? 2018-01-18T07:17:07Z smasta joined #lisp 2018-01-18T07:18:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-18T07:19:11Z msb quit (Ping timeout: 255 seconds) 2018-01-18T07:19:39Z aeth: According to Wikipedia, sort of: https://en.wikipedia.org/wiki/128-bit 2018-01-18T07:19:45Z aeth: They're just being very forwards-compatible 2018-01-18T07:20:29Z aeth: Introduced in 1988, so probably more than 50 years forwards-compatible. 2018-01-18T07:21:39Z smasta quit (Ping timeout: 256 seconds) 2018-01-18T07:21:55Z beach: White_Flame: Wait, your single per-thread address read suffers a severe performance problem when the potential breakpoint turns out not to be one. 2018-01-18T07:22:14Z beach: You have to go through the interrupt and context-switch mechanism, right? 2018-01-18T07:22:32Z White_Flame: only when you want to trigger the interrupt; that should only happen once 2018-01-18T07:22:47Z mishoo quit (Ping timeout: 256 seconds) 2018-01-18T07:22:51Z dec0n joined #lisp 2018-01-18T07:22:57Z beach: I don't see that. 2018-01-18T07:23:14Z beach: Here is a thread being debugged, so I arrive at some point in the code and I read my unique address. 2018-01-18T07:23:17Z White_Flame: but yeah, switching the MMU stuff to reject he read and flushing TLB cache or whatever is a pretty expensive operation, but that's all involved when you actually perform the interrupt, not exploration 2018-01-18T07:23:26Z beach: The thread is being debugged, so I take the read fault. 2018-01-18T07:23:44Z White_Flame: ah, right, if it's just a per-thread address, and not per-thread address + 4k*pc 2018-01-18T07:23:46Z beach: But this particular PC value does not have a breakpoint associated with it. 2018-01-18T07:23:55Z beach: Right, which may be excessive. 2018-01-18T07:24:04Z White_Flame: so yes, it would constantly be interrupting until it found the PC 2018-01-18T07:24:10Z White_Flame: though the other threads would be left alone 2018-01-18T07:24:18Z beach: Sure. 2018-01-18T07:25:16Z White_Flame: there's all sorts of granularity tradeoffs you could make, like assign a page offset per function, so you only hammer it when it's in the particular function the breakpoint is in 2018-01-18T07:25:43Z White_Flame: but yeah, if you're not going to have it per-PC, then it might make more sense to do manual checks, if you can do them cheaply 2018-01-18T07:26:17Z White_Flame: random thought, but are there any feature of cpu affinity that could help isolate the thread? 2018-01-18T07:26:40Z White_Flame: *features (I hate this laptop keyboard) 2018-01-18T07:26:51Z Ober quit (Quit: Emacs must have died) 2018-01-18T07:27:25Z sjl joined #lisp 2018-01-18T07:27:50Z White_Flame: but really, how expensive is it to set a breakpoint, and test to see if you're in the intended thread? 2018-01-18T07:27:56Z White_Flame: especially compared to other goofier ideas 2018-01-18T07:28:09Z makomo joined #lisp 2018-01-18T07:28:47Z beach: OK, final proposal that does not involve DF: At the entry of each function, read an address at a fixed offset in the thread instance. It contains a flag that indicates whether this thread is debugged. 2018-01-18T07:28:53Z beach: The contents is put in the stack frame or in a register, determined by the register allocator. Before and after the evaluation of each form, call a small local routine with PC as its argument. 2018-01-18T07:28:59Z beach: That routine starts by testing the flag. If 0 it returns normally (this is the case when the thread is not being debugged). If 1, it takes PC modulo (say) 1024 and consults a bit table in the thread instance. 2018-01-18T07:29:08Z beach: If the table contains a 0 (the usual case) then it returns normally, because it means there is no breakpoint at this PC value. If 1, it consults a hash table in the thread instance to see whether this particular PC value has a breakpoint. 2018-01-18T07:29:09Z beach: If not, it returns normally. If it does, it suspends execution and gives control to the debugger thread. 2018-01-18T07:29:57Z pagnol quit (Ping timeout: 240 seconds) 2018-01-18T07:30:45Z mlf joined #lisp 2018-01-18T07:31:29Z beach: White_Flame: I don't know the answer to your question, but this last solution of mine would work on any architecture. 2018-01-18T07:31:57Z sjl quit (Ping timeout: 240 seconds) 2018-01-18T07:33:19Z White_Flame: hmm, it would only work for a single breakpoint, but if you could do 1/(PC - read-from-thread-local), you could trigger a divide by zero exception if that location was set to the current PC 2018-01-18T07:34:06Z White_Flame: but then again, a simple test and branch could do the same 2018-01-18T07:34:12Z beach: Yeah. 2018-01-18T07:34:30Z beach: When the debugger sets a breakpoint, it updates the hash table and the bit table in the thread instance. When a breakpoint is being removed, it clears the bit table, traverses the hash table to set the bits in the bit table. 2018-01-18T07:35:13Z beach: I think this last technique wold work fairly well, with minimal performance impact. 2018-01-18T07:35:45Z White_Flame: hmm, if you double the memory footprint of your code, you could have a flag per instuction byte 2018-01-18T07:36:09Z White_Flame: then it's a large PC-relative offset to see if that flag matches your current thread pointer 2018-01-18T07:36:41Z White_Flame: ie, 15MB of code footprint, then 15MB of zeros mirroring the same locations 2018-01-18T07:36:51Z phoe: I don't think he wants per-instruction breakpoints though, rather one breakpoint per Lisp form. 2018-01-18T07:37:02Z White_Flame: I know, most of them would be unused 2018-01-18T07:37:09Z White_Flame: but they'd be immediate to calculate 2018-01-18T07:38:06Z White_Flame: just read PC+some_big_offset, compare to thread-local register 2018-01-18T07:38:37Z phoe: It will be fast, correct. 2018-01-18T07:40:03Z White_Flame: it's nice living in the future where you can throw egregious amounts of RAM at a problem 2018-01-18T07:44:02Z beach: Hmm. If I make the bit table smaller, say 64 bits, I can skip the single bit and load this small table to the stack or to a register (subject to register allocation). The famous small routine would then immediately test a bit that is PC modulo 64. How much more expensive would that be compared to testing one single bit? I am guessing "not much". 2018-01-18T07:46:03Z beach: Maybe not. The debugger would have to know how to update the local version of the bit table. Not worth it, probably. 2018-01-18T07:46:58Z milanj joined #lisp 2018-01-18T07:47:44Z fikka joined #lisp 2018-01-18T07:49:03Z lnostdal joined #lisp 2018-01-18T07:49:59Z shka: White_Flame: it would be nice, if people would not throw copious amounts on RAM into web based application 2018-01-18T07:50:20Z White_Flame: guilty as charged ;) 2018-01-18T07:52:58Z White_Flame: but I think a good post-IDA disassembler (my big web-based application) tends to be for people willing to have big hardware footprints 2018-01-18T07:54:13Z White_Flame: (hmm, though I think I technically started it way before IDA was a thing...) 2018-01-18T07:57:50Z mishoo joined #lisp 2018-01-18T08:01:16Z vlatkoB joined #lisp 2018-01-18T08:03:20Z aindilis quit (Read error: Connection reset by peer) 2018-01-18T08:06:19Z aindilis joined #lisp 2018-01-18T08:07:27Z clog quit (Ping timeout: 268 seconds) 2018-01-18T08:11:17Z smasta joined #lisp 2018-01-18T08:12:51Z luis quit (Quit: ZNC - http://znc.sourceforge.net) 2018-01-18T08:13:11Z HDurer quit (Remote host closed the connection) 2018-01-18T08:14:44Z nicdev quit (Remote host closed the connection) 2018-01-18T08:15:53Z smasta quit (Ping timeout: 255 seconds) 2018-01-18T08:17:12Z Cymew joined #lisp 2018-01-18T08:19:45Z fikka quit (Ping timeout: 265 seconds) 2018-01-18T08:20:50Z fikka joined #lisp 2018-01-18T08:24:32Z HDurer joined #lisp 2018-01-18T08:24:32Z HDurer quit (Changing host) 2018-01-18T08:24:32Z HDurer joined #lisp 2018-01-18T08:26:57Z stux|RC-- quit (Ping timeout: 240 seconds) 2018-01-18T08:27:22Z stux|RC joined #lisp 2018-01-18T08:27:26Z emacsoma` joined #lisp 2018-01-18T08:27:40Z emacsomancer quit (Ping timeout: 260 seconds) 2018-01-18T08:28:59Z phoe: What is the ELS mailing list address? 2018-01-18T08:29:25Z phoe: I'll want to unsubscribe from one address and subscribe from another one. 2018-01-18T08:29:39Z phoe: Oh, I got it. Thanks. 2018-01-18T08:30:57Z shifty quit (Ping timeout: 248 seconds) 2018-01-18T08:33:42Z schweers joined #lisp 2018-01-18T08:35:24Z akkad joined #lisp 2018-01-18T08:35:53Z varjag joined #lisp 2018-01-18T08:47:38Z JoJoen is now known as parseval 2018-01-18T08:49:36Z krasnal joined #lisp 2018-01-18T08:52:46Z beach: A summary of my own conclusions of the discussion on breakpoints is now in Appendix A of this document: http://metamodular.com/clordane.pdf 2018-01-18T08:53:21Z beach: I will submit it to nyef`` when he wakes up, because we have discusses such things in the past. 2018-01-18T08:56:09Z beach: Interesting related information: When I run SICL inside a host Common Lisp implementation (currently SBCL), I can implement breakpoints this way with very little effort. I can then implement Clordane so that it can debug SICL programs, even though 1. SICL doesn't really exist, and 2. SBCL doesn't support per-thread breakpoints. 2018-01-18T08:57:10Z phoe: Hah! 2018-01-18T08:57:36Z aeth: Impressive 2018-01-18T08:57:50Z phoe: 1) Well, now it does. 2) Well, now it does. 2018-01-18T08:58:29Z beach: Compare this idea to generating a SICL executable sooner rather than later. Then I would lose all my usual tools and I would have to resort to GDB or something similar with absolutely no knowledge of Common Lisp. 2018-01-18T08:58:31Z vydd joined #lisp 2018-01-18T08:58:31Z vydd quit (Changing host) 2018-01-18T08:58:31Z vydd joined #lisp 2018-01-18T08:58:41Z schweers: beach: So its possible to add better debuggers to existing implementations without modifying said implementation? 2018-01-18T08:59:25Z beach: Not really. I am not improving the processing of native SBCL code. Only code compiled with the SICL compiler for execution inside SBCL. 2018-01-18T08:59:37Z beach: So you would have to compile all your code with the SICL compiler. 2018-01-18T09:01:01Z schweers: okay, still seems impressive 2018-01-18T09:01:12Z beach: Thanks. 2018-01-18T09:01:19Z damke_ joined #lisp 2018-01-18T09:02:57Z mlf quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-18T09:03:27Z hajovonta joined #lisp 2018-01-18T09:03:51Z beach: I am basically accumulating evidence that I should not be hasty when it comes to creating a native SICL executable, and even less so when it comes to creating a bootable LispOS image. Instead, I should take advantage of a safe execution environment (here SBCL) to make the system as complete as possible first. 2018-01-18T09:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-18T09:10:50Z scymtym quit (Ping timeout: 260 seconds) 2018-01-18T09:11:22Z murii joined #lisp 2018-01-18T09:13:30Z hhdave joined #lisp 2018-01-18T09:21:58Z malm_ joined #lisp 2018-01-18T09:22:07Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-18T09:22:10Z malm_ quit (Client Quit) 2018-01-18T09:22:26Z loke: beach: What is the status of sicl at th emoment? 2018-01-18T09:23:25Z beach: Strange! Most of the code exists, but I am making very slow progress with the bootstrapping phase. 2018-01-18T09:24:00Z jack_rabbit joined #lisp 2018-01-18T09:27:00Z JuanDaugherty joined #lisp 2018-01-18T09:27:08Z schweers: beach: out of curiosity: what exactly does sicl do? does it compile to native code or something else? 2018-01-18T09:28:08Z beach: It will when it's done. Right now, it generates AST then HIR. The HIR code is then turned into a small subset of Common Lisp that is compiled on the host compiler for ultimate execution. 2018-01-18T09:28:56Z schweers: Small as in: its easier to write a compiler for, instead of for full CL? 2018-01-18T09:29:01Z beach: And the Common Lisp that is submitted to the host compiler uses first-class global environments for all its lookups. 2018-01-18T09:29:54Z beach: I haven't contemplated that possibility. It is probably easier to start with HIR directly for any other backend. 2018-01-18T09:30:16Z raynold: ahh it's a wonderful day 2018-01-18T09:32:21Z scymtym joined #lisp 2018-01-18T09:32:40Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-18T09:34:24Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-18T09:35:37Z randomstrangerb joined #lisp 2018-01-18T09:42:22Z reverse_light joined #lisp 2018-01-18T09:47:11Z angavrilov joined #lisp 2018-01-18T09:48:25Z quazimodo quit (Ping timeout: 256 seconds) 2018-01-18T09:57:09Z shrdlu68 joined #lisp 2018-01-18T09:57:38Z lnostdal quit (Ping timeout: 276 seconds) 2018-01-18T09:59:00Z lnostdal joined #lisp 2018-01-18T10:05:04Z clog joined #lisp 2018-01-18T10:05:17Z smurfrobot joined #lisp 2018-01-18T10:05:53Z vydd quit (Quit: Leaving) 2018-01-18T10:06:33Z smurfrobot quit (Remote host closed the connection) 2018-01-18T10:06:58Z quazimodo joined #lisp 2018-01-18T10:07:32Z scottj joined #lisp 2018-01-18T10:10:33Z hajovonta: hello 2018-01-18T10:13:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T10:14:36Z markong joined #lisp 2018-01-18T10:18:55Z shrdlu68: hajovonta: hi 2018-01-18T10:21:32Z zooey quit (Ping timeout: 255 seconds) 2018-01-18T10:25:33Z Oddity quit (Ping timeout: 264 seconds) 2018-01-18T10:26:24Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-18T10:26:49Z vhost- quit (Ping timeout: 268 seconds) 2018-01-18T10:27:19Z heurist` is now known as heurist 2018-01-18T10:28:00Z zooey joined #lisp 2018-01-18T10:30:02Z smurfrobot joined #lisp 2018-01-18T10:30:39Z vhost- joined #lisp 2018-01-18T10:30:45Z red-dot joined #lisp 2018-01-18T10:39:29Z makomo quit (Ping timeout: 248 seconds) 2018-01-18T10:43:35Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-18T10:44:37Z Cymew quit (Remote host closed the connection) 2018-01-18T10:44:51Z randomstrangerb joined #lisp 2018-01-18T10:46:17Z kedorlaomer joined #lisp 2018-01-18T10:48:41Z smurfrobot quit (Remote host closed the connection) 2018-01-18T10:50:09Z nullniverse joined #lisp 2018-01-18T10:54:03Z milanj quit (Quit: This computer has gone to sleep) 2018-01-18T10:54:36Z _cosmonaut_ joined #lisp 2018-01-18T10:54:57Z smurfrobot joined #lisp 2018-01-18T10:55:54Z Kaisyu7 joined #lisp 2018-01-18T10:56:01Z nika quit (Remote host closed the connection) 2018-01-18T10:58:02Z papachan joined #lisp 2018-01-18T10:59:43Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-18T11:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-18T11:03:32Z sjl joined #lisp 2018-01-18T11:05:08Z damke_ joined #lisp 2018-01-18T11:08:09Z sjl quit (Ping timeout: 264 seconds) 2018-01-18T11:11:33Z m00natic joined #lisp 2018-01-18T11:14:40Z Cymew joined #lisp 2018-01-18T11:16:19Z kolb: can anyone with a working lispworks install check https://github.com/eugeneia/maxpc/issues/10 for me? 2018-01-18T11:16:28Z kolb: I can’t get lispworks PE to run on my box 2018-01-18T11:19:02Z dmiles quit (Ping timeout: 255 seconds) 2018-01-18T11:21:40Z cess11_ joined #lisp 2018-01-18T11:23:11Z cess11 quit (Ping timeout: 248 seconds) 2018-01-18T11:23:39Z mfiano joined #lisp 2018-01-18T11:24:29Z dmiles joined #lisp 2018-01-18T11:24:40Z smurfrobot joined #lisp 2018-01-18T11:27:27Z orivej quit (Ping timeout: 240 seconds) 2018-01-18T11:28:50Z razzy quit (Quit: meltdown) 2018-01-18T11:30:42Z shka: Shinmera: why oh why you had to use table names for user that makes it impossible to use s-sql ;_; 2018-01-18T11:30:57Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T11:31:24Z Shinmera: I have standards to enforce, and no interest in supporting broken systems. Sorry. 2018-01-18T11:31:32Z red-dot joined #lisp 2018-01-18T11:31:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-18T11:31:56Z Shinmera: If ssql is so broken that it can't even let you specify precise table and column names I don't know what to tell you 2018-01-18T11:35:25Z flip214: I've just seen a few C compiler switch/case fallthrough warnings and wondered - what's the Lisp way to do something similar? 2018-01-18T11:35:46Z Shinmera: Do what, cause the compiler to warn you? 2018-01-18T11:36:01Z flip214: TAGBODY needs the tags in the outermost body, so we can't GO into the THEN clause of an if... 2018-01-18T11:36:44Z flip214: so perhaps the cases need to be specified manually up front, with appropriate GOs into later parts of the TAGBODY 2018-01-18T11:36:52Z flip214: Shinmera: no, fallthrough code. 2018-01-18T11:37:14Z flip214: like Duff's device, for example. 2018-01-18T11:37:35Z flip214: although that one is easy because of the limited amount of code... 2018-01-18T11:37:58Z Shinmera: https://www.reddit.com/r/Common_Lisp/comments/5tvd05/duffs_device_in_common_lisp/ddqpt9v/ 2018-01-18T11:38:32Z razzy joined #lisp 2018-01-18T11:38:59Z flip214: Shinmera: yeah, but for more cases the manual translation is awkward. 2018-01-18T11:39:06Z himmAllRight17 joined #lisp 2018-01-18T11:39:08Z flip214: time for a FALLTHROUGH-CASE macro, I guess ;) 2018-01-18T11:41:05Z shka: Shinmera: well, i made pull request to fix it yesterday 2018-01-18T11:41:14Z shka: hopefully things will get better 2018-01-18T11:41:56Z beach: kolb: You are probably better off asking the people from LispWorks. 2018-01-18T11:44:08Z Shinmera: flip214: trivial enough https://plaster.tymoon.eu/view/701#701 2018-01-18T11:48:26Z kedorlaomer quit (Ping timeout: 256 seconds) 2018-01-18T11:49:05Z _death: now incorporate Go's fix for this deficiency of C.. 2018-01-18T11:49:47Z flip214: Shinmera: for EQL-clauses, yeah, right. 2018-01-18T11:50:26Z flip214: would need to accumulate TAGs if arbitrary expressions need to be allowed (as in COND) 2018-01-18T11:50:50Z Shinmera: Well, C only does EQL too, so 2018-01-18T11:50:53Z flip214: good work.... the only thing missing is a BREAK macrolet that does (GO ,end) ;) 2018-01-18T11:51:07Z Shinmera: You can't do that because BREAK is a CL symbol 2018-01-18T11:51:15Z flip214: Shinmera: "case 5 .. 100:" in at least some compilers 2018-01-18T11:51:17Z Shinmera: You can instead use RETURN 2018-01-18T11:51:57Z _death: (break should be the default and there should be a fallthrough macro..) 2018-01-18T11:52:03Z flip214: Shinmera: how about pushing that into alexandria or so? 2018-01-18T11:52:18Z _death: flip214: pushing macros with 0 users to alexandria? 2018-01-18T11:52:21Z flip214: _death: yeah, right. although that would break the compatibility with C. 2018-01-18T11:52:45Z flip214: _death: unless it's pushed somewhere, it will tend to _stay_ at 0 users. 2018-01-18T11:52:57Z _death: alexandria is a conservative library.. 2018-01-18T11:52:58Z flip214: thanks anyway. 2018-01-18T11:53:26Z sz0 joined #lisp 2018-01-18T11:53:55Z Shinmera: I don't want this macro, so you can push it into alexandria 2018-01-18T12:00:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-18T12:01:42Z milanj joined #lisp 2018-01-18T12:09:07Z fikka joined #lisp 2018-01-18T12:09:11Z flip214: I don't even succeed with docstring typo fixes, so that won't happen 2018-01-18T12:19:56Z dddddd joined #lisp 2018-01-18T12:21:38Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2018-01-18T12:24:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-18T12:26:28Z heurist` joined #lisp 2018-01-18T12:29:21Z heurist quit (Ping timeout: 248 seconds) 2018-01-18T12:29:46Z orivej joined #lisp 2018-01-18T12:31:46Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T12:31:59Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-18T12:32:22Z red-dot joined #lisp 2018-01-18T12:33:50Z jfb4 joined #lisp 2018-01-18T12:36:09Z krasnal quit (Remote host closed the connection) 2018-01-18T12:36:17Z papachan quit (Ping timeout: 248 seconds) 2018-01-18T12:37:23Z damke joined #lisp 2018-01-18T12:39:18Z hvxgr joined #lisp 2018-01-18T12:39:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-18T12:39:40Z fikka joined #lisp 2018-01-18T12:57:12Z Xach: khrbt: maybe we could move the github one to sharplispers and call it canon? i can check with nikodemus 2018-01-18T13:01:59Z scymtym_ joined #lisp 2018-01-18T13:04:56Z Devon joined #lisp 2018-01-18T13:06:17Z scymtym quit (Ping timeout: 255 seconds) 2018-01-18T13:07:10Z troydm joined #lisp 2018-01-18T13:08:09Z makomo joined #lisp 2018-01-18T13:09:31Z reverse_light quit (Remote host closed the connection) 2018-01-18T13:14:44Z asarch joined #lisp 2018-01-18T13:18:14Z xrash joined #lisp 2018-01-18T13:18:27Z alandipert: is there a way to specify a quicklisp disp on a per-project basis? ie http://blog.quicklisp.org/2011/08/going-back-in-dist-time.html appears to set the dist for all subsequent lisp processes on the machine; i'm curious about setting it just for a session/image 2018-01-18T13:19:13Z Xach: alandipert: you can have multiple quicklisp directories - everything is done relative to the initial setup.lisp file. 2018-01-18T13:19:25Z Xach: you could have one in each project if you wanted 2018-01-18T13:19:47Z Xach: it will cost me many picodollars, but i am willing to deal 2018-01-18T13:19:53Z alandipert: Xach thanks, that sounds like a good solution :-) 2018-01-18T13:24:02Z alandipert: Xach i'm kind of a noob, so to clarify... for the per-project way, each project would have something like setup.lisp in it, right? since i see the *quicklisp-home*/qmerge stuff at the top 2018-01-18T13:24:44Z Xach: alandipert: you would have basically an entire quicklisp directory in it (the actual name doesn't matter, just the file arrangement under it) 2018-01-18T13:25:39Z Xach: you can do that with the quicklisp.lisp installer file by using a :path option too 2018-01-18T13:25:54Z Xach: e.g. (quicklisp-quickstart:install :path "my-project/quicklisp/") 2018-01-18T13:26:05Z scottj quit (Quit: leaving) 2018-01-18T13:26:41Z Xach: or just cp -a an existing installation, or equivalent 2018-01-18T13:28:35Z smurfrobot joined #lisp 2018-01-18T13:28:35Z alandipert: Xach that's great, thanks again 2018-01-18T13:33:08Z dilated_dinosaur quit (Ping timeout: 255 seconds) 2018-01-18T13:33:20Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-18T13:34:58Z pjb quit (Ping timeout: 256 seconds) 2018-01-18T13:36:36Z FreeBirdLjj joined #lisp 2018-01-18T13:36:57Z murii quit (Ping timeout: 240 seconds) 2018-01-18T13:38:11Z zooey quit (Ping timeout: 255 seconds) 2018-01-18T13:41:14Z zooey joined #lisp 2018-01-18T13:45:55Z pjb joined #lisp 2018-01-18T13:45:58Z dilated_dinosaur joined #lisp 2018-01-18T13:46:12Z schweers quit (Read error: Connection reset by peer) 2018-01-18T13:46:28Z schweers joined #lisp 2018-01-18T13:50:06Z pjb quit (Remote host closed the connection) 2018-01-18T13:53:11Z pjb joined #lisp 2018-01-18T13:53:45Z drot quit (Quit: Quit.) 2018-01-18T13:55:15Z rumbler31 joined #lisp 2018-01-18T13:55:27Z drot joined #lisp 2018-01-18T14:11:16Z Murii joined #lisp 2018-01-18T14:12:21Z warweasle joined #lisp 2018-01-18T14:12:56Z Murii quit (Client Quit) 2018-01-18T14:14:12Z attila_lendvai: I can push to alexandria and I don't know about any pending non-controversial patches 2018-01-18T14:14:16Z hvxgr quit (Quit: leaving) 2018-01-18T14:14:59Z hvxgr joined #lisp 2018-01-18T14:19:27Z Murii joined #lisp 2018-01-18T14:21:05Z Murii quit (Client Quit) 2018-01-18T14:21:28Z Murii joined #lisp 2018-01-18T14:21:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-18T14:22:42Z z3t0 joined #lisp 2018-01-18T14:23:13Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-18T14:25:12Z smurfrobot joined #lisp 2018-01-18T14:26:40Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-18T14:27:13Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-18T14:30:17Z Tobbi joined #lisp 2018-01-18T14:30:49Z FreeBirdLjj joined #lisp 2018-01-18T14:31:28Z fikka joined #lisp 2018-01-18T14:34:50Z Bike joined #lisp 2018-01-18T14:39:12Z smurfrobot quit (Remote host closed the connection) 2018-01-18T14:40:11Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-18T14:41:38Z nullniverse quit (Read error: Connection reset by peer) 2018-01-18T14:41:45Z Devon quit (Ping timeout: 264 seconds) 2018-01-18T14:42:19Z attila_lendvai joined #lisp 2018-01-18T14:42:19Z attila_lendvai quit (Changing host) 2018-01-18T14:42:19Z attila_lendvai joined #lisp 2018-01-18T14:43:45Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-18T14:44:17Z z3t0 joined #lisp 2018-01-18T14:44:39Z Kevslinger joined #lisp 2018-01-18T14:44:59Z ikki joined #lisp 2018-01-18T14:48:02Z FreeBirdLjj joined #lisp 2018-01-18T14:48:57Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-18T14:49:34Z papachan joined #lisp 2018-01-18T14:50:57Z mishoo quit (Ping timeout: 240 seconds) 2018-01-18T14:53:09Z fikka quit (Ping timeout: 263 seconds) 2018-01-18T14:57:32Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-18T14:57:36Z kami joined #lisp 2018-01-18T14:57:56Z kami: Hello #lisp 2018-01-18T14:59:05Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T15:00:39Z beach: Hello kami. 2018-01-18T15:01:11Z FreeBirdLjj joined #lisp 2018-01-18T15:01:39Z phoe: hey hi 2018-01-18T15:01:43Z Oddity joined #lisp 2018-01-18T15:01:53Z zooey quit (Ping timeout: 255 seconds) 2018-01-18T15:02:53Z rumbler31: good morning 2018-01-18T15:04:35Z scymtym__ joined #lisp 2018-01-18T15:04:44Z red-dot joined #lisp 2018-01-18T15:05:05Z ebzzry quit (Ping timeout: 240 seconds) 2018-01-18T15:06:42Z sjl joined #lisp 2018-01-18T15:06:43Z smurfrobot joined #lisp 2018-01-18T15:07:15Z JuanDaugherty joined #lisp 2018-01-18T15:07:23Z z3t0 joined #lisp 2018-01-18T15:09:08Z scymtym_ quit (Ping timeout: 265 seconds) 2018-01-18T15:09:23Z zooey joined #lisp 2018-01-18T15:09:33Z fikka joined #lisp 2018-01-18T15:10:48Z ebzzry joined #lisp 2018-01-18T15:12:01Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-18T15:12:34Z LiamH joined #lisp 2018-01-18T15:12:34Z shrdlu68: What's the purpose of #'cl:char-int ? 2018-01-18T15:13:08Z Bike: some part of the "attributes" thing nobody uses any more 2018-01-18T15:13:42Z shrdlu68: Oh, I see. 2018-01-18T15:14:15Z fikka quit (Ping timeout: 260 seconds) 2018-01-18T15:14:58Z ebrasca joined #lisp 2018-01-18T15:16:15Z fikka joined #lisp 2018-01-18T15:16:21Z pjb: For example, you could encode font attributes there, so you could write bold or italic characters with format. 2018-01-18T15:18:25Z tfb: CL originally had char-bits and other functions to deal with attributes (all coming from Symbolics I think), and char-int included the bits but char-code didn't 2018-01-18T15:18:54Z tfb: (or, perhaps, the other way around) 2018-01-18T15:19:36Z tfb: but that all went away between CLtL1 and 2 I think (might have still been there in 2, was gone by the standard) 2018-01-18T15:20:22Z kami quit (Ping timeout: 256 seconds) 2018-01-18T15:21:44Z fikka quit (Ping timeout: 255 seconds) 2018-01-18T15:22:58Z oleo joined #lisp 2018-01-18T15:23:17Z rippa joined #lisp 2018-01-18T15:26:08Z z3t0 joined #lisp 2018-01-18T15:29:35Z knobo quit (Ping timeout: 248 seconds) 2018-01-18T15:30:35Z z3t0 quit (Ping timeout: 255 seconds) 2018-01-18T15:38:03Z asarch quit (Ping timeout: 256 seconds) 2018-01-18T15:39:03Z smurfrobot quit (Remote host closed the connection) 2018-01-18T15:39:11Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-18T15:39:52Z Murii quit (Quit: WeeChat 1.4) 2018-01-18T15:40:34Z mishoo joined #lisp 2018-01-18T15:40:38Z SaganMan joined #lisp 2018-01-18T15:41:37Z Murii joined #lisp 2018-01-18T15:42:31Z fikka joined #lisp 2018-01-18T15:43:22Z FreeBirdLjj joined #lisp 2018-01-18T15:44:00Z ikki quit (Ping timeout: 260 seconds) 2018-01-18T15:44:06Z z3t0 joined #lisp 2018-01-18T15:48:40Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-18T15:49:34Z phoe: clhs char-int 2018-01-18T15:49:34Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_char_i.htm 2018-01-18T15:49:44Z nika joined #lisp 2018-01-18T15:50:52Z phoe: I think that Unicode rendered this function more or less useless. 2018-01-18T15:51:53Z eivarv joined #lisp 2018-01-18T15:52:44Z Bike: it's not about code points. in old lisp implementations you could encode things like a character being italicized or having a particular color. 2018-01-18T15:56:17Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-18T15:57:19Z fikka quit (Ping timeout: 248 seconds) 2018-01-18T15:57:23Z mnoonan joined #lisp 2018-01-18T15:57:38Z fikka joined #lisp 2018-01-18T15:58:35Z zaquest quit (Ping timeout: 260 seconds) 2018-01-18T16:00:20Z FreeBirdLjj joined #lisp 2018-01-18T16:00:56Z Murii quit (Quit: WeeChat 1.4) 2018-01-18T16:00:59Z Cymew quit (Remote host closed the connection) 2018-01-18T16:03:35Z emacsoma` quit (Ping timeout: 276 seconds) 2018-01-18T16:04:16Z kolb: I just learned that LispWorks does unicode in a weird way, i.e. (length "a⍳c") → 5 2018-01-18T16:04:46Z antoszka: Oops. 2018-01-18T16:04:57Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T16:04:59Z zaquest joined #lisp 2018-01-18T16:05:22Z antoszka: I apparently counts the bytes. 2018-01-18T16:05:29Z antoszka: ~ echo -n "a⍳c" | hexdump -C 2018-01-18T16:05:31Z antoszka: 00000000 61 e2 8d b3 63 2018-01-18T16:05:31Z red-dot joined #lisp 2018-01-18T16:05:52Z Murii joined #lisp 2018-01-18T16:06:28Z kolb: well "weird" is maybe too much said, more like encoding unaware but 8-bit clean 2018-01-18T16:06:40Z kolb: except in symbol names :> 2018-01-18T16:06:49Z shka: Shinmera: what is the canonical way to handle errors from api (like handling incorrect user input 2018-01-18T16:06:50Z shka: ) 2018-01-18T16:06:55Z shka: ? 2018-01-18T16:07:14Z Cymew joined #lisp 2018-01-18T16:07:49Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-18T16:08:44Z Shinmera: shka: If the error is of type api-error, then the API will automatically handle it be either outputting it as data, or redirecting back with the error GET parameter set if the browser parameter is "true" 2018-01-18T16:08:52Z Shinmera: Cf. https://github.com/Shirakumo/radiance/blob/master/api.lisp#L157 2018-01-18T16:08:56Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-18T16:09:00Z shka: neat! 2018-01-18T16:09:01Z shka: thanks 2018-01-18T16:09:15Z FreeBirdLjj joined #lisp 2018-01-18T16:09:28Z Shinmera: So typically in forms I have a hidden input field that sets "browser" to "true" 2018-01-18T16:09:31Z shka: btw, are you online 24/7? :D 2018-01-18T16:09:49Z Bike: antoszka: so what do you get from (char "a⍳c" 3), exactly 2018-01-18T16:09:57Z turkja quit (Ping timeout: 240 seconds) 2018-01-18T16:10:01Z Shinmera: No, but I'm typically around between 8:00-24:00 CE(S)T 2018-01-18T16:10:22Z pjb quit (Remote host closed the connection) 2018-01-18T16:11:59Z Cymew quit (Ping timeout: 255 seconds) 2018-01-18T16:12:32Z antoszka: Bike: I have sbcl so cannot reproduce the problem. 2018-01-18T16:12:41Z z3t0 joined #lisp 2018-01-18T16:12:52Z antoszka: As kolb says, it's probably just 8-bit clean 2018-01-18T16:12:58Z Shinmera: shka: I'm considering changing it to handle all errors except for special ones. 2018-01-18T16:13:17Z Shinmera: shka: Since being able to just (error "foo") and it doing the right thing would be much more convenient 2018-01-18T16:13:21Z Cymew joined #lisp 2018-01-18T16:13:53Z warweasle is now known as warweasle_afk 2018-01-18T16:14:01Z warweasle_afk quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-01-18T16:14:17Z shka: sounds somewhat reasonable 2018-01-18T16:14:39Z Shinmera: The reason I didn't do so so far is that catching all errors might leak information you don't want to leak. 2018-01-18T16:14:43Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-18T16:15:52Z flamebeard quit (Quit: Leaving) 2018-01-18T16:15:52Z shka: perhaps automatic logging of errors and redirecting to "Sorry, programmer is any idiot :(" page would be better 2018-01-18T16:16:06Z shka: that's it: anything that is not api-error 2018-01-18T16:16:30Z pjb joined #lisp 2018-01-18T16:16:52Z Shinmera: Maybe, but it still increases boilerplate a lot since it doesn't integrate well with other libraries. 2018-01-18T16:17:03Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-18T16:17:18Z Shinmera: So for instance if you have a thing that checks inputs or whatever for validity and uses errors, that won't automatically translate to the useful behaviour. 2018-01-18T16:17:50Z Cymew quit (Ping timeout: 255 seconds) 2018-01-18T16:19:25Z Cymew joined #lisp 2018-01-18T16:19:26Z shka: true, but errors like those signaled by find-class are weird 2018-01-18T16:19:35Z Shinmera: Right 2018-01-18T16:20:22Z pjb quit (Remote host closed the connection) 2018-01-18T16:21:04Z ikki joined #lisp 2018-01-18T16:22:51Z dec0n_ joined #lisp 2018-01-18T16:24:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T16:24:09Z Cymew quit (Ping timeout: 256 seconds) 2018-01-18T16:24:19Z fikka joined #lisp 2018-01-18T16:25:29Z scymtym__ quit (Ping timeout: 255 seconds) 2018-01-18T16:26:57Z dec0n quit (Ping timeout: 268 seconds) 2018-01-18T16:27:17Z pjb joined #lisp 2018-01-18T16:29:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T16:33:09Z fikka joined #lisp 2018-01-18T16:33:37Z hajovonta quit (Quit: hajovonta) 2018-01-18T16:41:42Z moei joined #lisp 2018-01-18T16:41:55Z dec0n_ quit (Read error: Connection reset by peer) 2018-01-18T16:42:32Z fikka quit (Ping timeout: 256 seconds) 2018-01-18T16:46:30Z pjb quit (Remote host closed the connection) 2018-01-18T16:47:19Z hexfive joined #lisp 2018-01-18T16:47:35Z brendyn quit (Ping timeout: 260 seconds) 2018-01-18T16:47:48Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-18T16:48:12Z shka: Shinmera: i have another trivial question 2018-01-18T16:48:41Z fikka joined #lisp 2018-01-18T16:48:51Z shka: how can i make this (post/get "browser") return true 2018-01-18T16:49:03Z shka: AKA: what should i put in my html 2018-01-18T16:49:22Z shka: i know it may seem stupid but i am scratching my head right now 2018-01-18T16:49:28Z Shinmera: If you have a form: 2018-01-18T16:49:40Z shka: riiiight 2018-01-18T16:49:41Z Shinmera: If it's just a link, add ?browser=true or whatnot to the end. 2018-01-18T16:50:12Z Bike: Has anyone ever used next-method-p? i have no concept of how it would be used and am curious. 2018-01-18T16:50:19Z shka: honestly i forgot about that hidden html form crap 2018-01-18T16:50:40Z Shinmera: Bike: I have 2018-01-18T16:50:44Z pjb joined #lisp 2018-01-18T16:50:44Z shka: Shinmera: thanks 2018-01-18T16:51:02Z shka: Bike: I did, but later refactored my code to get rid of it 2018-01-18T16:51:02Z Bike: link? (brb though) 2018-01-18T16:51:27Z Devon joined #lisp 2018-01-18T16:52:56Z Shinmera: Bike: https://github.com/Shinmera/qtools/blob/master/widget-convenience.lisp#L39 https://github.com/Shinmera/qtools/blob/master/examples/game/primitives.lisp#L46 2018-01-18T16:53:02Z schweers quit (Read error: Connection reset by peer) 2018-01-18T16:53:05Z oleo: i thought next-method-p is a thing to be called in :around methods 2018-01-18T16:53:18Z schweers joined #lisp 2018-01-18T16:53:27Z schweers quit (Client Quit) 2018-01-18T16:53:31Z Shinmera: Bike: Generally I find it useful if you want to do something like the append/etc method combination, but want to leave control to the method definer about whether they want to exclude superclasses or not. 2018-01-18T16:53:36Z shka: oleo: around method won't be called if you don't have primary method so what's the point? 2018-01-18T16:53:39Z tazjin: does someone know of an example for using enum types in postgres via postmodern? 2018-01-18T16:54:18Z oleo: shka: who said that ? 2018-01-18T16:55:27Z oleo: clos looks for primary methods first it doesn't say there have to be primary methods in order for the rest to be looked up..... 2018-01-18T16:55:28Z oleo: afaik 2018-01-18T16:55:30Z shka: uuuuh 2018-01-18T16:55:47Z shka: i am wrong again i guess… 2018-01-18T16:55:59Z shka: i honestly thought that this is the case 2018-01-18T16:56:05Z oleo: nope, i don't think so 2018-01-18T16:56:18Z oleo: you can be done with just one :around method 2018-01-18T16:56:22Z oleo: which is then default 2018-01-18T16:56:55Z pjb quit (Ping timeout: 265 seconds) 2018-01-18T16:56:59Z tfb: kolb: you should read the LW documentation on unicode. 2018-01-18T16:57:08Z oleo: and it won't call other bookkeeping stuff, so if you still want that you need the call-next-method in it 2018-01-18T16:57:39Z oleo: so before calling call-next-method you can use call-next-method-p in order to ensure there is anything to be called.... 2018-01-18T16:58:22Z oleo: in order to not salvage calls needlessly 2018-01-18T16:58:24Z Devon quit (Ping timeout: 268 seconds) 2018-01-18T17:00:01Z hvxgr quit (Read error: Connection reset by peer) 2018-01-18T17:00:10Z shka: Shinmera: i think that i found bug 2018-01-18T17:00:39Z oleo: brb 2018-01-18T17:00:49Z oleo quit (Quit: Leaving) 2018-01-18T17:01:11Z shka: i setfed *debugger* to nil, but then out of sudden i get messages like Handling stray condition: The variable MODULARIZE-HOOKS:NAME is unbound. 2018-01-18T17:01:26Z fikka quit (Ping timeout: 276 seconds) 2018-01-18T17:02:42Z shka: ok 2018-01-18T17:02:44Z shka: never mind 2018-01-18T17:02:48Z shka: stupid mistake :D 2018-01-18T17:03:16Z hexfive quit (Remote host closed the connection) 2018-01-18T17:04:51Z hexfive joined #lisp 2018-01-18T17:05:44Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T17:06:19Z red-dot joined #lisp 2018-01-18T17:08:22Z scymtym joined #lisp 2018-01-18T17:09:53Z oleo joined #lisp 2018-01-18T17:10:38Z warweasle joined #lisp 2018-01-18T17:12:51Z _death: clhs 7.6.6.4 2018-01-18T17:12:51Z specbot: Built-in Method Combination Types: http://www.lispworks.com/reference/HyperSpec/Body/07_ffd.htm 2018-01-18T17:13:07Z _death: "An error is signaled if there are applicable around methods and no applicable primary methods." 2018-01-18T17:15:53Z Bike: Shinmera: i see... thanks 2018-01-18T17:16:34Z Bike: and the latter is like super 2018-01-18T17:16:44Z msb joined #lisp 2018-01-18T17:16:52Z rumbler31: Lsa2 2018-01-18T17:17:07Z rumbler31: wrong window 2018-01-18T17:17:20Z drewc_ joined #lisp 2018-01-18T17:17:41Z xrash quit (Remote host closed the connection) 2018-01-18T17:17:42Z oleo: so standard and built-in 2018-01-18T17:17:49Z oleo: method combination types 2018-01-18T17:17:54Z smurfrobot joined #lisp 2018-01-18T17:18:57Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-18T17:19:05Z drewc quit (Ping timeout: 260 seconds) 2018-01-18T17:20:12Z randomstrangerb joined #lisp 2018-01-18T17:21:40Z lnostdal quit (Quit: https://quanto.ga/) 2018-01-18T17:21:51Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-18T17:22:07Z _cosmonaut_ quit (Ping timeout: 248 seconds) 2018-01-18T17:22:17Z khrbt: Xach: yes, would be good to get linedit on sharplispers. I would be happy to assist with testing and merging of patches/PRs. 2018-01-18T17:22:23Z hexfive quit (Read error: Connection reset by peer) 2018-01-18T17:22:46Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-18T17:22:46Z _death: oleo: right, so :around methods for those usually don't need next-method-p 2018-01-18T17:23:08Z hexfive joined #lisp 2018-01-18T17:23:57Z zaquest quit (Read error: Connection reset by peer) 2018-01-18T17:24:17Z ebzzry quit (Ping timeout: 248 seconds) 2018-01-18T17:25:41Z oleo: err, wha ? 2018-01-18T17:26:09Z FreeBirdLjj joined #lisp 2018-01-18T17:27:27Z oleo: If an around method invokes call-next-method, the next most specific around method is called, if one is applicable. If there are no around methods or if call-next-method is called by the least specific around method, the other methods are called as follows: .... 2018-01-18T17:27:49Z oleo: if 2018-01-18T17:27:57Z fikka joined #lisp 2018-01-18T17:28:13Z oleo: i.e. if it does not call-next-method then those won't get called.... 2018-01-18T17:28:19Z _death: c-n-m can be passed arguments.. 2018-01-18T17:28:37Z zaquest joined #lisp 2018-01-18T17:28:40Z oleo: like call a specif one ? 2018-01-18T17:29:03Z Karl_Dscc joined #lisp 2018-01-18T17:29:31Z _death: I think there's some confusion.. if an :around method does not c-n-m, of course no next method will be called.. 2018-01-18T17:29:39Z oleo: yep 2018-01-18T17:29:43Z oleo: that's what i said 2018-01-18T17:30:48Z oleo: so when it has a c-n-m then it looks for a most specific :around method again, if there's none it goes to the least specific :around method and then from there to the rest of the methods 2018-01-18T17:30:56Z oleo: the bookeeping ones 2018-01-18T17:32:08Z _death: but usually it can assume that there will be a next method, so next-method-p is not needed 2018-01-18T17:32:35Z oleo: welp, you cycle once more..... 2018-01-18T17:33:15Z oleo: if you assume.... 2018-01-18T17:34:08Z lnostdal joined #lisp 2018-01-18T17:34:08Z _death: modality is different from material implication 2018-01-18T17:35:38Z nirved joined #lisp 2018-01-18T17:35:38Z _death: let's say, find a scenario where next-method-p returns nil in an :around method 2018-01-18T17:35:39Z smurfrobot joined #lisp 2018-01-18T17:36:36Z oleo: (when (next-method-p) (call-next-method)) 2018-01-18T17:36:51Z _death: this is meaningless, give code that works 2018-01-18T17:37:31Z JonSmith joined #lisp 2018-01-18T17:38:05Z Walex joined #lisp 2018-01-18T17:39:31Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-18T17:40:26Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-18T17:41:09Z makomo quit (Ping timeout: 264 seconds) 2018-01-18T17:41:23Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-01-18T17:42:04Z alandipert: is anyone aware of anything like a design discussion about lisp keywords? the 'why' and history of keywords. thanks in advance for pointers 2018-01-18T17:42:25Z hhdave quit (Ping timeout: 248 seconds) 2018-01-18T17:43:57Z dyelar quit (Ping timeout: 240 seconds) 2018-01-18T17:44:34Z tsuru joined #lisp 2018-01-18T17:44:44Z asarch joined #lisp 2018-01-18T17:44:47Z damke_ joined #lisp 2018-01-18T17:45:44Z m00natic quit (Remote host closed the connection) 2018-01-18T17:46:24Z phoe: alandipert: keywords are just symbols that evaluate to themselves. I do not know which dialect of Lisp they originate from though. Why do you ask? 2018-01-18T17:47:11Z alandipert: i am curious about aesthetic arguments for and against them, since they're technically equivalent to quoted symbols 2018-01-18T17:47:26Z _death: phoe: that's not the whole story, of course.. the reader is also modified to make keywords convenient to use 2018-01-18T17:47:45Z damke quit (Ping timeout: 264 seconds) 2018-01-18T17:48:02Z Xach: Yeah, (open "foo.txt" 'direction 'output) then involves package management or string compares or deeper trickery 2018-01-18T17:48:17Z orivej quit (Ping timeout: 248 seconds) 2018-01-18T17:48:28Z _death: alandipert: what are "quoted symbols"? 2018-01-18T17:50:25Z alandipert: _death an expression that evaluates to a symbol object 2018-01-18T17:50:49Z Xach: I don't know about their history but I appreciate their convenience 2018-01-18T17:52:56Z tfb: alandipert: suspect strongly keywords originated in Lisp machine lisp 2018-01-18T17:53:12Z smasta joined #lisp 2018-01-18T17:53:21Z _death: alandipert: a keyword is a symbol exported from the package named "KEYWORD" that evaluates to itself.. the reader is hacked to intern keywords this way, and to accept :foo as keyword:foo 2018-01-18T17:53:24Z alandipert: Xach in what respect do you find them convenient? considering 'foo and :foo are the same number of characters to type. visual distinction, automatic package membership, combination thereof? 2018-01-18T17:53:24Z tfb: along with packages (not in MACLISP, but are in Zetalisp) 2018-01-18T17:53:54Z _death: alandipert: this makes it convenient to use them as global names 2018-01-18T17:54:30Z Shinmera: alandipert: You're not comparing it properly. :foo is the same as 'keyword:foo. The /point/ of keywords is that they come from one single package. 2018-01-18T17:54:50Z tfb: alandipert: if you have a lot of functions which need an 'test' keyword argument, you need a home-package for that symbol. That package could be CL, but probably should not be. So it's KEYWORD 2018-01-18T17:55:40Z igemnace joined #lisp 2018-01-18T17:56:04Z _death: alandipert: you may be interested in KMP's post on "data hygiene" https://adeht.org/usenet-gems/data-hygiene.txt 2018-01-18T17:56:20Z tfb: (in fact it can't be CL because that would require you to be able to intern new symbols in CL and that would be horrible) 2018-01-18T17:56:25Z oleo: doesn't 'bla get interned automatically ? 2018-01-18T17:56:50Z oleo: polluting the current package name space ? 2018-01-18T17:57:12Z Xach: alandipert: :foo means the same thing regardless of the value of cl:*package*. Not so with 'foo. 2018-01-18T17:57:22Z varjag joined #lisp 2018-01-18T17:57:44Z oleo: heh 2018-01-18T17:57:56Z Xach: They are used as syntax, not as names, so clashes are not generally an issue. 2018-01-18T17:58:17Z Xach: (I use them as names but never in something shared for others to use) 2018-01-18T17:59:03Z alandipert: _death thanks for that link, i'll check it out 2018-01-18T18:00:45Z alandipert: Shimera and thanks for the clarification about package origin, that seems like the key distinction. the ability to make human-readable names that are not in a package 2018-01-18T18:00:53Z alandipert: altho it makes me wonder why strings aren't as suitable 2018-01-18T18:01:47Z smurfrobot joined #lisp 2018-01-18T18:02:11Z fikka quit (Ping timeout: 256 seconds) 2018-01-18T18:02:17Z Shinmera: Because (eq "foo" "foo") is not T. 2018-01-18T18:02:50Z Folkol joined #lisp 2018-01-18T18:03:21Z oleo: two strings on different addresses 2018-01-18T18:04:04Z tfb: strings are what languages which don't have symbols are forced to use as terrible substitutes for symbols 2018-01-18T18:04:05Z Shinmera: strings are a poor man's identifier. See almost any other language and the crutches they go through to do it like that. 2018-01-18T18:04:29Z alandipert: i'm familiar with this point of view but i'm trying to reach the next level of comprehending 2018-01-18T18:04:54Z FreeBirdLjj joined #lisp 2018-01-18T18:05:04Z alandipert: why are they poor identifiers? because they are typically used to represent inputs instead of names for parts of programs? 2018-01-18T18:05:31Z alandipert: i realized after typing that my inquiries are indistinguisable from trolling, so i think i will go read more stuff and report back if i find anything interesting. thanks all for the observations and pointers :-D 2018-01-18T18:06:27Z fikka joined #lisp 2018-01-18T18:06:32Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T18:06:55Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-18T18:06:56Z _death: strings are not atomic.. they also don't tend to live in namespaces 2018-01-18T18:07:10Z red-dot joined #lisp 2018-01-18T18:07:13Z tfb: alandipert: because to compare two strings you need to compare them element-by-element, while symbol-comparison is an instruction 2018-01-18T18:07:40Z Shinmera: And you'd be allocating strings all over the place 2018-01-18T18:08:33Z nika quit (Quit: Leaving...) 2018-01-18T18:09:55Z jmercouris joined #lisp 2018-01-18T18:10:18Z jmercouris: so I've made a macro called defcommand, effectively it is a wrapper around defun that does some other things 2018-01-18T18:10:21Z alandipert: some VMs intern strings under various circumstances. like if they're under a certain size or appear as a constant. certainly concern, but comes with a possible tradeoff 2018-01-18T18:10:32Z jmercouris: my issue is, that defcommand does indentation wrong, at least by my perspective 2018-01-18T18:10:44Z jmercouris: I would like to have the same indentation as defun, is this possible? or no? 2018-01-18T18:10:49Z Shinmera: Colleen: tell jmercouris look up trivial-indent 2018-01-18T18:10:49Z Colleen: jmercouris: About trivial-indent https://shinmera.github.io/trivial-indent#about_trivial-indent 2018-01-18T18:10:53Z _death: alandipert: it's generally recognized in other languages as well as that strings have "value semantics".. i.e. their identity is immaterial.. the identity of symbols is important 2018-01-18T18:11:49Z Bike: hey, nice. i've never understood the indentation rules and now, i don't have to 2018-01-18T18:11:58Z pjb joined #lisp 2018-01-18T18:11:58Z jmercouris: Shinmera: DamN! very cool 2018-01-18T18:12:00Z dyelar joined #lisp 2018-01-18T18:12:42Z jmercouris: Shinmera: Is there a way to pass a known indentation to define-indentation? 2018-01-18T18:12:50Z Shinmera: No 2018-01-18T18:13:01Z jmercouris: So i'd have to look up the slime source for a known indentation and copy/paste itin? 2018-01-18T18:13:18Z Shinmera: Well, INDENTATION is an accessor, but I don't think it'll tell you about functions not covered by trivial-indent itself. 2018-01-18T18:13:51Z jmercouris: Shinmera: Where do you usually put your indentations? alongside your macros? 2018-01-18T18:13:55Z jmercouris: in a separate file? 2018-01-18T18:14:01Z Shinmera: Under the macro in question 2018-01-18T18:14:10Z jmercouris: Shinmera: Very cool package man! 2018-01-18T18:14:15Z _death: jmercouris: if your defcommand takes (name lambda-list &body body) then the indentation should be similar to defun by default 2018-01-18T18:14:53Z tsuru quit (Ping timeout: 276 seconds) 2018-01-18T18:15:05Z jmercouris: _death: yes, that is what my macro accepts, but for some reason indents differently 2018-01-18T18:15:25Z jmercouris: The number of indents is 4 instead of 2 2018-01-18T18:15:39Z Shinmera: For what? The body? 2018-01-18T18:15:42Z jmercouris: yeah 2018-01-18T18:16:00Z jmercouris: let me show you, one moment please 2018-01-18T18:16:49Z jmercouris: https://gist.github.com/966a983aa8f0ff6dd5fe0064750504d9 2018-01-18T18:17:16Z sjl: jmercouris: paste the definition of defcommand too 2018-01-18T18:18:04Z jmercouris: sjl: https://github.com/next-browser/next/blob/defcommand/next/source/command.lisp#L25 2018-01-18T18:18:49Z sjl: that looks right. strange that you're getting an extra indent there 2018-01-18T18:20:17Z jmercouris: Let's see if shinmera's package is the secret sauce 2018-01-18T18:20:38Z hexfive quit (Remote host closed the connection) 2018-01-18T18:21:13Z _death: jmercouris: defining that macro and indenting the defcommand form results in correct indentation here.. maybe your slime is {under|over}customized? 2018-01-18T18:21:27Z hexfive joined #lisp 2018-01-18T18:21:33Z jmercouris: _death: One second 2018-01-18T18:22:01Z jmercouris: _death: https://github.com/jmercouris/configuration/blob/master/.emacs.d/develop/_lisp.el 2018-01-18T18:22:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-18T18:22:40Z hexfive quit (Read error: Connection reset by peer) 2018-01-18T18:23:45Z jmercouris: _death: I'm indenting via M-q 2018-01-18T18:23:46Z hexfive joined #lisp 2018-01-18T18:24:04Z jmercouris: paredit-reindent-defun 2018-01-18T18:24:07Z hexfive quit (Remote host closed the connection) 2018-01-18T18:24:23Z _death: slime-fancy doesn't include slime-indentation hmm 2018-01-18T18:24:53Z jmercouris: slime-riendent defun produces the same indentation 2018-01-18T18:26:00Z FreeBirdLjj joined #lisp 2018-01-18T18:26:06Z hexfive joined #lisp 2018-01-18T18:27:00Z _death: try adding slime-indentation in the slime-setup call 2018-01-18T18:27:08Z jmercouris: ok, just a moment please 2018-01-18T18:28:21Z jmercouris: nope, still does that 2018-01-18T18:28:33Z jmercouris: I can make a video to illustrate 2018-01-18T18:29:24Z smurfrobot joined #lisp 2018-01-18T18:30:53Z _death: check that (swank::symbol-indentation 'defcommand) => (4 4 "&body") 2018-01-18T18:31:13Z hexfive quit (Remote host closed the connection) 2018-01-18T18:31:33Z jmercouris: shows nil 2018-01-18T18:31:47Z jmercouris: also shows nil for defun 2018-01-18T18:32:02Z _death: for defun an emacs rule is used 2018-01-18T18:32:06Z jmercouris: (swank::symbol-indentation 'defun) --> nil 2018-01-18T18:32:12Z jmercouris: (swank::symbol-indentation 'defcommand) --> nil 2018-01-18T18:32:14Z karswell joined #lisp 2018-01-18T18:32:26Z hexfive joined #lisp 2018-01-18T18:32:32Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-18T18:32:39Z jmercouris: completely fresh emacs after having changed slime-indentation in config: https://youtu.be/OWVyu3QDnxk 2018-01-18T18:33:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-18T18:33:44Z _death: you can use common-lisp-get-indentation in elisp to check the indentation 2018-01-18T18:34:32Z jmercouris: is that an interactive command? 2018-01-18T18:34:44Z _death: no.. M-x ielm 2018-01-18T18:34:49Z z3t0 joined #lisp 2018-01-18T18:35:39Z Jesin joined #lisp 2018-01-18T18:36:01Z jmercouris: No idea what ielm is, but it looks like an ELISP repl 2018-01-18T18:36:08Z jasom: is there a lite version of paredit? I'm thinking one where ( adds a pair of parens and ) jumps to the next closing one only; I have my own solutions for slurp/barf that I prefer. 2018-01-18T18:36:09Z smurfrobot joined #lisp 2018-01-18T18:36:19Z jmercouris: anyways, (common-lisp-getindentation) results in "Symbols function definition is void" 2018-01-18T18:37:07Z jmercouris: s/common-lisp-getindentation/common-lisp-get-indentation 2018-01-18T18:37:44Z _death: add slime-cl-indent to slime-setup 2018-01-18T18:38:25Z _death: (slime-indentation depends on it.. so it's strange) 2018-01-18T18:38:43Z jmercouris: let me just reload the config 2018-01-18T18:38:47Z jmercouris: maybe restart slime and then do this 2018-01-18T18:39:05Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-18T18:39:39Z jmercouris: okay, it works after restarting slime 2018-01-18T18:39:54Z jmercouris: (common-lisp-get-indentation 'defun) --> (4 &lambda &body) 2018-01-18T18:40:31Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-18T18:41:25Z _death: and defcommand? 2018-01-18T18:41:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T18:41:43Z blackwolf joined #lisp 2018-01-18T18:42:38Z jmercouris: (common-lisp-get-indentation 'defcommand) -> 4 (#o4, #x4, ?\C-d) 2018-01-18T18:43:08Z fikka joined #lisp 2018-01-18T18:43:27Z _death: why not (4 4 &body) 2018-01-18T18:43:32Z jmercouris: I don't know 2018-01-18T18:43:48Z jmercouris: it looks very strange, it has the correct number of elements 2018-01-18T18:44:00Z _death: maybe slime+ccl-related 2018-01-18T18:44:02Z jmercouris: is that hex it is showing? 2018-01-18T18:44:13Z jmercouris: or is # a special symbol in elisp? 2018-01-18T18:44:29Z _death: jmercouris: the result is 4.. the elisp repl just adds a bunch of "helpful" interpretations 2018-01-18T18:44:38Z _mjl joined #lisp 2018-01-18T18:44:57Z _death: jmercouris: 4 in octal, 4 in hex, ascii char corresponding to code 4 2018-01-18T18:45:01Z jmercouris: I was about to say because "o" is definitely not a number in hex :D 2018-01-18T18:45:17Z jmercouris: oh okay, but why the # symbol? 2018-01-18T18:45:45Z jmercouris: every time I see 0x... I always think of hex 2018-01-18T18:45:48Z jmercouris: anyways doesn't matter 2018-01-18T18:45:58Z _death: it's just notation to denote an integer in different bases.. 0x is the C way, #x is the Lisp way 2018-01-18T18:46:30Z jmercouris: oh, so base "o" is octal 2018-01-18T18:46:41Z _death: base 8 is octal 2018-01-18T18:46:50Z jmercouris: I don't see an 8 anywhere in that string 2018-01-18T18:46:57Z _death: this is why October is month number 10, see? 2018-01-18T18:47:08Z jmercouris: I understand how octal binary hexadecimal etc work 2018-01-18T18:47:12Z jmercouris: the question is about #o4 2018-01-18T18:47:18Z jmercouris: what do the individual elements in that string mean? 2018-01-18T18:47:21Z _death: (years used to start on March) 2018-01-18T18:49:32Z _death: jmercouris: in elisp, you just take it as two tokens.. <#o><4>.. in Common Lisp, # is a dispatching macro character and o is a sub-char for octal 2018-01-18T18:49:57Z jmercouris: ok, that is what I was wondering, I get it now 2018-01-18T18:50:02Z jmercouris: thank you 2018-01-18T18:50:34Z jmercouris: just to close the issue, my indentation will simply not work I guess 2018-01-18T18:50:47Z _death: you need to dig further.. it's fun :) 2018-01-18T18:50:55Z _mjl quit (Remote host closed the connection) 2018-01-18T18:51:14Z jmercouris: Maybe one of my modes is causing issues in some way 2018-01-18T18:51:19Z pjb: _death: the ascii code 4 is not a character code, it's a control code. There's no ascii character with that code. The only code corresponding to ascii characters are 32 to 126. 2018-01-18T18:51:43Z jmercouris: If you are curious, here is the info about that buffer: https://gist.github.com/cdfcafa5281a0d20daaee01d4ae3a741 2018-01-18T18:51:46Z pjb: _death: (code-char 4) if it returns non nil, doesn't return an ascii character. 2018-01-18T18:52:01Z pjb: _death: also, notice that it doesn't return a BASE-CHAR. 2018-01-18T18:52:39Z _death: pjb: isn't it a control character.. 2018-01-18T18:52:44Z _death: pjb: EOT 2018-01-18T18:52:47Z pjb: Well, it may be BASNE-CHAR, but it's not a standard characters. 2018-01-18T18:52:54Z pjb: EOT is not a CHARACTER it is a CONTROL CODE! 2018-01-18T18:53:08Z jmercouris: as far as I can tell, no packages should be conflicting 2018-01-18T18:53:35Z pjb: _death: it's a question of terminology and definition, and furthermore that's defined in international standards. 2018-01-18T18:53:41Z _death: pjb: I am a long time C programmer.. so you can understand why it's a char for me.. 2018-01-18T18:54:45Z _death: pjb: in elisp, ? is used to designate a character.. so it's also a character in emacs terminology (?\C-d) 2018-01-18T18:55:07Z pjb: _death: but in C it's different: char is a integer type! There are NO characters in C! 2018-01-18T18:55:28Z _death: pjb: but I don't think I ever actually read the ASCII standard.. maybe that will change how I perceive it :) 2018-01-18T18:55:31Z pjb: (unless you do something like; typedef struct { int code ; const char* name; /* … *. } character_t; 2018-01-18T18:55:34Z pjb: ) 2018-01-18T18:56:01Z pjb: _death: have a look at: http://www.cliki.net/CloserLookAtCharacters 2018-01-18T18:56:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-18T18:56:50Z _death: pjb: what is #\Eot ? 2018-01-18T18:57:00Z pjb: Some non-standard lisp character. 2018-01-18T18:57:16Z pjb: THat happens to have a name and perhaps a code matching the ASCII CONTROL CODE named EOT. 2018-01-18T18:57:42Z pjb: But perhaps not. Who knows. Have you checked that (= 4 (char-code #\eot)) ? 2018-01-18T18:57:58Z _death: pjb: would you deny that ascii defines a mapping from codes to characters 2018-01-18T18:58:33Z pjb: #+#.(cl:if (cl:eql 4 (cl:read-from-string "#\\eot")) '(:and) '(:or)) (list #\eot) 2018-01-18T18:59:13Z _death: why would reading a character return its code? 2018-01-18T18:59:14Z pjb: _death: ascii defines two mapping: one from some codes to control functions, and one from some other codes to characters. 2018-01-18T18:59:21Z pjb: Oops 2018-01-18T18:59:35Z jmercouris: do you guys enjoy these kinds of discussions :D? 2018-01-18T18:59:47Z pjb: #+#.(cl:if (cl:and (cl:and (cl:read-from-string "#\\eot") (cl:eql 4 (cl:char-code (cl:read-from-string "#\\eot"))))) '(:and) '(:or)) (list #\eot) 2018-01-18T18:59:53Z jmercouris: I'm not myself supremely interested in the intricacies of what is a control char vs a real char, so I am just curious as to why 2018-01-18T19:00:14Z dyelar quit (Quit: Leaving.) 2018-01-18T19:00:15Z pjb: jmercouris: depends if you want your software to break soon or to go on running after you're dead. 2018-01-18T19:00:29Z jmercouris: pjb: Well sure, I care about the quality of my software, and that's why I'm always eager to learn 2018-01-18T19:00:31Z _death: jmercouris: generally I dislike them.. but in this case I may be prompted to read the ascii standard ;) 2018-01-18T19:00:35Z jmercouris: but I am asking a different question 2018-01-18T19:00:57Z jmercouris: pjb: so, is your answer therefore "no, not really, but I'd like to write reliable software"? 2018-01-18T19:01:10Z pjb: jmercouris: there are formal definition. If you don't know them, your code will be approximative, and it will break sooner than later. 2018-01-18T19:01:24Z jmercouris: pjb: This is true, but it is again not the question I asked 2018-01-18T19:01:33Z pjb: jmercouris: everybody has his own pet-peevees. characters are one of mines. 2018-01-18T19:01:48Z jmercouris: pjb: Do you, or do you not enjoy, for non-practical reaasons, the intricacies of the difference between chars and control code chars 2018-01-18T19:02:14Z jmercouris: So it is not that you enjoy characters, but rather that they annoy you and you have set the record straight? 2018-01-18T19:02:15Z pjb: It's not that I enjoy it, it is, that's it. Like the difference between bosons and leptons. 2018-01-18T19:02:26Z jmercouris: it bothers you when there is misinformation? 2018-01-18T19:02:29Z pjb: yes. 2018-01-18T19:02:39Z dfsadsfasdf joined #lisp 2018-01-18T19:02:44Z _death: pjb: now, what your code checks is that the character is designated as #\Eot rather than #\End-of-Transmission or #\Stop-It or whatever... I agree that there's no name defined in CL for this character 2018-01-18T19:02:47Z jmercouris: _death: A thrilling read I'm sure :D 2018-01-18T19:02:48Z dfsadsfasdf: simple way to check character is in string? 2018-01-18T19:03:09Z beach: dfsadsfasdf: What? 2018-01-18T19:03:12Z pjb: _death: indeed, since it's not a standard name, and even not a semi-standard one like #\tab, it is arbitary. 2018-01-18T19:03:26Z jmercouris: dfsadsfasdf: you could use regex 2018-01-18T19:03:26Z dfsadsfasdf: beach: how to check character is in string in lisp 2018-01-18T19:03:32Z _death: pjb: but CL implementation that assumes ASCII will have (code-char 4) evaluate to a Lisp character that should mean end of transmission, per the ASCII standard 2018-01-18T19:03:50Z beach: dfsadsfasdf: Do you mean, given a particular string and a particular character, determine whether that character is in the string? 2018-01-18T19:03:55Z jmercouris: dfsadsfasdf: you could also use find 2018-01-18T19:03:57Z beach: clhs find 2018-01-18T19:03:57Z dfsadsfasdf: beach: yes 2018-01-18T19:03:57Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_find_.htm 2018-01-18T19:04:02Z pjb: It would be better, if you need to work with ASCII control codes, to start with (defconstant +eot+ 4), and use (if (code-char +eot+) (format character-stream "foo~C" (code-char +eot+)) (write-byte +eot+ binary-stream)) 2018-01-18T19:04:14Z jmercouris: dfsadsfasdf: (find #\t "The Hyperspec contains approximately 110,000 hyperlinks." :test #'equal) 2018-01-18T19:04:31Z dfsadsfasdf: jmercouris: thanks 2018-01-18T19:04:47Z pjb: often it's more useful to use POSITION. 2018-01-18T19:04:54Z _death: pjb: only if you assume you'll work with non-ASCII based implementation 2018-01-18T19:04:55Z dfsadsfasdf: jmercouris: is there nothing simpler, eg (in "c" "cat")? 2018-01-18T19:04:55Z jmercouris: I think he is only interested in booleaness 2018-01-18T19:05:02Z beach: jmercouris: Why on earth would you use EQUAL to test for character equality? 2018-01-18T19:05:11Z pjb: Notice that (find nil #(t t nil t t)) gives the same result as (find nil #(t t t t t)) 2018-01-18T19:05:15Z jmercouris: beach: I wouldn't, I just copy/pasta'd quickly from the cl cookbook 2018-01-18T19:05:30Z jmercouris: one could use whatever they like, but I think a simple example is helpful 2018-01-18T19:05:47Z dfsadsfasdf: ok 2018-01-18T19:05:55Z pjb: dfsadsfasdf: if you want simple, you write it yourself: (defun in (char-designator string-designator) (position (character char-designator) (string string-designator))) 2018-01-18T19:06:09Z beach: jmercouris: No, one should use EQL for reasons of maintenance. 2018-01-18T19:06:18Z dfsadsfasdf: pjb: thanks 2018-01-18T19:06:24Z dfsadsfasdf: I'm new to lisp, coming from python 2018-01-18T19:06:30Z jmercouris: dfsadsfasdf: Welcome! 2018-01-18T19:06:31Z _death: pjb: and if you make that assumption, you should work with binary streams anyway 2018-01-18T19:06:35Z dfsadsfasdf: ty :) 2018-01-18T19:06:53Z _death: pjb: and do the ascii conversion yourself 2018-01-18T19:06:57Z ikki quit (Ping timeout: 240 seconds) 2018-01-18T19:07:01Z jmercouris: dfsadsfasdf: I'm also a python developer, so if you wish to frame some questions in python terms, I can help, kind of, I'm still quite new to lisp myself 2018-01-18T19:07:03Z pjb: dfsadsfasdf: the point of using sexps, besides the macros (which were invented 4 years after the sexps), is that they allow you to write operators and functions that merge smoothly in the flow of lisp syntax. 2018-01-18T19:07:26Z pjb: _death: well, already if you have to work with control codes, you should work on binary streams, not on character streams… 2018-01-18T19:07:52Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T19:08:24Z ikki joined #lisp 2018-01-18T19:09:16Z jmercouris: pjb: Why? 2018-01-18T19:09:25Z smurfrobot joined #lisp 2018-01-18T19:09:28Z jmercouris: is there some performance again? some edge case? 2018-01-18T19:09:33Z pjb: because control codes are binary data. 2018-01-18T19:09:43Z jmercouris: all data is binary data, where do we draw the line? 2018-01-18T19:10:22Z _death: pjb: I tend to agree, but I wouldn't see it as disasterous to use characters (i.e. (defconstant eot (code-char 4)) and work with that) if you assume an ASCII-based implementation will be used 2018-01-18T19:10:23Z dfsadsfasdf quit (Quit: Page closed) 2018-01-18T19:11:07Z jmercouris: pjb: Why for example, would we not look at char arrays, and to find last character iterate byte by byte till we find the control character for the end? 2018-01-18T19:11:15Z pjb: _death: 1- (code-char 4) may return nil, even if the implementation supports an ascii external-format. 2018-01-18T19:11:23Z pjb: 2- it depends on the external-format. 2018-01-18T19:11:23Z jmercouris: or whatever it is in C, I can't remember I think an empty byte or something 2018-01-18T19:11:41Z pjb: jmercouris: not in lisp. 2018-01-18T19:12:01Z jmercouris: pjb: I'll admit, I definitely do not understand 2018-01-18T19:12:09Z _death: pjb: you're saying it may return nil because you don't see it as a character.. which again points to the need to read the ASCII standard I guess 2018-01-18T19:12:14Z jmercouris: I just want to know what you mean by binary data vs character streams 2018-01-18T19:12:31Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-18T19:12:38Z jmercouris: as to why one would be preferable over the other 2018-01-18T19:12:39Z pjb: jmercouris: there's no binary data in lisp. There are integers, and there's the subtype bit = (member 0 1) so you could say that this is binary. But there is the notion of binary stream which is streams of bytes which are subtypes of integer. 2018-01-18T19:13:05Z pjb: And there are character streams, and a serializer/deserializer to convert between (some) lisp objects and character streams. 2018-01-18T19:13:08Z pjb: (print and read). 2018-01-18T19:13:25Z pjb: _death: it may return nil because that's what clhs says! 2018-01-18T19:13:28Z pjb: clhs code-char 2018-01-18T19:13:28Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_code_c.htm 2018-01-18T19:13:42Z jmercouris: wouldn't a binary stream be a stream of bits, since you said that bytes don't exist? 2018-01-18T19:14:01Z pjb: Basically, if you read and memorized the clhs, those discussions would mostly disappear. 2018-01-18T19:14:03Z _death: pjb: yes, but I already qualified with the assumption of an "ascii-based implementation".. a fuzzy term that can be used to win an argument :) 2018-01-18T19:14:18Z pjb: _death: again, this is not something that's defined in the clhs. 2018-01-18T19:14:19Z beach: jmercouris: Do you do enjoy these kinds of discussions? 2018-01-18T19:14:28Z jmercouris: beach: Sometimes 2018-01-18T19:14:46Z jmercouris: I think truth and precision are important, on topics of importance 2018-01-18T19:14:48Z pjb: _death: what's defined is that there may be an external format that may use the ascii code to encode the cl standard characters. 2018-01-18T19:15:08Z Bike: maybe han unification can be involved here too somehow. just imagine the possibilities. 2018-01-18T19:15:17Z jmercouris: importance of course being an arbitrary measure, so what is important to me may not be important to you etc 2018-01-18T19:15:41Z _death: pjb: ok.. I will (re?)read the cliki page, and the ascii standard.. maybe this weekend 2018-01-18T19:15:42Z pjb: _death: so if you say something that doesn't exist such as "ascii-based implementation" I hear an "implementation that has an external format using the ascii encoding". And this doesn't imply that the internal char-code/code-char uses the ascii coding system. 2018-01-18T19:15:43Z jmercouris: Bike: lol 2018-01-18T19:16:14Z _death: pjb: right 2018-01-18T19:16:22Z pjb: jmercouris: indeed, you can use :element-type 'bit and read and write bit by bit. But it's also able to read and wites bytes of more than one bit. 2018-01-18T19:16:32Z pjb: Still call them binary streams. 2018-01-18T19:16:50Z FreeBirdLjj joined #lisp 2018-01-18T19:17:21Z _death: jmercouris: do you know what a bit is? 2018-01-18T19:17:30Z pjb: Hey, again today, I hear they overestimated the cost of a railways, because they confused miles and km! 2018-01-18T19:17:34Z jmercouris: Okay, so what is the big issue here? that ascii is not being used internally, and therefore a control code may appear erroneously as a character if coerced to a char? 2018-01-18T19:17:35Z pjb: Little details… 2018-01-18T19:17:43Z pjb: Happily for them, they didn't underestimate it… 2018-01-18T19:17:51Z jmercouris: _death: yes, I am a trained computer scientist, believe it or not :D 2018-01-18T19:17:59Z josemanuel joined #lisp 2018-01-18T19:18:38Z _death: jmercouris: well, every time I read Claude Shannon it blows me mind all over.. so.. 2018-01-18T19:19:24Z jmercouris: _death: What is the implication of your sentence? I don't understand the complete meaning 2018-01-18T19:19:52Z jmercouris: are you saying the definition of a bit by which I operate is a simplification of something more complex? 2018-01-18T19:20:13Z pjb: jmercouris: the big issue is that of conformance (and portability). The point here is that we cannot make the assumption that (code-char 4) will return anything related to the ASCII control code 4, and that after (with-open-file (ascii-stream "foo" :element-type 'character :external-format *ascii-external-format* :direction :output :if-does-not-exist :supersede) (princ (code-char 4) ascii-stream)) there's: no guarantee that the b 2018-01-18T19:20:13Z pjb: content of the file foo will be a byte of value 4 (= EOT in ASCII). 2018-01-18T19:20:20Z Bike: if i say "1.7 bits" do you have some understanding of what that means 2018-01-18T19:20:40Z jmercouris: Bike: No, as far as I understand it, a bit can only have one state, 0 or 1 2018-01-18T19:20:55Z Bike: then yes, your understanding is a simplification, i guess. 2018-01-18T19:20:56Z _death: jmercouris: yes.. I doubt anyone can grasp what a bit is as fully as possible 2018-01-18T19:21:02Z Bike: not one you probably need to worry about, though. 2018-01-18T19:21:18Z pjb: jmercouris: in information theory, bit is the unit of information. A lisp bit may contain more or less than one bit of information. 2018-01-18T19:21:35Z smasta quit (Ping timeout: 248 seconds) 2018-01-18T19:22:27Z pjb: jmercouris: for example, if we consider: 4*1000 and I tell you that I got a bit valued 0 from that bit-vector, you get 3/4 bit of information about the position of that bit, since you can exclude the position 0 for this bit 0. 2018-01-18T19:22:43Z fikka joined #lisp 2018-01-18T19:22:52Z Bike: an intuitive way to think of it is, say you have a fair coin and flip it. the information about which way it landed is obviously a bit's worth. but what if the coin is weighted, so that it lands on heads more often? intuitively, there is some amount of informing going on if i tell you it landed heads, but less than a bit. 2018-01-18T19:23:24Z jmercouris: so what is the idea 2018-01-18T19:23:28Z Bike: Anyway long story short, celsius is interconvertible with joules per byte. 2018-01-18T19:23:30Z pjb: If you live in a place where the sky is blue 90% of the time, and grey 10% of the time (during the day), if you ask "Is the sky blue?" and I answer you "yes", you don't get 1 bit of information, but only 0.1 bit. 2018-01-18T19:23:31Z jmercouris: I can infer more information from a bit than the raw data? 2018-01-18T19:24:03Z jmercouris: how did I not get a full bit of information? I was interested in the state, 2 possibilities, I got one of them 2018-01-18T19:24:22Z smasta joined #lisp 2018-01-18T19:24:39Z jmercouris: I can't really wrap my head around this 2018-01-18T19:24:43Z pjb: E-M E=mc² E-I E=hf M-I m=fh/c² f=mc²/h 2018-01-18T19:24:43Z pjb: 2018-01-18T19:25:01Z Jesin quit (Quit: Leaving) 2018-01-18T19:25:16Z smurfrobot quit (Remote host closed the connection) 2018-01-18T19:25:21Z pjb: Bremermann's limit = 2e50 bit/kg/s ; in a human brain: 1e18 bit/kg/s ; there's some margin… 2018-01-18T19:25:38Z pjb: Bremermann's Limit is the maximum computational speed of a self-contained system in the material universe. 2018-01-18T19:25:48Z jmercouris: I've got a few unalloc'd spots in my head, sure :D 2018-01-18T19:26:34Z pjb: Well, it's still quite frightnening: it means that there's no physical impossibility for an artificial (or even natural) intelligence that is astronomically smarter than us. 2018-01-18T19:26:57Z jmercouris: I'm not sure why that would frighten you 2018-01-18T19:27:24Z pjb: jmercouris: yes, but since the states are not equiprobable, the 1 bit of data didn't convey 1 bit of information. You learned less, because the bit of data just confirmed what was the most probable. 2018-01-18T19:27:31Z jmercouris: are you afraid that this potentially superbeing would turn your life into pure suffering or something? 2018-01-18T19:27:47Z jmercouris: pjb: When you frame it in those terms, it makes sense 2018-01-18T19:27:52Z jackdaniel: well, we do it to animals 2018-01-18T19:28:04Z jmercouris: jackdaniel: perhaps we are not smart enough yet 2018-01-18T19:28:07Z fikka quit (Ping timeout: 256 seconds) 2018-01-18T19:28:10Z milanj quit (Read error: Connection reset by peer) 2018-01-18T19:28:12Z jmercouris: I think with time we are nicer to animals, in the future I predict more niceness 2018-01-18T19:28:20Z pjb: jmercouris: yes, basically it's the Vogon problem. They just decide to build a hypergalactic highway bypass over the Solar system… 2018-01-18T19:28:46Z pjb: We're nice to animals, but when you build a highway, we don't care about the ants and worms destroyed… 2018-01-18T19:28:50Z jackdaniel: historical data says otherwise 2018-01-18T19:29:19Z jmercouris: jackdaniel: Okay, so you are arguing that, in the past, humans behaved nicer to animals? 2018-01-18T19:29:21Z pjb: We cannot generalize, it's a question of civilization and different people have different levels of civilization. 2018-01-18T19:29:21Z jackdaniel: (that smarter actually makes us less emphatical and care less) 2018-01-18T19:29:34Z jmercouris: jackdaniel: I really disagree with that 2018-01-18T19:29:40Z jmercouris: by that measure, the dumbest people should be the most empathetic 2018-01-18T19:29:49Z jmercouris: and I believe I can find a correlation between stupidity and racism 2018-01-18T19:29:55Z jmercouris: and racism is a counter example to empathy 2018-01-18T19:30:07Z orivej joined #lisp 2018-01-18T19:30:12Z fikka joined #lisp 2018-01-18T19:30:19Z pjb: jmercouris: wrong. 2018-01-18T19:30:20Z jackdaniel: your "arguments" aren't very sound, but I've got into offtopic ;) 2018-01-18T19:30:26Z jackdaniel: sorry 2018-01-18T19:30:30Z jmercouris: ok let's go to lispcafe 2018-01-18T19:30:33Z jmercouris: I'm curious about your opinions 2018-01-18T19:30:39Z warweasle joined #lisp 2018-01-18T19:30:57Z jackdaniel: maybe other time, I'm still behind the schedule with many projects 2018-01-18T19:31:05Z jmercouris: ah, that is a cop out! 2018-01-18T19:31:15Z jmercouris: at any rate, read at your own leisure and reply later, best of luck catching up with work 2018-01-18T19:31:28Z jackdaniel: I'm trying to politely say that I'm not interesting in discussing that with you 2018-01-18T19:31:29Z milanj joined #lisp 2018-01-18T19:31:42Z Jesin joined #lisp 2018-01-18T19:31:53Z jmercouris: jackdaniel: I'm not sure what I did to give you this opinion of myself, but, I apologize 2018-01-18T19:31:57Z LocaMocha quit (Ping timeout: 240 seconds) 2018-01-18T19:33:04Z pjb: jmercouris: well, there's #lispcafe. 2018-01-18T19:33:05Z jackdaniel: you seem to assert I have some particular opinion here – I'm just saying that I'm not interesting in defending my point 2018-01-18T19:33:25Z jmercouris: jackdaniel: You are asserting an opinion, I'm not an idiot 2018-01-18T19:33:44Z jmercouris: it's okay to feel this way about me, I am just letting you know, if at any point I bothered you, I did not mean so 2018-01-18T19:34:02Z jmercouris: I only mean good and peace and happiness in this world 2018-01-18T19:35:01Z warweasle quit (Remote host closed the connection) 2018-01-18T19:35:02Z fikka quit (Ping timeout: 268 seconds) 2018-01-18T19:37:04Z smasta quit (Ping timeout: 256 seconds) 2018-01-18T19:38:06Z saic joined #lisp 2018-01-18T19:38:11Z Devon joined #lisp 2018-01-18T19:38:40Z saic is now known as warweasle 2018-01-18T19:38:50Z red-dot joined #lisp 2018-01-18T19:40:58Z hexfive quit (Read error: Connection reset by peer) 2018-01-18T19:41:47Z hexfive joined #lisp 2018-01-18T19:41:55Z lnostdal quit (Ping timeout: 256 seconds) 2018-01-18T19:41:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-18T19:42:55Z FreeBirdLjj joined #lisp 2018-01-18T19:43:33Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-01-18T19:43:56Z warweasle joined #lisp 2018-01-18T19:44:55Z hexfive quit (Remote host closed the connection) 2018-01-18T19:46:07Z hexfive joined #lisp 2018-01-18T19:47:09Z hexfive quit (Read error: Connection reset by peer) 2018-01-18T19:47:23Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-18T19:47:27Z hexfour joined #lisp 2018-01-18T19:48:49Z makomo joined #lisp 2018-01-18T19:49:39Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-18T19:49:42Z smurfrobot joined #lisp 2018-01-18T19:50:54Z randomstrangerb joined #lisp 2018-01-18T19:51:10Z fikka joined #lisp 2018-01-18T19:51:34Z shrdlu68: 1.7 bits sounds like a measure of entropy. I doubt jmercouris is simplifying anything. 2018-01-18T19:51:56Z shrdlu68 is by no means a trained computer scientist. 2018-01-18T19:55:34Z FreeBirdLjj joined #lisp 2018-01-18T19:56:51Z Ven` joined #lisp 2018-01-18T20:00:27Z damke joined #lisp 2018-01-18T20:02:14Z smurfrobot quit (Remote host closed the connection) 2018-01-18T20:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-18T20:12:20Z Ven` quit (Read error: Connection reset by peer) 2018-01-18T20:12:54Z Ven` joined #lisp 2018-01-18T20:15:05Z Devon quit (Ping timeout: 265 seconds) 2018-01-18T20:17:35Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-18T20:18:33Z PinealGlandOptic joined #lisp 2018-01-18T20:19:44Z angavrilov quit (Remote host closed the connection) 2018-01-18T20:21:50Z pmc_ joined #lisp 2018-01-18T20:24:42Z smurfrobot joined #lisp 2018-01-18T20:24:53Z vlatkoB quit (Remote host closed the connection) 2018-01-18T20:29:55Z drewc_ is now known as drewc 2018-01-18T20:34:14Z impulse quit (Ping timeout: 268 seconds) 2018-01-18T20:38:25Z smurfrobot quit (Remote host closed the connection) 2018-01-18T20:39:26Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T20:40:24Z schoppenhauer quit (Ping timeout: 268 seconds) 2018-01-18T20:40:48Z impulse joined #lisp 2018-01-18T20:42:09Z FreeBirdLjj joined #lisp 2018-01-18T20:46:33Z shka: how can i :insert-into row with postmodern containing simple-date? 2018-01-18T20:46:53Z natsu joined #lisp 2018-01-18T20:47:01Z shka: doing this naive way, gives me Value # can not be converted to an SQL literal. error 2018-01-18T20:48:55Z shka: there is literally nothing in the s-sql file that seems to handle this 2018-01-18T20:49:09Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-18T20:49:35Z wigust quit (Ping timeout: 240 seconds) 2018-01-18T20:52:14Z pmc_ quit (Quit: Leaving) 2018-01-18T20:54:58Z schoppenhauer joined #lisp 2018-01-18T20:56:02Z aeth: yuck, postmodern doesn't use ISO 8601? 2018-01-18T20:59:18Z FreeBirdLjj quit (Read error: Connection timed out) 2018-01-18T21:01:45Z Cymew joined #lisp 2018-01-18T21:03:23Z aeth: Looks like postgres itself can accept any format but recommends ISO 8601. https://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-DATETIME-DATE-TABLE 2018-01-18T21:03:36Z FreeBirdLjj joined #lisp 2018-01-18T21:06:36Z Cymew quit (Ping timeout: 256 seconds) 2018-01-18T21:08:09Z knobo joined #lisp 2018-01-18T21:10:08Z red-dot joined #lisp 2018-01-18T21:10:28Z isoraqathedh quit (Quit: No Ping reply in 180 seconds.) 2018-01-18T21:11:47Z isoraqathedh joined #lisp 2018-01-18T21:12:50Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-18T21:13:43Z Colleen quit (Ping timeout: 256 seconds) 2018-01-18T21:14:02Z randomstrangerb joined #lisp 2018-01-18T21:14:17Z Ven` quit (Ping timeout: 256 seconds) 2018-01-18T21:15:54Z Ven` joined #lisp 2018-01-18T21:16:24Z Colleen joined #lisp 2018-01-18T21:20:46Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-18T21:22:28Z PinealGlandOptic quit (Quit: leaving) 2018-01-18T21:24:40Z FreeBirdLjj joined #lisp 2018-01-18T21:25:48Z xantoz quit (Read error: Connection reset by peer) 2018-01-18T21:25:50Z ikki quit (Ping timeout: 260 seconds) 2018-01-18T21:26:17Z xantoz joined #lisp 2018-01-18T21:28:42Z knobo quit (Ping timeout: 256 seconds) 2018-01-18T21:33:23Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-01-18T21:40:51Z ineiros quit (Remote host closed the connection) 2018-01-18T21:40:58Z ineiros joined #lisp 2018-01-18T21:43:56Z mathi_aihtam joined #lisp 2018-01-18T21:44:02Z mathi_aihtam left #lisp 2018-01-18T21:44:07Z pagnol joined #lisp 2018-01-18T21:45:29Z lnostdal joined #lisp 2018-01-18T21:54:39Z wxie joined #lisp 2018-01-18T21:59:05Z FreeBirdLjj quit (Read error: Connection timed out) 2018-01-18T22:00:16Z JonSmith quit (Remote host closed the connection) 2018-01-18T22:05:15Z norvic joined #lisp 2018-01-18T22:06:06Z wxie quit (Ping timeout: 256 seconds) 2018-01-18T22:06:44Z nirved quit (Quit: Leaving) 2018-01-18T22:06:57Z mishoo quit (Ping timeout: 248 seconds) 2018-01-18T22:07:11Z FreeBirdLjj joined #lisp 2018-01-18T22:09:58Z ikki joined #lisp 2018-01-18T22:11:50Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T22:14:57Z eivarv quit (Quit: Sleep) 2018-01-18T22:18:28Z kami joined #lisp 2018-01-18T22:25:27Z ikki quit (Ping timeout: 240 seconds) 2018-01-18T22:25:48Z hexfour quit (Remote host closed the connection) 2018-01-18T22:26:46Z hexfour joined #lisp 2018-01-18T22:28:22Z _main_ joined #lisp 2018-01-18T22:29:08Z _main_ quit (Read error: Connection reset by peer) 2018-01-18T22:30:26Z _main_ joined #lisp 2018-01-18T22:30:48Z _main_ quit (Read error: Connection reset by peer) 2018-01-18T22:31:38Z __main__ quit (Ping timeout: 276 seconds) 2018-01-18T22:31:43Z Murii quit (Ping timeout: 256 seconds) 2018-01-18T22:32:03Z asarch quit (Read error: Connection reset by peer) 2018-01-18T22:32:24Z _main_ joined #lisp 2018-01-18T22:32:26Z _main_ quit (Read error: Connection reset by peer) 2018-01-18T22:32:58Z asarch joined #lisp 2018-01-18T22:34:20Z __main__ joined #lisp 2018-01-18T22:34:50Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T22:36:22Z __main__ joined #lisp 2018-01-18T22:36:47Z jmercouris: Shinmera: performing updates? 2018-01-18T22:37:21Z Shinmera: Hm? 2018-01-18T22:37:29Z jmercouris: your bot had quit and rejoined 2018-01-18T22:37:42Z Shinmera: It'll do that if it times out. 2018-01-18T22:39:02Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T22:40:26Z __main__ joined #lisp 2018-01-18T22:40:32Z hexfour quit (Read error: Connection reset by peer) 2018-01-18T22:40:40Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T22:41:40Z red-dot joined #lisp 2018-01-18T22:42:06Z jmercouris: ah ok :P 2018-01-18T22:42:07Z hexfour joined #lisp 2018-01-18T22:42:38Z ja-barr joined #lisp 2018-01-18T22:42:40Z Shinmera: When I update things it's typically a series of reconnects because I never seem to be able to do anything without also breaking twenty things in the process. 2018-01-18T22:42:52Z Shinmera: Well, either that, or no restart is required at all if it goes smoothly. 2018-01-18T22:42:55Z jmercouris: Shinmera: welcome to my life :D 2018-01-18T22:43:05Z jmercouris: I think most engineers can relate 2018-01-18T22:43:42Z jmercouris: This is the quintissential: http://weknowmemes.com/wp-content/uploads/2012/09/my-code-doesnt-work-i-have-no-idea-why.jpg 2018-01-18T22:43:59Z Shinmera: Yeah, well, the system administrator part of me dies a little every time it happens 2018-01-18T22:44:11Z Karl_Dscc quit (Remote host closed the connection) 2018-01-18T22:44:21Z jmercouris: it's alright, you're an engineer, not a sysadmin, don't give into the devops hype 2018-01-18T22:44:40Z jmercouris: it's just a way for fancy pants SF startups to save labor costs 2018-01-18T22:45:24Z mathi_aihtam joined #lisp 2018-01-18T22:45:33Z LiamH quit (Quit: Leaving.) 2018-01-18T22:46:17Z mathi_aihtam quit (Client Quit) 2018-01-18T22:46:52Z Shinmera: I am a sysadmin though, I run my own servers. 2018-01-18T22:47:01Z Shinmera: And downtime makes me very sad 2018-01-18T22:47:23Z mathi_aihtam joined #lisp 2018-01-18T22:47:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-18T22:47:59Z jmercouris: I can't think of a clever proverb, but I'm sure one day you'll hit your zero downtime goals :D 2018-01-18T22:49:18Z __main__ joined #lisp 2018-01-18T22:49:33Z whoman joined #lisp 2018-01-18T22:50:05Z natsu quit (Ping timeout: 240 seconds) 2018-01-18T22:50:41Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-18T22:51:45Z shrdlu68 quit (Ping timeout: 268 seconds) 2018-01-18T22:52:10Z mathi_aihtam quit (Ping timeout: 265 seconds) 2018-01-18T22:52:22Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T22:53:17Z hexfour quit (Remote host closed the connection) 2018-01-18T22:54:29Z hexfour joined #lisp 2018-01-18T22:54:55Z Bike quit (Ping timeout: 260 seconds) 2018-01-18T22:55:18Z __main__ joined #lisp 2018-01-18T22:56:08Z smasta joined #lisp 2018-01-18T22:56:41Z sjl__ joined #lisp 2018-01-18T22:57:17Z dented42 joined #lisp 2018-01-18T22:57:29Z shifty joined #lisp 2018-01-18T22:58:34Z mathi_aihtam joined #lisp 2018-01-18T22:59:43Z sjl quit (Ping timeout: 248 seconds) 2018-01-18T23:01:56Z smurfrobot joined #lisp 2018-01-18T23:02:26Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T23:03:15Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-18T23:03:20Z mathi_aihtam quit (Ping timeout: 256 seconds) 2018-01-18T23:03:27Z __main__ joined #lisp 2018-01-18T23:03:46Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T23:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-18T23:04:34Z cgay quit (Read error: Connection reset by peer) 2018-01-18T23:05:30Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-18T23:05:45Z damke joined #lisp 2018-01-18T23:06:33Z ebrasca quit (Remote host closed the connection) 2018-01-18T23:06:39Z brendyn joined #lisp 2018-01-18T23:06:49Z FreeBirdLjj joined #lisp 2018-01-18T23:07:25Z __main__ joined #lisp 2018-01-18T23:07:49Z ebrasca joined #lisp 2018-01-18T23:10:23Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T23:10:50Z drcode quit (Ping timeout: 260 seconds) 2018-01-18T23:12:22Z __main__ joined #lisp 2018-01-18T23:12:34Z __main__ quit (Read error: Connection reset by peer) 2018-01-18T23:13:55Z sjl__ is now known as sjl 2018-01-18T23:14:27Z __main__ joined #lisp 2018-01-18T23:16:05Z varjag quit (Ping timeout: 240 seconds) 2018-01-18T23:18:26Z drcode joined #lisp 2018-01-18T23:19:11Z dan64- quit (Ping timeout: 276 seconds) 2018-01-18T23:23:46Z FreeBirdLjj quit (Read error: Connection timed out) 2018-01-18T23:24:16Z moei quit (Quit: Leaving...) 2018-01-18T23:24:45Z smurfrobot quit (Remote host closed the connection) 2018-01-18T23:26:19Z khisanth_ quit (Ping timeout: 256 seconds) 2018-01-18T23:26:23Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-18T23:27:45Z FreeBirdLjj joined #lisp 2018-01-18T23:28:09Z dan64 joined #lisp 2018-01-18T23:28:26Z blackwolf quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-18T23:29:35Z jurov quit (Ping timeout: 240 seconds) 2018-01-18T23:35:46Z hexfour quit (Read error: Connection reset by peer) 2018-01-18T23:36:37Z jurov joined #lisp 2018-01-18T23:36:46Z hexfour joined #lisp 2018-01-18T23:41:47Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-18T23:42:17Z varjag joined #lisp 2018-01-18T23:42:24Z red-dot joined #lisp 2018-01-18T23:43:16Z Ven` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-18T23:46:48Z khisanth_ joined #lisp 2018-01-18T23:47:41Z varjag quit (Ping timeout: 276 seconds) 2018-01-18T23:52:53Z turkja joined #lisp 2018-01-18T23:56:57Z kami quit (Ping timeout: 240 seconds) 2018-01-19T00:00:23Z igemnace quit (Read error: Connection reset by peer) 2018-01-19T00:00:58Z igemnace joined #lisp 2018-01-19T00:01:48Z pierpa joined #lisp 2018-01-19T00:01:58Z Bike joined #lisp 2018-01-19T00:02:34Z dented42_ joined #lisp 2018-01-19T00:02:35Z dented42 quit (Ping timeout: 256 seconds) 2018-01-19T00:03:10Z mathi_aihtam joined #lisp 2018-01-19T00:07:10Z hexfour quit (Remote host closed the connection) 2018-01-19T00:08:04Z hexfour joined #lisp 2018-01-19T00:08:09Z mathi_aihtam quit (Ping timeout: 264 seconds) 2018-01-19T00:09:15Z Kaisyu joined #lisp 2018-01-19T00:11:18Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-19T00:14:25Z orivej quit (Ping timeout: 260 seconds) 2018-01-19T00:14:51Z FreeBirdLjj joined #lisp 2018-01-19T00:21:57Z damke quit (Ping timeout: 265 seconds) 2018-01-19T00:23:24Z damke joined #lisp 2018-01-19T00:27:36Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-19T00:29:31Z xrash joined #lisp 2018-01-19T00:32:05Z damke_ joined #lisp 2018-01-19T00:34:33Z damke quit (Ping timeout: 264 seconds) 2018-01-19T00:35:02Z QualityAddict quit (Quit: Leaving) 2018-01-19T00:37:06Z dented42_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-19T00:39:32Z Walex quit (Quit: leaving) 2018-01-19T00:42:29Z karswell quit (Remote host closed the connection) 2018-01-19T00:43:31Z karswell joined #lisp 2018-01-19T00:47:05Z Devon joined #lisp 2018-01-19T00:49:34Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-19T00:50:26Z loli quit (Ping timeout: 256 seconds) 2018-01-19T00:50:39Z shka quit (Ping timeout: 248 seconds) 2018-01-19T00:52:31Z loli joined #lisp 2018-01-19T01:01:21Z smurfrobot joined #lisp 2018-01-19T01:01:39Z cgay joined #lisp 2018-01-19T01:02:15Z Cymew joined #lisp 2018-01-19T01:06:53Z rumbler31 joined #lisp 2018-01-19T01:06:55Z Cymew quit (Ping timeout: 260 seconds) 2018-01-19T01:07:19Z pfdietz: So, how DO quicklisp's systems get curated? Is there a way to tell if they're good or not? 2018-01-19T01:08:09Z jasom: pfdietz: the default distribution merely checks that they have some open-source license *and* that they build on sbcl 2018-01-19T01:08:49Z Cymew joined #lisp 2018-01-19T01:08:51Z pfdietz: The problem is they can interfere with each other. Just building in isolation isn't enough. 2018-01-19T01:09:19Z pfdietz: I'm wondering because of readtable shenanigans. 2018-01-19T01:10:03Z pfdietz: Package collisions would be another concern; I haven't delved into that. 2018-01-19T01:13:35Z Cymew quit (Ping timeout: 268 seconds) 2018-01-19T01:13:43Z QualityAddict joined #lisp 2018-01-19T01:13:44Z jasom: pfdietz: I think asdf has made some changes to how readtables are modified; it was made less aggressive to to breaking some systems that assumed loading system X would modify the readtable as a side-effect, so I don't know what the final outcome of that was. 2018-01-19T01:14:27Z jasom: pfdietz: in general the curation is very minimal, so there is no guarantee of quality or completeness 2018-01-19T01:14:50Z jasom: pfdietz: it *does* mean that someone asked for it to be included, so there is that... 2018-01-19T01:14:51Z Cymew joined #lisp 2018-01-19T01:15:10Z Xach: Well, it does lately. I added a lot of stuff without asking at the start, to bootstrap... 2018-01-19T01:15:35Z smurfrobot quit (Remote host closed the connection) 2018-01-19T01:18:27Z Devon quit (Ping timeout: 240 seconds) 2018-01-19T01:19:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-19T01:25:27Z pagnol quit (Ping timeout: 240 seconds) 2018-01-19T01:27:04Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-19T01:27:21Z FreeBirdLjj joined #lisp 2018-01-19T01:29:05Z markong quit (Ping timeout: 255 seconds) 2018-01-19T01:29:50Z smurfrobot joined #lisp 2018-01-19T01:34:57Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-19T01:36:07Z igemnace quit (Read error: Connection reset by peer) 2018-01-19T01:36:59Z skeuomorf joined #lisp 2018-01-19T01:37:12Z igemnace joined #lisp 2018-01-19T01:40:29Z aeth: Package name collisions are a near-certainty, especially with nicknames. 2018-01-19T01:40:52Z aeth: Fortunately, most of the probable nickname collisions are libraries that do the exact same thing, probably wrapping the exact same C library. 2018-01-19T01:46:19Z pfdietz: At this point, I mostly care "does loading this system ruin my lisp session". Purely internal quality is less of a concern. 2018-01-19T01:46:37Z pjb: Libraries must not have any short nickname or package name! 2018-01-19T01:46:49Z pjb: Leave short nicknames to the end user. 2018-01-19T01:47:04Z White_Flame: (must not have any (short nickname) or (package name)) ... 2018-01-19T01:47:07Z pfdietz: I very much like the local nicknames extension. 2018-01-19T01:47:11Z White_Flame: had to parse that for a sec 2018-01-19T01:47:24Z aeth: pfdietz: The thing I care the most about is how many dependencies something brings in 2018-01-19T01:47:41Z pfdietz: I also care if the system uses :: anywhere. That's a code smell. 2018-01-19T01:47:46Z aeth: Without care, a modest sized application could be using dozens, which also probably means duplicated functionality (e.g. 3 JSON libraries or something) 2018-01-19T01:48:13Z skeuomorf quit (Read error: Connection reset by peer) 2018-01-19T01:48:22Z attila_lendvai quit (Quit: Leaving.) 2018-01-19T01:52:16Z aeth: pfdietz: It looks like I use "::" twice, to declare a type that's not exported and to fix a performance bug in ECL, i.e. (setf cffi::*cffi-ecl-method* :c/c++) 2018-01-19T01:52:36Z White_Flame: I tend to grab :: often for testing 2018-01-19T01:52:39Z aeth: It looks like the latter is exported from cffi-ecl, though 2018-01-19T01:52:47Z White_Flame: instad of chopping up the packages to make that bit cleaner 2018-01-19T01:53:30Z aeth: oh, sorry, it's in cffi-sys, defined in cffi-ecl.lisp 2018-01-19T01:53:51Z aeth: Either it didn't used to be exported, or I tried to import it without #+ecl 2018-01-19T01:54:10Z aeth: I think I can fix that one now 2018-01-19T01:55:33Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-19T01:56:18Z ebzzry joined #lisp 2018-01-19T02:05:47Z mgsk quit (Quit: WeeChat 1.9.1) 2018-01-19T02:13:50Z hexfour quit (Quit: WeeChat 1.9.1) 2018-01-19T02:25:29Z pchrist quit (Remote host closed the connection) 2018-01-19T02:28:54Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-19T02:34:26Z Oladon joined #lisp 2018-01-19T02:41:14Z smurfrobot joined #lisp 2018-01-19T02:44:24Z dieggsy joined #lisp 2018-01-19T02:45:51Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-19T02:49:29Z smurfrobot joined #lisp 2018-01-19T02:50:08Z d4ryus2 joined #lisp 2018-01-19T02:52:57Z d4ryus1 quit (Ping timeout: 240 seconds) 2018-01-19T02:59:43Z nika joined #lisp 2018-01-19T03:00:41Z damke joined #lisp 2018-01-19T03:02:35Z beach: Good morning everyone! 2018-01-19T03:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-19T03:04:48Z asarch: Bojour mon ami! o/ 2018-01-19T03:14:13Z smurfrobot quit (Remote host closed the connection) 2018-01-19T03:14:53Z ecraven quit (Quit: bye) 2018-01-19T03:30:14Z Cymew joined #lisp 2018-01-19T03:30:48Z JonSmith joined #lisp 2018-01-19T03:34:17Z z3t0 joined #lisp 2018-01-19T03:35:05Z Cymew quit (Ping timeout: 255 seconds) 2018-01-19T03:35:32Z JonSmith quit (Ping timeout: 255 seconds) 2018-01-19T03:38:11Z fikka joined #lisp 2018-01-19T03:38:42Z JonSmith joined #lisp 2018-01-19T03:38:51Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-19T03:42:49Z fikka quit (Ping timeout: 268 seconds) 2018-01-19T03:48:29Z mathrick quit (Ping timeout: 256 seconds) 2018-01-19T03:48:43Z xrash quit (Remote host closed the connection) 2018-01-19T03:54:19Z z3t0 joined #lisp 2018-01-19T03:58:35Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T04:00:16Z Oladon quit (Quit: Leaving.) 2018-01-19T04:00:19Z chenbin joined #lisp 2018-01-19T04:04:08Z smurfrobot joined #lisp 2018-01-19T04:08:45Z asarch quit (Remote host closed the connection) 2018-01-19T04:09:02Z fittestbits left #lisp 2018-01-19T04:10:41Z trn quit (Ping timeout: 248 seconds) 2018-01-19T04:10:50Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-19T04:16:32Z z3t0 joined #lisp 2018-01-19T04:21:10Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-19T04:26:52Z dieggsy joined #lisp 2018-01-19T04:27:09Z dieggsy quit (Client Quit) 2018-01-19T04:32:05Z milanj quit (Quit: This computer has gone to sleep) 2018-01-19T04:38:17Z z3t0 joined #lisp 2018-01-19T04:40:09Z Bike quit (Quit: Lost terminal) 2018-01-19T04:42:18Z smurfrobot quit (Remote host closed the connection) 2018-01-19T04:42:27Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T04:43:16Z pierpa quit (Quit: Page closed) 2018-01-19T04:46:58Z orivej joined #lisp 2018-01-19T04:50:16Z rumbler31 quit (Remote host closed the connection) 2018-01-19T04:54:27Z z3t0 joined #lisp 2018-01-19T04:59:09Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T05:00:35Z schoppenhauer quit (Ping timeout: 240 seconds) 2018-01-19T05:02:39Z schoppenhauer joined #lisp 2018-01-19T05:08:40Z smurfrobot joined #lisp 2018-01-19T05:08:44Z jmercouris: Any data exists about the salary of lisp developers? 2018-01-19T05:08:58Z jmercouris: Yes, location, sector etc, I'm speaking generally 2018-01-19T05:10:16Z jdz quit (Ping timeout: 255 seconds) 2018-01-19T05:15:13Z jdz joined #lisp 2018-01-19T05:22:23Z z3t0 joined #lisp 2018-01-19T05:22:26Z fortitude quit (Ping timeout: 256 seconds) 2018-01-19T05:22:32Z oleo quit (Ping timeout: 276 seconds) 2018-01-19T05:23:40Z sjl__ joined #lisp 2018-01-19T05:25:41Z trn joined #lisp 2018-01-19T05:26:35Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T05:28:16Z sjl__ quit (Ping timeout: 268 seconds) 2018-01-19T05:28:25Z oleo joined #lisp 2018-01-19T05:31:47Z JonSmith quit (Remote host closed the connection) 2018-01-19T05:32:07Z JonSmith joined #lisp 2018-01-19T05:34:50Z chens joined #lisp 2018-01-19T05:36:22Z z3t0 joined #lisp 2018-01-19T05:40:38Z z3t0 quit (Ping timeout: 255 seconds) 2018-01-19T05:47:28Z z3t0 joined #lisp 2018-01-19T05:52:20Z z3t0 quit (Ping timeout: 276 seconds) 2018-01-19T05:55:09Z fortitude joined #lisp 2018-01-19T05:59:04Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T05:59:59Z thijso quit (Ping timeout: 248 seconds) 2018-01-19T06:00:15Z JonSmith quit (Remote host closed the connection) 2018-01-19T06:01:26Z damke_ joined #lisp 2018-01-19T06:01:58Z wigust joined #lisp 2018-01-19T06:03:49Z phoe: Good morning 2018-01-19T06:03:57Z damke quit (Ping timeout: 265 seconds) 2018-01-19T06:06:54Z beach: Hello phoe. 2018-01-19T06:08:34Z oleo quit (Quit: Leaving) 2018-01-19T06:11:50Z dddddd quit (Remote host closed the connection) 2018-01-19T06:12:47Z LocaMocha joined #lisp 2018-01-19T06:17:37Z red-dot joined #lisp 2018-01-19T06:26:19Z phoe: I don't really know. 2018-01-19T06:26:51Z phoe: I want to write a paper extending CLIM2's idea of protocols and extending your extensions of this idea. 2018-01-19T06:27:27Z phoe: But with >9000 other papers on software development, engineering, software modularity and software interfaces, I don't think it would be any kind of significant contribution. 2018-01-19T06:29:51Z beach: I am not sure I share your pessimism. 2018-01-19T06:30:08Z phoe: Don't you? 2018-01-19T06:30:44Z beach: Most work in software engineering etc. assumes an object-oriented model of type Java, with single dispatch and methods in classes. 2018-01-19T06:30:59Z phoe: Hm. This is right. 2018-01-19T06:31:07Z beach: Therefore, some work that is related to generic functions etc could very well be unique. 2018-01-19T06:31:22Z phoe: Sigh. 2018-01-19T06:31:30Z phoe: Well, there goes my pessimism. 2018-01-19T06:31:58Z phoe: Thanks! 2018-01-19T06:33:39Z ecraven joined #lisp 2018-01-19T06:34:20Z beach: Sure. :) 2018-01-19T06:37:47Z marusich joined #lisp 2018-01-19T06:41:56Z z3t0 joined #lisp 2018-01-19T06:46:35Z z3t0 quit (Ping timeout: 268 seconds) 2018-01-19T06:49:05Z Karl_Dscc joined #lisp 2018-01-19T06:50:48Z rumbler31 joined #lisp 2018-01-19T06:55:41Z rumbler31 quit (Ping timeout: 256 seconds) 2018-01-19T07:00:02Z z3t0 joined #lisp 2018-01-19T07:00:57Z zymurgy quit (Quit: WeeChat 1.4) 2018-01-19T07:02:39Z mathrick joined #lisp 2018-01-19T07:04:12Z mishoo joined #lisp 2018-01-19T07:04:30Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-19T07:05:09Z jmercouris: phoe: something something ulhs :P 2018-01-19T07:05:32Z vlatkoB joined #lisp 2018-01-19T07:07:17Z dec0n joined #lisp 2018-01-19T07:10:31Z zymurgy joined #lisp 2018-01-19T07:10:42Z Karl_Dscc quit (Remote host closed the connection) 2018-01-19T07:11:15Z flamebeard joined #lisp 2018-01-19T07:15:48Z marusich quit (Ping timeout: 265 seconds) 2018-01-19T07:16:15Z hiroaki joined #lisp 2018-01-19T07:17:25Z jmercouris quit (Ping timeout: 268 seconds) 2018-01-19T07:18:44Z marusich joined #lisp 2018-01-19T07:21:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-19T07:29:20Z whoman quit (Quit: Leaving) 2018-01-19T07:29:23Z z3t0 joined #lisp 2018-01-19T07:32:30Z quazimodo quit (Ping timeout: 260 seconds) 2018-01-19T07:34:01Z scymtym quit (Ping timeout: 256 seconds) 2018-01-19T07:34:02Z z3t0 quit (Ping timeout: 255 seconds) 2018-01-19T07:35:17Z shka joined #lisp 2018-01-19T07:40:31Z z3t0 joined #lisp 2018-01-19T07:42:22Z heurist`_ joined #lisp 2018-01-19T07:42:55Z heurist` quit (Ping timeout: 248 seconds) 2018-01-19T07:44:00Z fikka joined #lisp 2018-01-19T07:44:57Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T07:48:23Z fikka quit (Ping timeout: 256 seconds) 2018-01-19T07:51:13Z Tobbi joined #lisp 2018-01-19T07:52:07Z rumbler31 joined #lisp 2018-01-19T07:52:43Z heurist`_ quit (Ping timeout: 256 seconds) 2018-01-19T07:55:35Z red-dot: Has anyone seen a good book or reference for format directives? I've read CLHS, PCL and CLtL but still do not really have a good grasp on it. I need to do some character based formatting. 2018-01-19T07:56:00Z red-dot: Amazing that so much functionality can be packed into all that line noise.... 2018-01-19T07:56:36Z Shinmera: I've never needed anything beyond PCL and CLHS22.3 on that, so 2018-01-19T07:57:14Z red-dot: Neither did I until now. I need to format tables of data on a terminal; no GUI 2018-01-19T07:57:49Z red-dot: Weitz has a few examples too, but I think the real answer is going to be: 'go experiment'. 2018-01-19T07:58:07Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-19T07:58:36Z Shinmera: Okey, well for that you first have to figure out the widths of each column. Format won't be able to do that for you. Once you got that you just print each row using the width limitations of the format directives for each column. 2018-01-19T07:59:12Z fikka joined #lisp 2018-01-19T08:00:25Z heurist`_ joined #lisp 2018-01-19T08:01:50Z red-dot: That's what I thought, thanks. Am hoping there are some good examples of this somewhere, or a Guide to Format Directives somewhere. At some point this must have been more commonly used, but I suspect such information did not make it over to the Internet, as it probably pre-dates it. 2018-01-19T08:02:01Z red-dot: Perhaps usenet archives 2018-01-19T08:02:59Z Shinmera: This might not be the best way to do things, but here's an example: https://github.com/Shinmera/trivial-benchmark/blob/master/toolkit.lisp#L9 2018-01-19T08:03:39Z z3t0 joined #lisp 2018-01-19T08:04:09Z red-dot: It is a start :-) 2018-01-19T08:04:29Z red-dot: Weitz has a pretty-printer example that might also do the trick. Good thing it is weekend. 2018-01-19T08:05:29Z Shinmera: Wish it was. Friday for me. 2018-01-19T08:08:09Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T08:11:06Z jackdaniel: I have a mixed feelings about format which partially overlap with points brought here http://www.cs.yale.edu/homes/dvm/format-stinks.html 2018-01-19T08:11:42Z jackdaniel: I'm not using `out' construct though (yet?) 2018-01-19T08:19:29Z z3t0 joined #lisp 2018-01-19T08:21:49Z dented42 joined #lisp 2018-01-19T08:22:19Z red-dot: Well, I will not argue that there should not be a better way. Just like LOOP vs. iterate. 'out' might be worth looking at. 2018-01-19T08:23:22Z jackdaniel: disclaimer: I'm not sure if `out' is maintained/finished/published whatsoever 2018-01-19T08:23:34Z jack_rabbit: looking at hunchentoot here. Can't figure out how to set the backlog length. 2018-01-19T08:23:48Z jackdaniel: I've brought it as something relevant to format which was discussed 2018-01-19T08:24:05Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-19T08:24:06Z jack_rabbit: When load-testing, I'm getting "Can't handle a new request, too many request threads already" 2018-01-19T08:24:38Z jack_rabbit: Which makes sense, but I'd prefer those requests to go into a pending queue rather than being dropped altogether. 2018-01-19T08:25:57Z z3t0 joined #lisp 2018-01-19T08:27:42Z brandonz quit (Ping timeout: 276 seconds) 2018-01-19T08:28:10Z Jach[m] quit (Ping timeout: 248 seconds) 2018-01-19T08:30:23Z _whitelogger_ joined #lisp 2018-01-19T08:30:41Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-19T08:31:39Z Cymew joined #lisp 2018-01-19T08:32:53Z _whitelogger quit (Ping timeout: 276 seconds) 2018-01-19T08:33:32Z fikka quit (Ping timeout: 276 seconds) 2018-01-19T08:33:58Z jack_rabbit: hmm. appears the acceptor has a listen-backlog initarg. But it doesn't appear to eliminate the error message. 2018-01-19T08:35:35Z scymtym joined #lisp 2018-01-19T08:36:26Z chenbin quit (Read error: Connection reset by peer) 2018-01-19T08:41:53Z z3t0 joined #lisp 2018-01-19T08:42:14Z brandonz joined #lisp 2018-01-19T08:43:11Z Jach[m] joined #lisp 2018-01-19T08:46:23Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-19T08:46:51Z Shinmera: Typically when you run out of threads your system is so badly congested that keeping them idle is not going to help and is instead just going to load out your system even worse by taking up FDs 2018-01-19T08:47:12Z Shinmera: So I do not recommend trying to keep a queue. 2018-01-19T08:47:14Z scymtym_ joined #lisp 2018-01-19T08:48:00Z heurist_ joined #lisp 2018-01-19T08:48:09Z jack_rabbit: I disagree. 2018-01-19T08:48:38Z jack_rabbit: Keeping a large queue may be unwise, but a queue is totally reasonable under many circumstances. 2018-01-19T08:49:12Z jack_rabbit: anyway, it appears that if I want to increase the queue, I need to alter the taskmaster. 2018-01-19T08:49:20Z heurist`_ quit (Ping timeout: 255 seconds) 2018-01-19T08:49:30Z jackdaniel: what you want (keeping aside how its implemented in hunchentoot - you may subclass the taskmaster) is lparallel channel with n workers 2018-01-19T08:50:08Z jackdaniel: (+ one thread to consume the results if you don't really need them around) 2018-01-19T08:51:26Z scymtym quit (Ping timeout: 255 seconds) 2018-01-19T08:51:29Z fikka joined #lisp 2018-01-19T08:51:44Z fouric quit (Ping timeout: 248 seconds) 2018-01-19T08:51:58Z jack_rabbit: jackdaniel, not sure I follow. 2018-01-19T08:52:13Z knobo1 joined #lisp 2018-01-19T08:53:28Z heurist_ quit (Read error: Connection reset by peer) 2018-01-19T08:55:31Z heurist_ joined #lisp 2018-01-19T08:55:37Z fouric joined #lisp 2018-01-19T08:55:51Z marusich quit (Ping timeout: 265 seconds) 2018-01-19T08:56:03Z varjag joined #lisp 2018-01-19T08:57:37Z jack_rabbit: anyway, I manually instantiated a taskmaster with a higher max-accept-count, and everything works as expected now. 2018-01-19T08:57:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-19T08:58:19Z marusich joined #lisp 2018-01-19T08:58:45Z jack_rabbit: I wonder, though, if it might be a good patch for the acceptor thread to check (if it can) with the taskmaster to see if the accepted queue is full before accepting, and waiting if it is full. 2018-01-19T08:59:10Z jack_rabbit: Because I increased the listener queue, but the listener was able to happily keep up with the request rate. 2018-01-19T08:59:39Z sjl__ joined #lisp 2018-01-19T08:59:44Z jack_rabbit: It was the accepted queue that was rejecting the connections, and even though it was full, the listener was happy to accept connections, causing them to return 503. 2018-01-19T09:01:09Z z3t0 joined #lisp 2018-01-19T09:01:24Z damke joined #lisp 2018-01-19T09:02:34Z cyberlard quit (Quit: Leaving) 2018-01-19T09:03:26Z marusich quit (Ping timeout: 276 seconds) 2018-01-19T09:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-19T09:04:27Z heurist_ quit (Ping timeout: 240 seconds) 2018-01-19T09:04:44Z sjl__ quit (Ping timeout: 276 seconds) 2018-01-19T09:05:27Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T09:05:51Z marusich joined #lisp 2018-01-19T09:10:10Z damke_ joined #lisp 2018-01-19T09:12:43Z z3t0 joined #lisp 2018-01-19T09:12:57Z damke quit (Ping timeout: 264 seconds) 2018-01-19T09:13:02Z hiroaki quit (Ping timeout: 255 seconds) 2018-01-19T09:13:53Z manualcrank quit (Quit: WeeChat 2.0.1) 2018-01-19T09:14:56Z heurist_ joined #lisp 2018-01-19T09:16:49Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-19T09:17:18Z fikka joined #lisp 2018-01-19T09:17:30Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-19T09:18:00Z hjudt: is there a standard function that does (cdr (assoc ...)) or does one have to write a macro? 2018-01-19T09:18:48Z jfb4 joined #lisp 2018-01-19T09:18:49Z Shinmera: You don't have to write a macro for that. 2018-01-19T09:19:00Z Shinmera: In fact you shouldn't. You should write a function for it. 2018-01-19T09:19:04Z jackdaniel: alexandria:assoc-value 2018-01-19T09:19:10Z jackdaniel: not standard, but alexandria has it 2018-01-19T09:19:27Z hjudt: jackdaniel: thanks 2018-01-19T09:19:27Z heurist_ quit (Ping timeout: 248 seconds) 2018-01-19T09:19:33Z Shinmera: The joke of assoc-value is that it isn't even shorter than (cdr assoc ..)) 2018-01-19T09:19:38Z hjudt: Shinmera: yes, a function would of course do too 2018-01-19T09:19:42Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-19T09:20:17Z JuanDaugherty joined #lisp 2018-01-19T09:20:22Z jackdaniel: it's not about being shorter in writing, it's "shorter" cognitively 2018-01-19T09:20:35Z hjudt: it is easier to read imho 2018-01-19T09:20:44Z jackdaniel: exactly my point 2018-01-19T09:21:10Z hjudt: but only if you import-from not use alexandria:assoc-value directly because that length sucks a bit 2018-01-19T09:21:45Z hjudt: of course for this simple function i could also ignore alexandria and write it on my own... 2018-01-19T09:22:09Z jackdaniel: abbreviation macros come handy at times 2018-01-19T09:22:29Z jackdaniel: I personally find multiple-value-bind and destructuring-bind not very pleasent to write 2018-01-19T09:22:35Z Shinmera: Calling it rassoc (like in elisp) would be fine in my opinion. 2018-01-19T09:22:52Z Shinmera: Or wait no I'm confusing stuff 2018-01-19T09:23:01Z hjudt: isn't there a rassoc? it does reverse lookup? 2018-01-19T09:23:27Z Shinmera: In elisp it's alist-get. rassoc compares the cdr rather than the car. 2018-01-19T09:23:40Z scymtym_: isn't the point of ALEXANDRIA:ASSOC-VALUE that it is a place? 2018-01-19T09:25:48Z hiroaki joined #lisp 2018-01-19T09:28:39Z jackdaniel: it is 2018-01-19T09:28:52Z jackdaniel: assoc operations in alexandria are defun + setf-expander 2018-01-19T09:30:16Z murii joined #lisp 2018-01-19T09:33:55Z z3t0 joined #lisp 2018-01-19T09:38:45Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T09:41:15Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-19T09:41:38Z murii quit (Remote host closed the connection) 2018-01-19T09:44:25Z murii joined #lisp 2018-01-19T09:47:48Z orivej joined #lisp 2018-01-19T09:48:40Z z3t0 joined #lisp 2018-01-19T09:52:24Z _cosmonaut_ joined #lisp 2018-01-19T09:53:26Z z3t0 quit (Ping timeout: 268 seconds) 2018-01-19T09:54:06Z rumbler31 joined #lisp 2018-01-19T09:58:55Z rumbler31 quit (Ping timeout: 260 seconds) 2018-01-19T10:01:17Z gigetoo quit (Ping timeout: 276 seconds) 2018-01-19T10:01:19Z heurist_ joined #lisp 2018-01-19T10:02:52Z milanj joined #lisp 2018-01-19T10:03:23Z flip214_ joined #lisp 2018-01-19T10:03:23Z flip214_ quit (Changing host) 2018-01-19T10:03:23Z flip214_ joined #lisp 2018-01-19T10:03:34Z flip214 quit (Read error: Connection reset by peer) 2018-01-19T10:09:02Z nirved joined #lisp 2018-01-19T10:09:20Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-19T10:10:25Z heurist_ quit (Ping timeout: 256 seconds) 2018-01-19T10:11:32Z raynold quit (Quit: Connection closed for inactivity) 2018-01-19T10:13:18Z z3t0 joined #lisp 2018-01-19T10:13:42Z phoe: Is it okay for #'(SETF FOO) to have keyword arguments where #'FOO does not have them? 2018-01-19T10:14:12Z beach: I don't see why not. 2018-01-19T10:17:07Z heurist_ joined #lisp 2018-01-19T10:18:01Z z3t0 quit (Ping timeout: 265 seconds) 2018-01-19T10:19:41Z jackdaniel: (setf (foo :forcibly t) 8) ; something like that? 2018-01-19T10:20:28Z phoe: yes 2018-01-19T10:20:39Z phoe: (setf (foo :invalidate-some-other-stuff t) bar) 2018-01-19T10:20:42Z Shinmera: I really wish SETF didn't have the restriction that the value being set has to be returned. It's not unusual that I want to coerce the value being set to something else, which would be more useful to return instead. 2018-01-19T10:21:57Z heurist_ quit (Ping timeout: 240 seconds) 2018-01-19T10:25:46Z marusich quit (Quit: Leaving) 2018-01-19T10:27:50Z scymtym_: phoe: it can make sense to have FOO and (SETF FOO) accept the same set of keyword arguments even if some are ignored in one of the functions: consider (incf (value "counter" :default 5)) 2018-01-19T10:28:17Z phoe: scymtym_: that's my worry. But let me explain. 2018-01-19T10:28:28Z phoe: I have an object which holds a compressed and decompressed version of some data. 2018-01-19T10:28:48Z phoe: When I setf the decompressed version, this means that the compressed version no longer refers to the decompressed version - they might be different. 2018-01-19T10:29:04Z phoe: This is why I want to do something like (setf (decompressed-data foo :invalidate-compressed-data-p t) new-data) 2018-01-19T10:29:19Z Shinmera: Is there ever a case where you do not want to keep the two in sync? 2018-01-19T10:29:30Z Shinmera: That sounds like an invitation for trouble to me 2018-01-19T10:29:38Z phoe: Yes, during the initial decompressing of the file. 2018-01-19T10:30:07Z phoe: I first setf the compressed-data, then I uncompress it and setf the compressed-data. 2018-01-19T10:30:27Z Shinmera: Automatically decompress and update the decompressed slot when the compressed slot is set. 2018-01-19T10:30:39Z scymtym_: can you explain why you need this kind of object 2018-01-19T10:30:54Z phoe: I am working with an object representing a binary file. 2018-01-19T10:31:08Z phoe: This binary file consists of multiple (up to thousands) of smaller archives concatenated together. 2018-01-19T10:31:51Z phoe: For efficiency, if I edit one of them, I want only this single one to be recompressed - the other ones can use their original compressed form, the one I originally read from the source file. 2018-01-19T10:32:09Z Shinmera: Yeah but do you ever need both at the same time? 2018-01-19T10:32:22Z phoe: And I don't want to set the compressed slot - I operate only on decompressed data. 2018-01-19T10:32:33Z phoe: Shinmera: not really. Either one or the other. 2018-01-19T10:32:41Z Shinmera: Sounds to me more like you should have a data slot and a flag that says whether it's compressed. Or two subclasses, one being compressed and one being not. Then use change-class (and update-instance-for-changed-class) to handle the compression. 2018-01-19T10:32:55Z phoe: Or rather, yes, I need both of them. 2018-01-19T10:33:09Z phoe: Decompressed form, for reading; compressed form, for saving. 2018-01-19T10:33:34Z Shinmera: Yeah but you synthesise one from the other. When you read or when you save respectively. 2018-01-19T10:33:37Z scymtym_: i'm not sure computing the compressed form eagerly after a change makes sense 2018-01-19T10:33:48Z phoe: Hmm. I see. 2018-01-19T10:34:14Z phoe: It's not about computing the compressed form eagerly. 2018-01-19T10:34:21Z phoe: It's about invalidating previously computed data. 2018-01-19T10:34:34Z phoe: I don't want to instantly compress, I want to slot-makunbound 'compressed-data. 2018-01-19T10:34:34Z scymtym_: maybe i misunderstood 2018-01-19T10:34:51Z phoe: I have an object that holds both compressed and uncompressed variants of the same data. 2018-01-19T10:35:01Z z3t0 joined #lisp 2018-01-19T10:35:11Z phoe: The moment I set new decompressed data, I want to purge the old compressed data. 2018-01-19T10:35:44Z phoe: So, when I actually decide to save and compress, my code can compress this thing, set the compressed-data slot, and save it to disk. 2018-01-19T10:36:13Z Shinmera: From my understanding I would do the following: when reading the file read to a list of compressed-data instances. Then when you want to read/write the value, you change-class to decompressed-data first. Finally when you want to save to disk, you change-class them all to compressed-data and write out. 2018-01-19T10:36:32Z phoe: This means that I *re*compress everything. 2018-01-19T10:36:44Z heurist_ joined #lisp 2018-01-19T10:36:46Z phoe: If I have 300 files and only change one of them, this means I compress 300 files and not 1. 2018-01-19T10:36:54Z Shinmera: Ah, right. 2018-01-19T10:37:09Z phoe: That's why I need to hold both compressed and decompressed data. 2018-01-19T10:37:14Z scymtym_: sounds like a state chart, maybe via sublcasses is in order: loaded --decompress--> clean --(setf data)--> dirty 2018-01-19T10:38:06Z phoe: Yep, sounds right. 2018-01-19T10:38:13Z pjb quit (Remote host closed the connection) 2018-01-19T10:38:59Z scymtym_: so why the keyword parameter? wouldn't it always invalidate? 2018-01-19T10:39:17Z phoe: The initial loading. 2018-01-19T10:39:27Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T10:39:28Z Shinmera: use slot-value 2018-01-19T10:39:30Z phoe: When I load the file, I first set compressed-data. Then I decompress, and set uncompressed-data. 2018-01-19T10:39:37Z Shinmera: That's like, what it's for 2018-01-19T10:39:45Z phoe: Hm. Sounds sane, right. 2018-01-19T10:40:19Z pjb joined #lisp 2018-01-19T10:40:42Z scymtym_: or, if you really don't like SLOT-VALUE for this, make an internal :accessor %decompressed-data 2018-01-19T10:40:57Z phoe: I can dig SLOT-VALUE in this single case. 2018-01-19T10:41:18Z heurist`_` joined #lisp 2018-01-19T10:41:35Z heurist_ quit (Ping timeout: 248 seconds) 2018-01-19T10:43:21Z phoe: And so my custom writer can be reduced to (defmethod (setf data) :after (...) (invalidate-something)) 2018-01-19T10:46:07Z heurist`_` quit (Ping timeout: 256 seconds) 2018-01-19T10:47:13Z quazimodo joined #lisp 2018-01-19T10:47:14Z malice joined #lisp 2018-01-19T10:50:25Z m00natic joined #lisp 2018-01-19T10:52:57Z damke joined #lisp 2018-01-19T10:55:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-19T10:56:34Z sjl__ joined #lisp 2018-01-19T10:57:55Z z3t0 joined #lisp 2018-01-19T11:00:06Z pagnol joined #lisp 2018-01-19T11:01:44Z sjl__ quit (Ping timeout: 276 seconds) 2018-01-19T11:02:29Z z3t0 quit (Ping timeout: 265 seconds) 2018-01-19T11:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-19T11:04:53Z JonSmith joined #lisp 2018-01-19T11:04:55Z nika quit (Read error: Connection reset by peer) 2018-01-19T11:05:14Z damke joined #lisp 2018-01-19T11:05:30Z nika joined #lisp 2018-01-19T11:08:57Z JonSmith quit (Remote host closed the connection) 2018-01-19T11:09:51Z nika quit (Ping timeout: 248 seconds) 2018-01-19T11:15:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-19T11:15:52Z z3t0 joined #lisp 2018-01-19T11:16:28Z waaron1 joined #lisp 2018-01-19T11:16:49Z waaron quit (Ping timeout: 248 seconds) 2018-01-19T11:18:16Z Cymew quit (Remote host closed the connection) 2018-01-19T11:19:09Z mishoo quit (Ping timeout: 268 seconds) 2018-01-19T11:20:05Z pagnol quit (Ping timeout: 240 seconds) 2018-01-19T11:20:45Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T11:21:25Z pagnol joined #lisp 2018-01-19T11:23:21Z hhdave joined #lisp 2018-01-19T11:30:22Z malice quit (Remote host closed the connection) 2018-01-19T11:32:45Z vlatkoB_ joined #lisp 2018-01-19T11:33:02Z jack_rabbit: can someone describe the mechanism by which setf is allowed to be a function with a list name? 2018-01-19T11:33:32Z jack_rabbit: I can't seem to define a function with list name except for setf. 2018-01-19T11:33:56Z Shinmera: clhs glossary/function name 2018-01-19T11:33:56Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_f.htm#function_name 2018-01-19T11:34:12Z fikka joined #lisp 2018-01-19T11:34:26Z jack_rabbit: I see. 2018-01-19T11:34:48Z jack_rabbit: It's a special case, and implementations are free to define other setf-like functions. 2018-01-19T11:35:45Z vlatkoB quit (Ping timeout: 260 seconds) 2018-01-19T11:36:26Z schweers joined #lisp 2018-01-19T11:36:27Z jack_rabbit: Or I guess, given that description, implementations can even define weirder name structures. 2018-01-19T11:37:15Z nullniverse joined #lisp 2018-01-19T11:37:32Z Achylles joined #lisp 2018-01-19T11:37:34Z z3t0 joined #lisp 2018-01-19T11:41:51Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-19T11:44:05Z pagnol quit (Ping timeout: 240 seconds) 2018-01-19T11:45:23Z markong joined #lisp 2018-01-19T11:55:37Z damke__ joined #lisp 2018-01-19T11:56:44Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T11:56:45Z damke quit (Ping timeout: 264 seconds) 2018-01-19T12:01:28Z z3t0 joined #lisp 2018-01-19T12:06:17Z plertrood joined #lisp 2018-01-19T12:06:17Z z3t0 quit (Ping timeout: 265 seconds) 2018-01-19T12:06:57Z damke__ quit (Ping timeout: 264 seconds) 2018-01-19T12:13:03Z schweers quit (Ping timeout: 265 seconds) 2018-01-19T12:14:02Z attila_lendvai joined #lisp 2018-01-19T12:15:21Z Cymew joined #lisp 2018-01-19T12:17:03Z dcluna quit (Ping timeout: 248 seconds) 2018-01-19T12:18:25Z attila_lendvai quit (Client Quit) 2018-01-19T12:18:51Z z3t0 joined #lisp 2018-01-19T12:18:58Z dcluna joined #lisp 2018-01-19T12:19:37Z schweers joined #lisp 2018-01-19T12:20:45Z pagnol joined #lisp 2018-01-19T12:22:32Z red-dot joined #lisp 2018-01-19T12:23:54Z z3t0 quit (Ping timeout: 268 seconds) 2018-01-19T12:25:03Z Norvic_ joined #lisp 2018-01-19T12:26:09Z fluxit quit (Ping timeout: 248 seconds) 2018-01-19T12:26:54Z fluxit joined #lisp 2018-01-19T12:26:59Z fikka quit (Ping timeout: 268 seconds) 2018-01-19T12:27:01Z DGASAU` joined #lisp 2018-01-19T12:27:04Z sword` joined #lisp 2018-01-19T12:27:05Z brandonz quit (Ping timeout: 240 seconds) 2018-01-19T12:27:10Z DGASAU quit (Read error: Connection reset by peer) 2018-01-19T12:27:12Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-19T12:27:14Z misv quit (Ping timeout: 248 seconds) 2018-01-19T12:27:14Z froggey quit (Ping timeout: 248 seconds) 2018-01-19T12:27:15Z hjudt quit (Ping timeout: 248 seconds) 2018-01-19T12:27:15Z sigjuice quit (Ping timeout: 248 seconds) 2018-01-19T12:27:15Z greaser|q quit (Remote host closed the connection) 2018-01-19T12:27:15Z isoraqathedh quit (Remote host closed the connection) 2018-01-19T12:27:30Z misv joined #lisp 2018-01-19T12:27:34Z CrazyEddy quit (Remote host closed the connection) 2018-01-19T12:27:41Z brandonz joined #lisp 2018-01-19T12:27:42Z sword quit (Read error: Connection reset by peer) 2018-01-19T12:27:45Z shifty quit (Ping timeout: 248 seconds) 2018-01-19T12:27:45Z norvic quit (Ping timeout: 248 seconds) 2018-01-19T12:27:46Z Xal quit (Ping timeout: 248 seconds) 2018-01-19T12:27:47Z jself quit (Ping timeout: 248 seconds) 2018-01-19T12:28:08Z shifty joined #lisp 2018-01-19T12:28:13Z damke__ joined #lisp 2018-01-19T12:28:27Z brendyn quit (Ping timeout: 240 seconds) 2018-01-19T12:28:28Z koisoke quit (Ping timeout: 240 seconds) 2018-01-19T12:28:28Z isoraqathedh joined #lisp 2018-01-19T12:28:45Z sigjuice joined #lisp 2018-01-19T12:28:47Z sukaeto quit (Ping timeout: 255 seconds) 2018-01-19T12:28:54Z Ven`` joined #lisp 2018-01-19T12:28:54Z hjudt joined #lisp 2018-01-19T12:28:59Z Xal joined #lisp 2018-01-19T12:29:06Z koisoke joined #lisp 2018-01-19T12:29:08Z froggey joined #lisp 2018-01-19T12:29:20Z greaser|q joined #lisp 2018-01-19T12:29:53Z jself joined #lisp 2018-01-19T12:31:20Z python476 joined #lisp 2018-01-19T12:31:43Z CrazyEddy joined #lisp 2018-01-19T12:33:55Z fikka joined #lisp 2018-01-19T12:35:39Z milanj_ joined #lisp 2018-01-19T12:38:12Z milanj quit (Ping timeout: 256 seconds) 2018-01-19T12:38:57Z z3t0 joined #lisp 2018-01-19T12:39:15Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-19T12:42:50Z heurist`_` joined #lisp 2018-01-19T12:43:11Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-19T12:47:58Z wxie joined #lisp 2018-01-19T12:55:27Z brendyn joined #lisp 2018-01-19T12:55:29Z sukaeto joined #lisp 2018-01-19T13:04:18Z pagnol quit (Quit: Ex-Chat) 2018-01-19T13:06:13Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-19T13:07:05Z EvW joined #lisp 2018-01-19T13:07:31Z rumbler31 joined #lisp 2018-01-19T13:07:42Z z3t0 joined #lisp 2018-01-19T13:08:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-19T13:08:08Z jfb4 joined #lisp 2018-01-19T13:11:09Z knicklux joined #lisp 2018-01-19T13:11:27Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-19T13:12:21Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T13:12:28Z papachan joined #lisp 2018-01-19T13:14:02Z mishoo joined #lisp 2018-01-19T13:14:21Z random-nick joined #lisp 2018-01-19T13:15:35Z lnostdal quit (Ping timeout: 240 seconds) 2018-01-19T13:20:30Z dddddd joined #lisp 2018-01-19T13:20:59Z shifty quit (Ping timeout: 255 seconds) 2018-01-19T13:22:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T13:23:38Z red-dot joined #lisp 2018-01-19T13:29:59Z z3t0 joined #lisp 2018-01-19T13:30:20Z lnostdal joined #lisp 2018-01-19T13:35:13Z lnostdal quit (Ping timeout: 265 seconds) 2018-01-19T13:35:14Z z3t0 quit (Ping timeout: 276 seconds) 2018-01-19T13:37:11Z schweers quit (Ping timeout: 255 seconds) 2018-01-19T13:37:19Z Bike joined #lisp 2018-01-19T13:39:04Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-19T13:39:19Z shrdlu68 joined #lisp 2018-01-19T13:42:28Z Tobbi joined #lisp 2018-01-19T13:45:23Z schweers joined #lisp 2018-01-19T13:46:00Z wxie quit (Quit: Bye.) 2018-01-19T13:47:11Z oleo joined #lisp 2018-01-19T13:49:05Z lnostdal joined #lisp 2018-01-19T13:50:53Z dyelar joined #lisp 2018-01-19T13:51:16Z z3t0 joined #lisp 2018-01-19T13:51:37Z ikki joined #lisp 2018-01-19T13:55:45Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-19T13:58:07Z z3t0 joined #lisp 2018-01-19T14:00:06Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-19T14:02:27Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T14:02:50Z nullman quit (Remote host closed the connection) 2018-01-19T14:03:04Z nullman joined #lisp 2018-01-19T14:05:21Z Jesin quit (Quit: Leaving) 2018-01-19T14:05:41Z brendyn quit (Ping timeout: 255 seconds) 2018-01-19T14:06:15Z ikki quit (Ping timeout: 260 seconds) 2018-01-19T14:08:14Z asarch joined #lisp 2018-01-19T14:08:45Z phoe: jack_rabbit: no, why? 2018-01-19T14:09:05Z phoe: the standard is clear, it's either FOO or (SETF FOO), and the implementations are not allowed to extend it in a portable way 2018-01-19T14:09:26Z phoe: they can do whatever they want to, but it won't be standard Common Lisp. 2018-01-19T14:09:32Z hiroaki quit (Ping timeout: 265 seconds) 2018-01-19T14:09:35Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2018-01-19T14:11:20Z Cymew quit (Read error: Connection reset by peer) 2018-01-19T14:11:23Z orivej joined #lisp 2018-01-19T14:11:25Z Cymew_ joined #lisp 2018-01-19T14:12:42Z dented42 joined #lisp 2018-01-19T14:12:56Z hvxgr joined #lisp 2018-01-19T14:13:30Z lnostdal quit (Ping timeout: 246 seconds) 2018-01-19T14:14:16Z z3t0 joined #lisp 2018-01-19T14:15:02Z LiamH joined #lisp 2018-01-19T14:15:03Z LiamH left #lisp 2018-01-19T14:15:13Z JuanDaugherty joined #lisp 2018-01-19T14:15:36Z LiamH joined #lisp 2018-01-19T14:16:30Z chens` joined #lisp 2018-01-19T14:16:53Z troydm joined #lisp 2018-01-19T14:17:35Z python476 quit (Ping timeout: 240 seconds) 2018-01-19T14:18:52Z chens quit (Remote host closed the connection) 2018-01-19T14:19:05Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-19T14:20:43Z lnostdal joined #lisp 2018-01-19T14:21:35Z makomo joined #lisp 2018-01-19T14:23:41Z z3t0 joined #lisp 2018-01-19T14:23:50Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T14:23:59Z hiroaki joined #lisp 2018-01-19T14:24:52Z red-dot joined #lisp 2018-01-19T14:25:20Z mitc0185_ joined #lisp 2018-01-19T14:28:33Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T14:29:01Z rumbler31 joined #lisp 2018-01-19T14:33:27Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-19T14:37:45Z shrdlu68 quit (Read error: Connection reset by peer) 2018-01-19T14:39:40Z itruslove quit (Remote host closed the connection) 2018-01-19T14:39:40Z giraffe quit (Remote host closed the connection) 2018-01-19T14:39:52Z nika joined #lisp 2018-01-19T14:41:04Z raynold joined #lisp 2018-01-19T14:43:26Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-19T14:45:15Z phoe: Is there any kind of GETHASH-OR-DIE in any commonly used utility library? 2018-01-19T14:45:19Z jfb4 joined #lisp 2018-01-19T14:45:34Z z3t0 joined #lisp 2018-01-19T14:45:47Z Shinmera: "die" meaning what? 2018-01-19T14:45:52Z Shinmera: Your implementation crashes? 2018-01-19T14:45:54Z phoe: Signal an error. 2018-01-19T14:46:05Z beach: phoe: It is too easy for a library. 2018-01-19T14:46:19Z phoe: SBCL has a lot of -OR-DIE internal functions and I don't see it crash. (: 2018-01-19T14:46:26Z beach: (multiple-value-bind (value present-p) (gethash ...) (assert present-p) ..) 2018-01-19T14:46:29Z dlowe: (or (gethash foo bar) (die)) 2018-01-19T14:46:38Z Shinmera: dlowe: What if it returns NIL as the value? 2018-01-19T14:46:44Z dlowe: DEATH 2018-01-19T14:46:48Z phoe: beach: ASSOC-VALUE is too easy for a library. 2018-01-19T14:46:49Z Shinmera: heh 2018-01-19T14:46:56Z beach: phoe: It is. 2018-01-19T14:47:04Z phoe: Yet alexandria has it. 2018-01-19T14:47:05Z dlowe: 99% of the time, you don't want to store NIL 2018-01-19T14:47:06Z Shinmera: The setf part of assoc-value is not trivial 2018-01-19T14:47:13Z phoe: dlowe: sometimes yes, I do. 2018-01-19T14:47:17Z dlowe: the other 1%, you can do what beach describes 2018-01-19T14:47:27Z dlowe: phoe: probabilities. do you understand them 2018-01-19T14:47:48Z jackdaniel: ensure-list is easy too, yet it's not a bad idea to have it handy in alexandria 2018-01-19T14:48:24Z Shinmera prefers (defun enlist (a &rest parts) (if (listp a) a (list* a parts))) 2018-01-19T14:50:07Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-19T14:50:14Z nullman quit (Ping timeout: 256 seconds) 2018-01-19T14:50:48Z nullman joined #lisp 2018-01-19T14:51:17Z nika quit (Ping timeout: 268 seconds) 2018-01-19T14:52:02Z Achylles quit (Ping timeout: 255 seconds) 2018-01-19T14:52:48Z jdz: That's a weird function. 2018-01-19T14:52:55Z fikka quit (Ping timeout: 260 seconds) 2018-01-19T14:54:09Z phoe: A bit more useful, it seems. 2018-01-19T14:54:19Z phoe: (enlist 'foo) is equivalent to (ensure-list 'foo). 2018-01-19T14:54:44Z Shinmera: It's not very often that being able to specify the other parts in the resulting list is useful, but it has come in handy at times. 2018-01-19T14:54:51Z |3b|: (enlist '(1) 2 3)) being (1) seems odd though 2018-01-19T14:55:13Z Shinmera: Well it's odd if you specify the argument directly there no matter what. 2018-01-19T14:55:38Z |3b|: right, was more talking about the case where it was in a variable 2018-01-19T14:55:42Z jackdaniel: I still like ensure-list better 2018-01-19T14:55:54Z |3b|: (enlist a 2 3) may or may not return a list ending with 2 3 2018-01-19T14:56:17Z Bike: yeah i'm curious what you use that for. 2018-01-19T14:56:29Z |3b| probably should have used something with identity, since a could have 2,3 already too 2018-01-19T14:56:43Z |3b| gives up :p 2018-01-19T14:57:51Z Shinmera: A specific instance is: for textures you can specify a wrapping, both in x and y. (enlist wrapping wrapping) means that if it's a single keyword, it goes for both x and y. 2018-01-19T14:58:57Z FreeBirdLjj joined #lisp 2018-01-19T14:59:04Z Shinmera: Another example: when binding the matrix stack locally you can specify which matrices to bind, and how (copy, zero, identity). So (enlist matrix :copy) means the default behaviour is to copy, but if you want to specify further you can do that too. 2018-01-19T14:59:29Z Shinmera: Obviously you can put this kind of logic into the destructuring part as well 2018-01-19T15:00:13Z Shinmera: With things like LOOP where the destructuring that is available is rather poor, this sort of thing is handy though. 2018-01-19T15:00:56Z |3b|: yeah, can be both "odd" and "useful" at the same time :) 2018-01-19T15:01:24Z |3b|: and most of the things i can think of that would fix my perception of oddness would probably make it verbose enough to no longer be as useful 2018-01-19T15:03:08Z jackdaniel: I'm not sure if putting so much meaning into lists stored in variables is a good idea either, but it's only an opinion 2018-01-19T15:03:56Z Xach: late to the party, but 2018-01-19T15:04:10Z Xach: sbcl's convention is "foo-or-lose" 2018-01-19T15:04:32Z fikka joined #lisp 2018-01-19T15:06:25Z AeroNotix: is there a way to tell sbcl to print symbols by default in lowercase? 2018-01-19T15:06:32Z phoe: AeroNotix: yes 2018-01-19T15:06:33Z Shinmera: clhs *print-case* 2018-01-19T15:06:33Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_pr_cas.htm 2018-01-19T15:06:39Z phoe: oh, he beat me to it 2018-01-19T15:07:02Z AeroNotix: Thanks both! 2018-01-19T15:07:07Z kami joined #lisp 2018-01-19T15:07:46Z kami: Hello #lisp 2018-01-19T15:08:29Z z3t0 joined #lisp 2018-01-19T15:09:44Z Cymew_ quit (Remote host closed the connection) 2018-01-19T15:10:31Z jackdaniel: hello kami 2018-01-19T15:11:25Z sjl__ joined #lisp 2018-01-19T15:12:31Z AeroNotix: oh man, I've been writing lisp on and off for years but never thought to see if that :upcase/:downcase behaviour could be changed. QOL improvement for sure 2018-01-19T15:12:35Z murii quit (Ping timeout: 240 seconds) 2018-01-19T15:12:46Z Shinmera: Note that you might also break libraries if you do this 2018-01-19T15:12:49Z giraffe joined #lisp 2018-01-19T15:12:56Z AeroNotix: in what way? 2018-01-19T15:12:57Z z3t0 quit (Ping timeout: 264 seconds) 2018-01-19T15:12:57Z Shinmera: Libraries that depend on the print behaviour of symbols. 2018-01-19T15:13:12Z AeroNotix: Hmm, not sure exactly but that would seem to make them already broken 2018-01-19T15:13:19Z AeroNotix: why would they depend on that behaviour? 2018-01-19T15:13:44Z Shinmera: Serialising a symbol to string can make that happen. 2018-01-19T15:15:10Z sjl quit (Ping timeout: 256 seconds) 2018-01-19T15:17:10Z josemanuel quit (Quit: leaving) 2018-01-19T15:17:55Z jackdaniel: serialising symbol name* 2018-01-19T15:18:48Z pjb: Only in buggy libraries. 2018-01-19T15:18:48Z Shinmera: No, I meant what I said. 2018-01-19T15:18:49Z itruslove joined #lisp 2018-01-19T15:18:56Z Tobbi quit (Ping timeout: 248 seconds) 2018-01-19T15:19:06Z Shinmera: pjb: Sure, it's a bug. I'm just saying. 2018-01-19T15:20:24Z groovy2shoes quit (Quit: moritura te saluto) 2018-01-19T15:21:01Z Devon joined #lisp 2018-01-19T15:21:14Z Cymew joined #lisp 2018-01-19T15:21:30Z msb quit (Ping timeout: 260 seconds) 2018-01-19T15:22:36Z z3t0 joined #lisp 2018-01-19T15:22:57Z msb joined #lisp 2018-01-19T15:25:04Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-19T15:26:21Z groovy2shoes joined #lisp 2018-01-19T15:27:21Z z3t0 quit (Ping timeout: 265 seconds) 2018-01-19T15:29:09Z Cymew quit (Remote host closed the connection) 2018-01-19T15:29:59Z phoe: Can I print arrays in a readable form while preserving their element-type? How? 2018-01-19T15:30:29Z phoe: Printing a specialized vector of (unsigned-byte 8) gives me #(0 1 2 3) which, when read, is a simple-vector. 2018-01-19T15:30:50Z |3b|: #. or maybe implementation specific syntax 2018-01-19T15:30:58Z jackdaniel: #. 2018-01-19T15:31:00Z jackdaniel: that 2018-01-19T15:31:05Z phoe: #. - okay. 2018-01-19T15:31:11Z pjb: (format t "#.(make-array '~S :element-type '~S :initial-contents '~S)" (array-dimensions a) (array-element-type a) (convert-to-sequence a)) 2018-01-19T15:31:35Z rippa joined #lisp 2018-01-19T15:31:52Z phoe: Thanks. 2018-01-19T15:32:28Z pjb: alternatively: (format t "#.(coerce '~S '~S)" a (type-of a)) 2018-01-19T15:33:53Z pjb: May not work depending on how the implementation prints the types and how it takes it for coerce. 2018-01-19T15:34:53Z Bike: phoe: if you use *print-readably* the implementation might figure something out. ECL uses a special form of #a and sbcl adopted that, iirc. 2018-01-19T15:35:25Z Cymew joined #lisp 2018-01-19T15:37:05Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T15:37:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-19T15:38:26Z red-dot joined #lisp 2018-01-19T15:40:35Z Cymew quit (Ping timeout: 276 seconds) 2018-01-19T15:41:21Z theBlackDragon quit (Ping timeout: 256 seconds) 2018-01-19T15:41:32Z Cymew joined #lisp 2018-01-19T15:41:38Z eudoxia joined #lisp 2018-01-19T15:42:16Z phoe: Bike: I see. 2018-01-19T15:42:40Z Bike: if it can't figure something out it'll signal an error. 2018-01-19T15:42:47Z phoe: Yes, I know that one. 2018-01-19T15:42:52Z fikka joined #lisp 2018-01-19T15:43:02Z phoe: Though I admit, I'll prefer the #. route because it's standard. 2018-01-19T15:43:38Z phoe: CCL signals an error there, yes. 2018-01-19T15:43:49Z z3t0 joined #lisp 2018-01-19T15:46:20Z Cymew quit (Ping timeout: 256 seconds) 2018-01-19T15:47:08Z phoe: clhs *print-pprint-dispatch* 2018-01-19T15:47:09Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_pr_ppr.htm 2018-01-19T15:47:11Z phoe: " In general, however, you can put a value in *print-pprint-dispatch* that makes pretty-printed output look exactly like non-pretty-printed output." 2018-01-19T15:47:16Z phoe: How do I do this? 2018-01-19T15:47:21Z phoe: Has anyone done this before? 2018-01-19T15:47:32Z Cymew joined #lisp 2018-01-19T15:48:21Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-19T15:48:42Z dec0n quit (Read error: Connection reset by peer) 2018-01-19T15:49:04Z phoe: Inside some dynamic environment, I want to print all non-string vectors as #.(MAKE-ARRAY ... :ELEMENT-TYPE ... :INITIAL-CONTENTS ...) - I guessed that I can do this by hacking the pretty-printer dispatch table and feeding it a function that prints them like this. 2018-01-19T15:49:41Z phoe: But this means that everything else will be pretty-printed, which is not readable. So I want to tell the pretty-printer dispatch table to print everything in a not-pretty way. 2018-01-19T15:49:44Z phoe: How do I do this? 2018-01-19T15:50:14Z pjb: I would just write my own printing function. 2018-01-19T15:51:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-19T15:52:39Z phoe: I wish I could just define a PRINT-OBJECT method on VECTOR, but that ain't portable. 2018-01-19T15:53:29Z Cymew joined #lisp 2018-01-19T15:54:39Z pjb: I consider print and print-object only for debugging purposes. Not for enterprisy serialization. 2018-01-19T15:54:39Z schweers quit (Ping timeout: 246 seconds) 2018-01-19T15:55:00Z Bike: they're kind of overcomplicated for just debugging 2018-01-19T15:56:12Z pjb: Otherwise, you can wrap your arrays in an object, and use print-object on that class. 2018-01-19T15:57:32Z sjl__ is now known as sjl 2018-01-19T15:57:36Z |3b|: could put a function in pprint-dispatch that just rebind print-pretty to nil and prints again, but don't see any way to get an empty dispatch table or enumerate the contents to be sure you replaced everything in it 2018-01-19T15:57:59Z Cymew quit (Ping timeout: 256 seconds) 2018-01-19T15:59:58Z |3b|: (possibly with something to detect loops, in case some print-object tries to pprint things) 2018-01-19T16:02:08Z z3t0 joined #lisp 2018-01-19T16:04:24Z eivarv joined #lisp 2018-01-19T16:04:45Z phoe: I wish I could get an empty pprint dispatch table. 2018-01-19T16:04:49Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-19T16:05:00Z phoe: NAMED-READTABLES have figured out a way to do this, but it does it via portable code. 2018-01-19T16:06:35Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-19T16:09:07Z phoe: ...and ALEXANDRIA could use a COERCEF. 2018-01-19T16:09:18Z Karl_Dscc joined #lisp 2018-01-19T16:11:36Z flamebeard quit (Quit: Leaving) 2018-01-19T16:19:41Z kami quit (Ping timeout: 276 seconds) 2018-01-19T16:20:14Z nullniverse quit (Ping timeout: 255 seconds) 2018-01-19T16:22:09Z fikka quit (Ping timeout: 256 seconds) 2018-01-19T16:23:57Z _death: already has it 2018-01-19T16:26:06Z fikka joined #lisp 2018-01-19T16:28:46Z phoe: ...oh 2018-01-19T16:30:57Z phoe: good 2018-01-19T16:31:10Z phoe: I hadn't use-package'd it. 2018-01-19T16:32:07Z sjl quit (Ping timeout: 265 seconds) 2018-01-19T16:35:35Z turkja quit (Ping timeout: 260 seconds) 2018-01-19T16:36:28Z sjl joined #lisp 2018-01-19T16:37:20Z asarch quit (Ping timeout: 248 seconds) 2018-01-19T16:38:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T16:39:18Z whoman joined #lisp 2018-01-19T16:43:48Z sjl quit (Quit: WeeChat 1.9) 2018-01-19T16:54:27Z nullman quit (Ping timeout: 256 seconds) 2018-01-19T16:54:50Z knobo1 quit (Ping timeout: 260 seconds) 2018-01-19T16:54:51Z Jesin joined #lisp 2018-01-19T17:00:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-19T17:01:17Z red-dot joined #lisp 2018-01-19T17:09:01Z rumbler3_ joined #lisp 2018-01-19T17:09:38Z drewc quit (Ping timeout: 256 seconds) 2018-01-19T17:11:27Z krasnal joined #lisp 2018-01-19T17:13:43Z rumbler3_ quit (Ping timeout: 256 seconds) 2018-01-19T17:16:20Z sjl joined #lisp 2018-01-19T17:16:48Z DGASAU` is now known as DGASAU 2018-01-19T17:18:45Z beach: clhs read 2018-01-19T17:18:45Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_rd_rd.htm 2018-01-19T17:19:08Z beach: Can someone help me interpret the paragraph "Exceptional Situations:", please? 2018-01-19T17:19:21Z beach: First it says "regardless of eof-error-p". 2018-01-19T17:19:21Z theBlackDragon joined #lisp 2018-01-19T17:19:29Z vaporatorius quit (Ping timeout: 255 seconds) 2018-01-19T17:19:38Z EvW quit (Ping timeout: 255 seconds) 2018-01-19T17:19:43Z beach: Then it says "This is detected when ... AND eof-error-p non-nil" 2018-01-19T17:20:16Z whoman: well 2018-01-19T17:20:51Z whoman: it also says regardless ? 2018-01-19T17:21:06Z whoman: ohh 2018-01-19T17:21:46Z moei joined #lisp 2018-01-19T17:22:33Z tfb: it signals en eof error *regardless of eof-error-p* if you hit the end of file while (say) reading a string or list 2018-01-19T17:22:39Z whoman: so if it is called when recursive-p AND eof-error-p .. 2018-01-19T17:23:03Z whoman: tfb but it says , the eof is detected when eof-error-p and recursive-p are non-nil 2018-01-19T17:23:24Z beach: tfb: That part I understand. But then it seems to require eof-error-p to be non-nil for this situation to be detected. 2018-01-19T17:23:27Z whoman: i really think it would be better if the hyperspec was more CODE. (same with legal documents) 2018-01-19T17:23:44Z whoman: only if recursive-p i think, beach 2018-01-19T17:23:54Z beach: That is what I am thinking too. 2018-01-19T17:23:58Z tfb: no that's before the *beginning* of an object 2018-01-19T17:24:14Z beach: Oh, OK. 2018-01-19T17:24:36Z beach: er, no I don't see it. 2018-01-19T17:24:53Z beach: In "This is detected..." what is "This"? 2018-01-19T17:25:09Z beach: It must be "if the file ends in the middle of an object representation", no? 2018-01-19T17:25:38Z tfb: if you are recursive-p is true then you are in the middle of an object by assumption. 2018-01-19T17:25:51Z tfb: But I'm not actually sure if the wording is right now 2018-01-19T17:26:29Z beach: I think I know how to implement it, but I can't figure out why they say that eof-error-p is non-nil. 2018-01-19T17:30:49Z warweasle joined #lisp 2018-01-19T17:30:51Z whoman: beach, the condition of eof = This 2018-01-19T17:30:52Z tfb: My guess is that if recursive-p is true then you need to signal regardless of eof-error-p since you are in the middle of reading something 2018-01-19T17:31:03Z random-nick: maybe that means the recursive calls to read when encountering something like ( have recursive-p and eof-error-p non-nil so that the toplevel call to read gets the error 2018-01-19T17:31:05Z tfb: and that there's a bug in the spec about that 2018-01-19T17:31:27Z tfb: alternatively, recursive calls must also set eof-error-p true 2018-01-19T17:31:40Z whoman: hmmm yeah 2018-01-19T17:31:40Z tfb: but nothing says that 2018-01-19T17:32:16Z whoman: english is not so great at conveying logic 2018-01-19T17:32:44Z tfb: whoman: but specifications written in some logical formalism are insanely hard to understand (for me) 2018-01-19T17:32:48Z fikka joined #lisp 2018-01-19T17:32:52Z whoman: well it could be. but i think the CLHS could benefit from some more mathematical/logical descriptions. beyond the useless syntax graphics. 2018-01-19T17:32:57Z drewc joined #lisp 2018-01-19T17:32:57Z random-nick: I think "This" refers to "if a file does not contain enough right parentheses to balance the left parentheses in it" 2018-01-19T17:33:10Z whoman: tfb, i mean like in lisp code =) CL pseudo code 2018-01-19T17:33:54Z tfb: whoman: yes 2018-01-19T17:34:04Z whoman: eg. translating that section ("Excep...") into 'generic' CL 2018-01-19T17:34:04Z beach: random-nick: Yes, when READ is called recursively, it should be called with that flag being true. 2018-01-19T17:34:22Z beach: tfb: Ah, that's an idea. 2018-01-19T17:34:24Z whoman: there is a project (forgetting the name, again) which implements CL in an implementation-independant way. like a reference, i guess 2018-01-19T17:34:49Z pjb: sicl 2018-01-19T17:35:00Z jasom: sicl is very much not implementation-independant 2018-01-19T17:35:25Z jasom: e.g. it's loop implementation will not work unless you have first-class global environments 2018-01-19T17:35:30Z pjb: It is very implementation independent. It's written in conforming CL. 2018-01-19T17:35:45Z beach: jasom: That just isn't true. Where did you get that from? 2018-01-19T17:36:08Z jasom: beach: I thought I got it from you... *checks logs* 2018-01-19T17:36:24Z beach: SICL LOOP requires CLOS but not first-class global environments. 2018-01-19T17:37:15Z beach: whoman: Is SICL the project you are thinking of? There is an older project (abandoned I think) that did something simpler than what SICL is attempting. 2018-01-19T17:37:25Z plertrood quit (Ping timeout: 260 seconds) 2018-01-19T17:37:30Z jasom: "2016-05-30 22:09:47 beach jasom: Currently, in order to use SICL LOOP, you need first-class global environments to avoid the package lock." 2018-01-19T17:37:45Z jasom: maybe that's no longer true 2018-01-19T17:37:47Z fikka quit (Ping timeout: 268 seconds) 2018-01-19T17:38:04Z beach: Sure, but that would be true for any implementation of LOOP. 2018-01-19T17:38:25Z beach: If you try to load your own LOOP macro into SBCL, then you trip the package lock. 2018-01-19T17:38:41Z jasom: ah, it defines it as cl:loop, not some other package? 2018-01-19T17:38:49Z beach: Of course. 2018-01-19T17:38:55Z beach: It is a native implementation of LOOP. 2018-01-19T17:39:41Z beach: I think I did it so that you can create a sicl-loop package and not define the macro itself. That way, you can define package:loop to call the support functions. 2018-01-19T17:40:09Z jasom: If I wanted to use sicl in a lisp bootstrapped by sbcl, how would I go about doing so? 2018-01-19T17:40:47Z beach: That would depend on the Lisp in question, I would think. 2018-01-19T17:40:57Z beach: It would depend on how that Lisp is bootstrapped. 2018-01-19T17:41:54Z jasom: got it; I misunderstood your answer then 2018-01-19T17:41:57Z ebrasca quit (Ping timeout: 240 seconds) 2018-01-19T17:42:00Z beach: The SICL Loop macro is very small https://github.com/robert-strandh/SICL/blob/master/Code/Loop/loop-defmacro.lisp 2018-01-19T17:42:27Z beach: So if you just omit it and define your own replacement in the package of your choice, you can use the full SICL LOOP. 2018-01-19T17:43:15Z orivej quit (Ping timeout: 260 seconds) 2018-01-19T17:43:15Z shrdlu68 joined #lisp 2018-01-19T17:43:18Z jasom: that makes sense. The implementation I was planning on using it from (jscl) has since gotten loop via a port from Symbolics's implementation 2018-01-19T17:43:37Z beach: But I fully admit that I still have to come up with a configuration of one or more ASDF system definitions that will work both natively, and when someone wants to try the system in some other implementation without tripping the package lock. 2018-01-19T17:45:48Z |3b|: clhs 23.1.3.2 2018-01-19T17:45:48Z specbot: The RECURSIVE-P argument: http://www.lispworks.com/reference/HyperSpec/Body/23_acb.htm 2018-01-19T17:46:26Z jasom: beach: hmm, SICL looks way more complete than the last time I looked at it 2018-01-19T17:46:33Z beach: |3b|: Oh, thanks! 2018-01-19T17:46:35Z |3b|: beach: looks like "this" is the specific condition of eof in the middle of an object rather than eof in general 2018-01-19T17:47:01Z beach: jasom: Most of the code is there, but I am making slow progress on the bootstrapping part. 2018-01-19T17:47:51Z |3b|: though READ specifies the same error type in both cases 2018-01-19T17:47:55Z hhdave quit (Ping timeout: 260 seconds) 2018-01-19T17:48:00Z beach: Yeah. 2018-01-19T17:48:05Z jasom: beach: so it's not quite at the point where I can make an hir-to-target translator and push a button to bootstrap? 2018-01-19T17:48:13Z beach: |3b|: Still that's more information. Thanks. 2018-01-19T17:48:24Z beach: jasom: Nope, sorry. 2018-01-19T17:48:25Z Jesin quit (Quit: Leaving) 2018-01-19T17:48:42Z jasom: beach: don't apologize; a greenfield CL implementation is an obscene amount of work! 2018-01-19T17:48:52Z beach: jasom: Well, not quite true. If all you want is a file compiler, then everything is in place. 2018-01-19T17:49:14Z beach: jasom: The hard part is bootstrapping a native system. 2018-01-19T17:49:41Z jasom: beach: that *might* be sufficient for what I'm looking for; but isn't a runtime needed? 2018-01-19T17:49:42Z ikki joined #lisp 2018-01-19T17:49:49Z beach: My (admittedly small) family is calling me to dinner. I'll be back later. 2018-01-19T17:49:53Z jasom: beach: enjoy! 2018-01-19T17:50:07Z beach: Yes, you would need your own Common Lisp implementation (the runtime). 2018-01-19T17:52:35Z varjag joined #lisp 2018-01-19T17:52:56Z dmiles: jasom: are you improving jscl ? 2018-01-19T17:58:07Z d4ryus2 is now known as d4ryus 2018-01-19T18:00:51Z fikka joined #lisp 2018-01-19T18:01:35Z jasom: dmiles: this was like 2 years ago that I looked into it 2018-01-19T18:02:44Z _cosmonaut_ quit (Remote host closed the connection) 2018-01-19T18:02:49Z dmiles: mostly i was asking to see if jscl is getting more love and improvement 2018-01-19T18:03:22Z whoman: would be nice eh 2018-01-19T18:04:55Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T18:05:15Z m00natic quit (Remote host closed the connection) 2018-01-19T18:08:00Z JuanitoJons joined #lisp 2018-01-19T18:09:46Z hexfive joined #lisp 2018-01-19T18:10:16Z python476 joined #lisp 2018-01-19T18:15:53Z chens`` joined #lisp 2018-01-19T18:16:13Z joga_ joined #lisp 2018-01-19T18:18:19Z foom joined #lisp 2018-01-19T18:19:11Z chens` quit (Ping timeout: 248 seconds) 2018-01-19T18:20:35Z foom2 quit (Ping timeout: 276 seconds) 2018-01-19T18:22:23Z joga_ quit (Changing host) 2018-01-19T18:22:23Z joga_ joined #lisp 2018-01-19T18:22:25Z joga_ is now known as joga 2018-01-19T18:29:15Z jmercouris joined #lisp 2018-01-19T18:31:12Z jmercouris: We have #\return, but we don't have #\escape 2018-01-19T18:31:17Z smasta quit (Quit: WeeChat 2.0.1) 2018-01-19T18:31:19Z jmercouris: so how do we represent escape? 2018-01-19T18:32:00Z phoe: jmercouris: where? 2018-01-19T18:32:13Z phoe: where do you want to put this escape? 2018-01-19T18:32:26Z jmercouris: I would like to put it inline in code 2018-01-19T18:32:27Z __main__ quit (Ping timeout: 240 seconds) 2018-01-19T18:32:32Z red-dot joined #lisp 2018-01-19T18:32:33Z Bike: i don't think you even have #\Return, standardly 2018-01-19T18:32:34Z jmercouris: I have this for example: (setf (gethash "RETURN" *character-conversion-table*) (char-code #\Return)) 2018-01-19T18:32:39Z Bike: so, #\Escape works for me 2018-01-19T18:32:46Z jmercouris: Escape works for you? 2018-01-19T18:32:56Z jmercouris: interesting, it works for me too 2018-01-19T18:33:02Z jmercouris: it wasn't coming up as a completion so I didn't try it 2018-01-19T18:33:02Z Bike: also, are you aware of name-char 2018-01-19T18:33:08Z jmercouris: I am not aware of name-char 2018-01-19T18:33:14Z Bike: (name-char "Escape") => #\Esc 2018-01-19T18:33:27Z jmercouris: aha, that is very useful 2018-01-19T18:33:27Z Bike: (name-char "Return") => #\Return 2018-01-19T18:33:28Z Bike: etc 2018-01-19T18:33:46Z jmercouris: okay, so will name-char "Escape" return different values on different implementations? 2018-01-19T18:34:03Z |3b|: probably not any you care about 2018-01-19T18:34:05Z jmercouris: since you said that #\Return was not standard 2018-01-19T18:34:06Z jmercouris: okay 2018-01-19T18:34:14Z jmercouris: Good, I will just leave it at #\Esc then 2018-01-19T18:34:21Z Bike: clhs 13.1.7 2018-01-19T18:34:21Z specbot: Character Names: http://www.lispworks.com/reference/HyperSpec/Body/13_ag.htm 2018-01-19T18:34:23Z Bike: is the standard names 2018-01-19T18:34:33Z |3b| probably wouldn't use a non-unicode lisp without a good reason these days 2018-01-19T18:34:37Z Bike: however, everyone uses ascii and most use unicode 2018-01-19T18:34:52Z jmercouris: I see 2018-01-19T18:34:55Z jmercouris: okay, thank you 2018-01-19T18:35:04Z |3b|: and even less so if it also wasn't ascii (or some simple superset) 2018-01-19T18:35:08Z jmercouris: as you can see in that clhs link, doesn't appear that escape is there 2018-01-19T18:35:34Z |3b|: clhs 2.1.3 2018-01-19T18:35:34Z specbot: Standard Characters: http://www.lispworks.com/reference/HyperSpec/Body/02_ac.htm 2018-01-19T18:35:48Z jmercouris: so, will (char-code #\Return) return a different value in a unicode vs ascii based implementation? 2018-01-19T18:36:13Z dlowe: the bottom values of unicode are ascii, so no 2018-01-19T18:36:15Z |3b|: unicode and ascii overlap, so should be the same 2018-01-19T18:36:19Z __main__ joined #lisp 2018-01-19T18:36:26Z jmercouris: Ok, good 2018-01-19T18:36:31Z jmercouris: so unicode is just an extension of ascii 2018-01-19T18:36:38Z jmercouris: so as long as some value values within the ascii set, it willbe okay 2018-01-19T18:36:49Z jmercouris: well, that's a simplification I am sure, but for my purposes it is enough 2018-01-19T18:37:04Z dlowe: yeah, for all encodings I'm aware of 2018-01-19T18:38:02Z jmercouris: thanks guys 2018-01-19T18:38:48Z shrdlu68: On SBCL at least, other characters also have names, like #\Trade_Mark_Sign 2018-01-19T18:39:10Z sjl: UTF-8, not "unicode", is an extension of ASCII 2018-01-19T18:39:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-19T18:39:35Z sjl: e.g. UTF-32 a != ASCII a 2018-01-19T18:39:54Z |3b|: unicode a = ascii a 2018-01-19T18:39:56Z dlowe: sjl: being preceded by three zero bytes 2018-01-19T18:39:57Z jasom uses UTF-24 2018-01-19T18:40:03Z dlowe: so you know, basically the same number 2018-01-19T18:40:31Z |3b|: most encodings of unicode a aren't (only) ascii a 2018-01-19T18:40:43Z sjl: "unicode" isn't an encoding 2018-01-19T18:41:01Z dlowe: neither is "ascii" necessarily. 2018-01-19T18:41:11Z jasom: it started out as an encoding, but they abandoned that once it was clear that the 2**16 wasn't nearly enough 2018-01-19T18:41:14Z Bike: is this important 2018-01-19T18:41:22Z Bike: in this context 2018-01-19T18:41:24Z dlowe: Bike: no, but I knew someone was going to bring it up 2018-01-19T18:41:33Z |3b|: in the context of code-char, "encoding" doesn't matter :) 2018-01-19T18:41:44Z Bike: because there was already a long argument about characters or something yesterday 2018-01-19T18:42:08Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-19T18:42:11Z dlowe: Truth can only be reached by arguing over the same details over and over again. 2018-01-19T18:42:21Z jasom: jmercouris: (char-code #\Return) can return any number whatsoever and still be conforming. In practice all modern implementations will return the unicode code-point 2018-01-19T18:42:48Z jmercouris: jasom: Good enough for me :) 2018-01-19T18:43:02Z jasom: and the first unicode code-points are identical to iso-8859-1 which is a superset of ascii 2018-01-19T18:43:02Z jmercouris: when the day comes that a random implementation changes that I'll put a +sbcl :D 2018-01-19T18:43:19Z |3b| wants a lisp with complex code-chars now 2018-01-19T18:43:19Z jasom: s/first/first 256 2018-01-19T18:43:27Z shrdlu68 just tried "man unicode" 2018-01-19T18:43:40Z |3b|: (char-code is limited to positive integers < char-code-limit) 2018-01-19T18:43:42Z jasom: |3b|: it must be a non-negative integer 2018-01-19T18:43:50Z jasom: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_c.htm#character_code 2018-01-19T18:43:50Z |3b|: yeah, non-negative 2018-01-19T18:44:22Z |3b| is mostly just being amused by the implications of "any number" :) 2018-01-19T18:44:40Z orivej joined #lisp 2018-01-19T18:44:41Z jasom: also two different characters may have the same code in a conforming implementation 2018-01-19T18:44:44Z _death: we need ebcdiclisp 2018-01-19T18:44:51Z kami joined #lisp 2018-01-19T18:47:19Z Ellusionist joined #lisp 2018-01-19T18:49:51Z shrdlu68: Given all this, how would one collect a range of characters. For example if I wanted #\a to #\z, would 2018-01-19T18:49:54Z shrdlu68: (loop with start = (char-code #\a) 2018-01-19T18:49:57Z shrdlu68: for n from start to (+ start 25) 2018-01-19T18:50:00Z shrdlu68: collecting (code-char n)) 2018-01-19T18:50:04Z shrdlu68: be a portable solution? 2018-01-19T18:50:48Z jasom: shrdlu68: only if the characters have the same implementation-defined attributes 2018-01-19T18:51:48Z jasom: shrdlu68: actually not; the spec only defines that #\z > #\a , not that there are exactly 26 characters in the range #\a - #\z 2018-01-19T18:52:49Z |3b|: "it is permissible for uppercase and lowercase characters to be interleaved" 2018-01-19T18:53:01Z jasom: and indeed in EBCDIC there are more than 26 codes between a and z 2018-01-19T18:53:19Z shrdlu68: I see. So what would be a portable way to collect a range of characters? 2018-01-19T18:53:30Z sjl: e.g. a Lisp made by an Icelandic person might have (= (char-code #\ð) (char-code #\d)) 2018-01-19T18:53:34Z _death: enumerate the characters you want 2018-01-19T18:53:36Z Bike: (map 'list #'char-code "abcdefghijklmnopqrstuvwxyz") 2018-01-19T18:53:44Z |3b|: assume ascii/unicode, and let whoever uses the odd lisp send you a patch? :) 2018-01-19T18:53:56Z sjl: er 2018-01-19T18:54:03Z sjl: (1+ (char-code #\d)) rather 2018-01-19T18:54:35Z Bike: a lisp made by an icelandic person who hates their language and just collapses all the funny characters to english ones 2018-01-19T18:54:59Z _death: you could also define the tables for the standards you care about or use a library 2018-01-19T18:55:28Z sjl: Bike: yeah should have added the 1+ in there 2018-01-19T18:55:44Z jmercouris: jasom: just curious, are you using next at all or no? 2018-01-19T18:55:57Z Bike: i think old english used that character, so maybe it can be included anyway, tho 2018-01-19T18:56:14Z fikka joined #lisp 2018-01-19T18:56:25Z jasom: jmercouris: not currently 2018-01-19T18:56:36Z jmercouris: jasom: Have you tried it since the release? 2018-01-19T18:56:42Z jmercouris: what are the barriers for your full time adoption? 2018-01-19T18:57:00Z tfb: sjl: well, they could differ on implementation-defined attributes. 2018-01-19T18:57:22Z jasom: jmercouris: honestly, I'm happy with firefox 2018-01-19T18:57:57Z jmercouris: I see, so you are just not the target audience 2018-01-19T18:58:03Z jmercouris: ok, fair enough 2018-01-19T19:02:50Z jmercouris quit (Ping timeout: 276 seconds) 2018-01-19T19:03:24Z Ellusionist quit (Ping timeout: 265 seconds) 2018-01-19T19:05:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-19T19:06:41Z kushal quit (Ping timeout: 248 seconds) 2018-01-19T19:07:12Z random-nick quit (Ping timeout: 268 seconds) 2018-01-19T19:08:10Z __main__ quit (Remote host closed the connection) 2018-01-19T19:09:06Z smasta joined #lisp 2018-01-19T19:10:54Z shrdlu68 quit (Ping timeout: 268 seconds) 2018-01-19T19:11:12Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T19:11:13Z shrdlu68 joined #lisp 2018-01-19T19:12:22Z hexfive joined #lisp 2018-01-19T19:20:53Z fikka joined #lisp 2018-01-19T19:22:37Z __main__ joined #lisp 2018-01-19T19:25:57Z fikka quit (Ping timeout: 256 seconds) 2018-01-19T19:26:03Z shifty joined #lisp 2018-01-19T19:27:04Z hexfive quit (Remote host closed the connection) 2018-01-19T19:28:39Z hexfive joined #lisp 2018-01-19T19:30:21Z fikka joined #lisp 2018-01-19T19:30:53Z pagnol joined #lisp 2018-01-19T19:32:44Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T19:33:06Z LocaMocha quit (Ping timeout: 268 seconds) 2018-01-19T19:33:16Z bigos joined #lisp 2018-01-19T19:33:46Z red-dot joined #lisp 2018-01-19T19:34:55Z fikka quit (Ping timeout: 248 seconds) 2018-01-19T19:37:02Z Achylles joined #lisp 2018-01-19T19:38:07Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-19T19:39:57Z ebzzry quit (Ping timeout: 264 seconds) 2018-01-19T19:40:02Z random-nick joined #lisp 2018-01-19T19:41:25Z nullman joined #lisp 2018-01-19T19:41:43Z AeroNotix: jasom: next is kind of like applying the emacs philosphy to your browser 2018-01-19T19:41:51Z AeroNotix: I tried to do it with lispkit but life got in the way 2018-01-19T19:46:58Z jasom: AeroNotix: right, and I use emacs soley as a platform for running slime 2018-01-19T19:47:05Z jasom: so I'm not the target audience 2018-01-19T19:47:35Z AeroNotix: yeah, that's cool 2018-01-19T19:47:43Z mishoo quit (Ping timeout: 248 seconds) 2018-01-19T19:47:54Z AeroNotix: I personally am not happy with how browsers currently work and lispki/next scratch that itch 2018-01-19T19:48:31Z fikka joined #lisp 2018-01-19T19:52:03Z smasta quit (Read error: Connection reset by peer) 2018-01-19T19:52:04Z knicklux quit (Quit: Leaving) 2018-01-19T19:52:21Z smasta joined #lisp 2018-01-19T19:53:16Z alexmlw joined #lisp 2018-01-19T19:53:29Z borei quit (Remote host closed the connection) 2018-01-19T19:54:37Z alexmlw quit (Client Quit) 2018-01-19T19:57:09Z skali joined #lisp 2018-01-19T19:57:16Z skali quit (Client Quit) 2018-01-19T19:57:46Z smasta quit (Ping timeout: 268 seconds) 2018-01-19T20:01:45Z damke joined #lisp 2018-01-19T20:02:02Z mishoo joined #lisp 2018-01-19T20:02:16Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:03:26Z __main__ joined #lisp 2018-01-19T20:04:33Z damke__ quit (Ping timeout: 263 seconds) 2018-01-19T20:05:49Z ckonstanski joined #lisp 2018-01-19T20:19:00Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-01-19T20:20:23Z _main_ joined #lisp 2018-01-19T20:22:23Z _main_ quit (Read error: Connection reset by peer) 2018-01-19T20:22:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-19T20:23:03Z __main__ quit (Ping timeout: 268 seconds) 2018-01-19T20:23:34Z asarch joined #lisp 2018-01-19T20:23:45Z cgay quit (Read error: Connection reset by peer) 2018-01-19T20:25:22Z __main__ joined #lisp 2018-01-19T20:25:52Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:27:14Z foom quit (Ping timeout: 276 seconds) 2018-01-19T20:27:26Z __main__ joined #lisp 2018-01-19T20:28:55Z foom joined #lisp 2018-01-19T20:30:19Z zacts quit (Quit: WeeChat 1.9.1) 2018-01-19T20:30:48Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:31:25Z vap1 joined #lisp 2018-01-19T20:32:04Z eudoxia quit (Remote host closed the connection) 2018-01-19T20:32:20Z vaporatorius joined #lisp 2018-01-19T20:32:51Z fikka joined #lisp 2018-01-19T20:33:49Z zacts joined #lisp 2018-01-19T20:34:12Z smasta joined #lisp 2018-01-19T20:34:28Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T20:35:05Z red-dot joined #lisp 2018-01-19T20:36:19Z __main__ joined #lisp 2018-01-19T20:37:01Z froggey quit (Remote host closed the connection) 2018-01-19T20:37:24Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:38:54Z razzy` joined #lisp 2018-01-19T20:40:13Z froggey joined #lisp 2018-01-19T20:40:27Z __main__ joined #lisp 2018-01-19T20:42:34Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:43:17Z python476 quit (Read error: Connection reset by peer) 2018-01-19T20:43:47Z jmercouris joined #lisp 2018-01-19T20:44:28Z __main__ joined #lisp 2018-01-19T20:44:51Z smurfrobot quit (Remote host closed the connection) 2018-01-19T20:46:21Z scymtym_ quit (Ping timeout: 265 seconds) 2018-01-19T20:46:36Z smurfrobot joined #lisp 2018-01-19T20:49:02Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-19T20:50:57Z rixard joined #lisp 2018-01-19T20:52:15Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:52:38Z Devon quit (Ping timeout: 265 seconds) 2018-01-19T20:52:41Z ericmathison quit (Remote host closed the connection) 2018-01-19T20:53:20Z ryanbw quit (Ping timeout: 248 seconds) 2018-01-19T20:53:27Z __main__ joined #lisp 2018-01-19T20:53:54Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:54:20Z ericmathison joined #lisp 2018-01-19T20:55:07Z rixard quit (Client Quit) 2018-01-19T20:55:30Z __main__ joined #lisp 2018-01-19T20:55:34Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T20:57:22Z __main__ joined #lisp 2018-01-19T20:58:16Z eschatologist quit (Read error: Connection reset by peer) 2018-01-19T20:58:25Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T20:58:26Z heurist`_` quit (Ping timeout: 265 seconds) 2018-01-19T20:58:59Z hexfive joined #lisp 2018-01-19T21:00:11Z eschatologist joined #lisp 2018-01-19T21:00:40Z Karl_Dscc quit (Remote host closed the connection) 2018-01-19T21:01:24Z cyberlard joined #lisp 2018-01-19T21:02:35Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T21:02:36Z smurfrobot quit (Remote host closed the connection) 2018-01-19T21:03:04Z mitc0185_ quit (Remote host closed the connection) 2018-01-19T21:03:11Z smurfrobot joined #lisp 2018-01-19T21:03:20Z mitc0185 joined #lisp 2018-01-19T21:04:25Z __main__ joined #lisp 2018-01-19T21:05:27Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T21:06:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-19T21:07:23Z __main__ joined #lisp 2018-01-19T21:07:43Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-19T21:08:05Z emaczen joined #lisp 2018-01-19T21:08:35Z emaczen: How much of a speedup can I expect with SBCL if I declaim and declare my functions/methods 2018-01-19T21:08:45Z emaczen: Most of this code uses CLOS 2018-01-19T21:08:45Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T21:09:32Z jasom: emaczen: generic function calls are not significantly affected by declarations in sbcl, since you are free to add methods at any time 2018-01-19T21:10:27Z __main__ joined #lisp 2018-01-19T21:10:27Z rumbler3_ joined #lisp 2018-01-19T21:10:50Z fdund joined #lisp 2018-01-19T21:11:14Z emaczen: I understand that, but I'm pretty content with the relationships amongst my classes -- I would have to rewrite it all without CLOS to get it to be fast?? 2018-01-19T21:11:36Z Bike: there's more than one way to make it fast 2018-01-19T21:12:02Z emaczen: Bike: suggestions? 2018-01-19T21:12:04Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T21:12:42Z emaczen: Bike: generically though? 2018-01-19T21:12:56Z emaczen: I've already swapped out some data structures etc... 2018-01-19T21:14:00Z Bike: you want general advice for optimizing unknown programs? profile and see if you can think of a smarter algorithm for the slow parts 2018-01-19T21:14:36Z jasom: a non-generic inlined function with an etypecase that calls the actual implementations is *significantly* faster on sbcl than GF dispatch, so if you have small functions, you will be held back by GF dispatch (but as Bike says, profile first, then optimize) 2018-01-19T21:14:59Z warweasle quit (Quit: later) 2018-01-19T21:15:28Z rumbler3_ quit (Ping timeout: 268 seconds) 2018-01-19T21:15:30Z vlatkoB_ quit (Remote host closed the connection) 2018-01-19T21:17:16Z __main__ joined #lisp 2018-01-19T21:17:17Z emaczen: do you recommend slime-sprof? 2018-01-19T21:17:33Z jasom: yes 2018-01-19T21:17:41Z jasom: er I use sb-sprof, not sure what slime-sprof is 2018-01-19T21:17:46Z fikka joined #lisp 2018-01-19T21:17:47Z jasom: (I assume it's a slime frontend for it) 2018-01-19T21:18:41Z __main__ quit (Read error: Connection reset by peer) 2018-01-19T21:19:22Z heurist`_` joined #lisp 2018-01-19T21:20:01Z quazimodo joined #lisp 2018-01-19T21:20:27Z shka quit (Ping timeout: 240 seconds) 2018-01-19T21:20:36Z asarch quit (Remote host closed the connection) 2018-01-19T21:21:00Z Shinmera: It is 2018-01-19T21:21:01Z smasta quit (Ping timeout: 268 seconds) 2018-01-19T21:21:05Z Shinmera: it makes the output actually readable 2018-01-19T21:21:08Z Shinmera: Quit nice, in fact 2018-01-19T21:21:20Z __main__ joined #lisp 2018-01-19T21:21:28Z emaczen: Shinmera: I'm lookinat at slime-sprof-report 2018-01-19T21:21:29Z pjb: Convert your classes to fixnum, work only with fixnums. 2018-01-19T21:22:03Z emaczen: What do self% cumul% and total% mean exactly? 2018-01-19T21:22:10Z emaczen: Is the ranking reliable? 2018-01-19T21:22:47Z emaczen: pjb: are you serious? 2018-01-19T21:22:59Z jasom: self% what fraction of samples were in this one; cumul% what fraction of samples were in this one, or ones above it; total% what fraction of samples were either in this one, or this one was on the call-stack 2018-01-19T21:23:00Z smurfrobot joined #lisp 2018-01-19T21:23:57Z heurist`_` quit (Ping timeout: 240 seconds) 2018-01-19T21:26:25Z EvW joined #lisp 2018-01-19T21:26:34Z pjb: emaczen: It's just to show you how silly the quest for speed is. 2018-01-19T21:26:46Z pjb: You can do it faster, do it in assembly (fixnums). 2018-01-19T21:26:50Z pjb: Then what? 2018-01-19T21:27:11Z pjb: full of bugs, unmaintainable, 2018-01-19T21:27:18Z pjb: not better than C. 2018-01-19T21:27:27Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-19T21:28:00Z rjmacready joined #lisp 2018-01-19T21:28:27Z emaczen: Is there an easy replace of remove-if-not? it is highly ranked 2018-01-19T21:28:29Z heurist`_` joined #lisp 2018-01-19T21:28:38Z Bike: remove-if-not is kind of inherently expensive. 2018-01-19T21:29:00Z Bike: this is why i said, find better algorithms, rather than doing stuff like declaring types 2018-01-19T21:29:50Z pjb: Sure: (remove-if (complement f) …) = (remove-if-not f …) 2018-01-19T21:30:25Z natsu joined #lisp 2018-01-19T21:30:43Z Tobbi joined #lisp 2018-01-19T21:30:46Z pjb: Fastest way to remove elements from a list, is not to add them there in the first place. 2018-01-19T21:31:15Z Bike: pjb, could you please just say what you mean outright rather than waiting for a confused "are you serious" so you can pontificate 2018-01-19T21:31:36Z ``Erik joined #lisp 2018-01-19T21:31:36Z flip214_ quit (Quit: leaving) 2018-01-19T21:31:40Z pjb: Use cache. 2018-01-19T21:32:08Z knobo1 joined #lisp 2018-01-19T21:32:09Z flip214 joined #lisp 2018-01-19T21:32:09Z flip214 quit (Changing host) 2018-01-19T21:32:09Z flip214 joined #lisp 2018-01-19T21:32:35Z vap1 quit (Quit: Leaving) 2018-01-19T21:32:57Z wigust quit (Ping timeout: 240 seconds) 2018-01-19T21:33:19Z heurist`_` quit (Ping timeout: 248 seconds) 2018-01-19T21:33:51Z varjag quit (Ping timeout: 248 seconds) 2018-01-19T21:34:01Z pjb: Don't you know that you can trade space for time and vice versa? 2018-01-19T21:34:47Z flip214: I'd like to trade a few m³ of empty air against 3 years, please. 2018-01-19T21:34:59Z rjmacready: :D 2018-01-19T21:35:39Z omilu quit (Ping timeout: 265 seconds) 2018-01-19T21:35:48Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T21:36:22Z red-dot joined #lisp 2018-01-19T21:36:23Z emaczen: pjb: I've already done some preliminary hashing 2018-01-19T21:36:38Z scymtym joined #lisp 2018-01-19T21:36:46Z aeth: emaczen: At least ime, it's rarely worth doing type declarations if it's not a sequence or a number. 2018-01-19T21:37:30Z aeth: Sequences can make a huge difference, especially if the type information you give is a known length rather than * length 2018-01-19T21:37:30Z pjb: flip214: I'm afraid that given light speed is so high, you will need much more space. 2018-01-19T21:37:42Z hexfive quit (Remote host closed the connection) 2018-01-19T21:38:00Z aeth: And numbers remove the generic arithmetic if you define the right number subtypes 2018-01-19T21:38:07Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-19T21:38:27Z aeth: (This is SBCL, other implementations might be further behind, but they'll probably catch up eventually.) 2018-01-19T21:39:18Z hexfive joined #lisp 2018-01-19T21:39:32Z aeth: But that's because sequences and arithmetic functions are a special kind of non-CLOS generic function, where type information is very useful. 2018-01-19T21:40:33Z pjb: flip214: basically, you would have to duplicate the solar system, move the duplicate 3 years behind (about 25,000 light years behind). Then when you want to go back in time, you would have to travel those 25,000 light years very fast… 2018-01-19T21:41:07Z flip214: pjb: as light has nearly no width, I can fold it up into a hilbert-curve, so I can easily store 3 light years in a container of, say, 2x2x2 m³. 2018-01-19T21:41:26Z jasom: light has significant width 2018-01-19T21:41:52Z pjb: Sorry, I meant 75,000 light years above. It's incredible, but we're travelling at a speed of 24,194.16 light years each year! 2018-01-19T21:42:52Z random-nick quit (Remote host closed the connection) 2018-01-19T21:42:53Z flip214: jasom: http://www.wolframalpha.com/input/?i=width+of+light says 17.51 pico meters 2018-01-19T21:43:15Z flip214: pjb: we are? 2018-01-19T21:43:21Z flip214: in which direction? 2018-01-19T21:43:31Z pjb: Coarsely, toward north. 2018-01-19T21:43:36Z jasom: diffraction effects happen at multiples of the wavelength, and the wavelength of even visible light is on the order of a micron 2018-01-19T21:44:52Z pjb: Now, it's possible that the orbit of the planets doesn't change plane when we circle around the galaxy center, so the direction depends on the time of the galactic year. I would assume. 2018-01-19T21:45:00Z jasom: flip214: did you read what that calculation does? It calculates the width of a fluid flowing at a hight of 1 inch, a flow-rate of 8L/min and linear velocity of c 2018-01-19T21:45:40Z pjb: It's about 1/1300 c. 2018-01-19T21:45:51Z flip214: jasom: yes, I did. but with all the details it's not that much fun any more. 2018-01-19T21:45:55Z jasom: change it to 8e100 L/min and you get a width of 1.751e86 km 2018-01-19T21:46:14Z jasom: so your light can't even fit in a 2x2x2 meter box 2018-01-19T21:46:17Z kami quit (Ping timeout: 265 seconds) 2018-01-19T21:46:35Z flip214: pjb: 1/1300 c I can believe, but what about your 24e3 c above? 2018-01-19T21:46:38Z pjb: but light can be superposed. 2018-01-19T21:46:42Z aeth: emaczen: I think the main thing you get from type declarations for most types is type checking at the beginning of the function (in SBCL, actually before the beginning), instead of when you call a function that expects a different type at some point in the middle of the function, e.g. this will prevent "Hello, world!" from showing up: (defun foobar (x) (declare (list x)) (format t "Hello, world!~%") (car x)) (foobar 1) 2018-01-19T21:46:55Z pjb: flip214: light.year is not a speed, it's a distance! 2018-01-19T21:47:15Z pjb: light.year/year is a speed. It's 230e3 m/s 2018-01-19T21:47:17Z flip214: pjb: I know that. but you wrote "per year", so that's a velocity again. 2018-01-19T21:47:44Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-19T21:47:47Z aeth: (In SBCL the difference with a check-type at the top of a function is that check-type is slightly less efficient, but lets you recover by providing a valid value at runtime) 2018-01-19T21:47:56Z flip214: c * 1y / 1y = c, in my book. 2018-01-19T21:48:24Z pjb: yes, and c = 299792458 m/s 2018-01-19T21:48:28Z flip214: and _my_ c is 299792458 m/s, not your lousy 230e3 2018-01-19T21:48:53Z dyelar quit (Quit: Leaving.) 2018-01-19T21:48:57Z pjb: 24,194.16 light.year/year = 230e3 m/s 2018-01-19T21:49:39Z flip214: pjb: http://www.wolframalpha.com/input/?i=light+*+year+%2F+year 2018-01-19T21:49:44Z flip214: 2.998×10^8 m/s (meters per second) 2018-01-19T21:49:53Z flip214: not sure how you get to 230e3 m/s 2018-01-19T21:50:00Z fikka quit (Ping timeout: 268 seconds) 2018-01-19T21:50:07Z jasom: pjb: TIL we are all tachyons 2018-01-19T21:50:08Z flip214: is that in a neutronium star or something? 2018-01-19T21:50:19Z pjb: 230e3 m/s is the speed of the Sun around the galaxy. Don't you know where you live? 2018-01-19T21:50:45Z flip214: but what's that got to do with "light"? 2018-01-19T21:50:50Z aeth: emaczen: If you inline things all of the way, with an eventual etypecase or typecase, you will probably see SBCL remove the branches that won't happen (i.e. the other types) automatically. An alternative would be https://github.com/markcox80/specialization-store/ for inline type-based dispatch or https://github.com/guicho271828/inlined-generic-function/ for inline CLOS dispatch 2018-01-19T21:51:30Z pilfink joined #lisp 2018-01-19T21:51:48Z pjb: flip214: there's no sense in giving astronomical distances in other units than light.year. Expressing speeds in light.year/s is also way more meaningful than keeping m/s. 2018-01-19T21:53:07Z pjb: Actually, even short distances are better expressed relative to light. Eg. your leg is about 3 ns.light long. Way more informative than saying that it's about one yard long. 2018-01-19T21:53:33Z flip214: pjb: but using the galaxy as zero point is very galacti-centric again. same mistake as, eg., Kopernikus. 2018-01-19T21:53:59Z pjb: 6 ns.light from your feet to your brains means that you cannot feel anything fromr your feet but 6 ns too late. 2018-01-19T21:54:21Z pjb: flip214: as long as we don't have the mean to travel faster, it'll do. 2018-01-19T21:54:23Z flip214: pjb: well, within the solar system AE is a nice measure, too. in my youth the parsec was en vogue, but that's changed to light years, yeah. 2018-01-19T21:54:47Z pjb: Nope. AE is nice when you can't move. light.year is what you need when you travel. 2018-01-19T21:54:52Z flip214: pjb: don't believe in precognition, or tachyons, or hyperspace? 2018-01-19T21:54:55Z pjb: And we do, eg. Voyager. 2018-01-19T21:55:01Z flip214: V'ger 2018-01-19T21:55:02Z natsu quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-19T21:55:15Z wigust joined #lisp 2018-01-19T21:55:19Z smasta joined #lisp 2018-01-19T21:55:47Z flip214: pjb: well, you keep your initial system, and I'll use mine. currently I'm at rest, it's nearly 11pm ;) 2018-01-19T21:55:52Z flip214: *inertial 2018-01-19T21:55:58Z pjb: Notice also that when parsecs are used, they mostly don't know the radial distances and speed in general. It's a nice unit, but so limited… 2018-01-19T21:56:50Z pjb: If you want to take it into account, the speed of the Milky Way relative to the Local Group is about 600 km/s. 2018-01-19T21:57:11Z flip214: what? 1 parsec is defined via the AE, no need for other radial distances or speeds. 1 parsec = 3.262 ly 2018-01-19T21:57:32Z pjb: about 63,000 light.year/year 2018-01-19T21:57:39Z Shinmera: >>#physics or #lispcafe, thanks 2018-01-19T21:57:46Z flip214: Shinmera: sorry. 2018-01-19T21:57:51Z flip214: good night, everyone! 2018-01-19T21:57:57Z pjb: flip214: the parsec comes from the visual angle! 2018-01-19T21:58:43Z fikka joined #lisp 2018-01-19T21:59:04Z jasom just realized this is #lisp and not #lispcafe 2018-01-19T21:59:05Z flip214: pjb: yeah, exactly. but the triangle is defined via the angle 1" and the opposite length of 1 AE. 2018-01-19T21:59:15Z flip214: no speeds involved. 2018-01-19T21:59:15Z aeth: hopefully emaczen's client has name highlighting 2018-01-19T21:59:30Z flip214: well, I'll stop now anyway. 2018-01-19T21:59:50Z flip214: but I'll read the scrollback, perhaps there's more to read.... 2018-01-19T21:59:50Z pjb: Anyways, you can use space to store cached values. 2018-01-19T22:00:17Z pjb: For example, sending a modulated laser beam thru space to a reflector. So when you need an old value, you can read it back frmo the beam. 2018-01-19T22:00:18Z smasta quit (Ping timeout: 265 seconds) 2018-01-19T22:00:22Z pjb: Or if you have RAM, use RAM. 2018-01-19T22:00:22Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T22:00:30Z pjb: Basic optimization techniques… 2018-01-19T22:00:40Z aeth: The #1 performance improvement I can normally get is by preallocating before loops rather than heavily consing during the loops. 2018-01-19T22:00:56Z rjmacready: is there any common lisp implemented in a common lisp based on the special forms alone? http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm 2018-01-19T22:01:02Z aeth: e.g. allocating 4 vectors that are constantly overwritten each iteration rather than allocating 4 new vectors each iteration 2018-01-19T22:01:22Z jasom: rjmacready: that's not possible; how do you implement "print" only in terms of special forms? 2018-01-19T22:01:33Z pjb: rjmacready: not really. First special operators are not all the primitives of a CL system. Some functions are primitive too! 2018-01-19T22:01:37Z jasom: rjmacready: or "open" for that matter 2018-01-19T22:01:39Z hexfive joined #lisp 2018-01-19T22:01:41Z pjb: rjmacready: sicl uses the whole CL to implement CL. 2018-01-19T22:02:02Z jasom: sbcl implements everything but the runtime in CL 2018-01-19T22:02:07Z Achylles quit (Ping timeout: 248 seconds) 2018-01-19T22:02:08Z pjb: rjmacready: otherwise you may have a look at cl-stepper, which redefines special operators as macros to implement a stepper. 2018-01-19T22:02:28Z rjmacready: ah i see, fair enough :) 2018-01-19T22:02:31Z rjmacready: thanks for the answers 2018-01-19T22:02:33Z jasom: "Sanely-Bootstrappable Common Lisp" 2018-01-19T22:02:51Z pjb: Sanely Initialized Common Lisp = SICL ;-) 2018-01-19T22:03:01Z pjb: or Sanely Implemented Common Lisp = SICL. 2018-01-19T22:03:04Z heurist`_` joined #lisp 2018-01-19T22:03:18Z rjmacready: jasom: yeah i was looking at that and wondered there was some special form only based implementation 2018-01-19T22:03:31Z hexfive quit (Remote host closed the connection) 2018-01-19T22:03:39Z rjmacready: SICL = SICL isnt common lisp :v (sorry) 2018-01-19T22:03:49Z pjb: not yet. 2018-01-19T22:04:02Z rjmacready: SICLY then? :v 2018-01-19T22:04:19Z aeth: rjmacready: You can probably implement CL without CLOS and without most of loop. Some of loop really is just too convenient for macros, especially collect but sometimes also append. (Most of loop has alternatives, those don't really.) 2018-01-19T22:04:29Z aeth: But if you avoid CLOS, you'll find a lot of things pretty hard to do, too. 2018-01-19T22:04:36Z aeth: Structs don't get you all of the way there. 2018-01-19T22:04:56Z hexfive joined #lisp 2018-01-19T22:04:59Z jasom: implementing collect and append is fairly easy, you just need to keep track of your tail pointer 2018-01-19T22:05:04Z aeth: So I just picked two of the easiest complicated parts of the language to remove, and then said you can't remove them. :-p 2018-01-19T22:05:27Z rjmacready: i see 2018-01-19T22:05:42Z jasom: Real Programmers(tm) use tagbody 2018-01-19T22:06:25Z rjmacready: :) 2018-01-19T22:06:55Z emaczen: I just shaved 10 seconds by replacing remove-if-not with a loop... 2018-01-19T22:06:59Z aeth: jasom: I guess my point is that most of the common useful parts of loop have direct equivalents in dofoo or higher order functions, but not collect and append, you'd essentially have to write something lower-level in do 2018-01-19T22:07:09Z rjmacready: had this silly idea of plugging an empty executable as inferior lisp to slime and checking what would arrive there 2018-01-19T22:07:20Z emaczen: I really do need to go back and look through my code, usually I am not too concerned about speed 2018-01-19T22:07:21Z pjb: Also, the usefulness of most of special operators to implement a language is rather dubious. eg. THE is useless. 2018-01-19T22:07:44Z aeth: the is the most useful! 2018-01-19T22:07:57Z heurist`_` quit (Ping timeout: 240 seconds) 2018-01-19T22:08:13Z Bike: there's also a question of how you're like, implementing this. sbcl and sicl and stuff work on a principle of having an existing lisp just dump compiled files, so it's not like you're bootstrapping up from some limited set of operators 2018-01-19T22:08:23Z Bike: the runtime just needs some stuff like being able to call compiled functions 2018-01-19T22:08:27Z nullman quit (Ping timeout: 240 seconds) 2018-01-19T22:08:32Z pjb: It can be implemented conformingly as (defmacro the (type expression) (declare (ignore type)) expression) 2018-01-19T22:08:39Z aeth: pjb: Determine the return type of a function in a compilation unit, and be as specific as possible. Wrap calls to it within that compilation unit with a the (assuming sbcl semantics, which type-checks and uses truly-the for real assumptions) 2018-01-19T22:08:59Z aeth: Very useful in compilation 2018-01-19T22:09:06Z aeth: I'm not sure if SBCL does this or does something that's logically equivalent to this 2018-01-19T22:09:25Z heurist`_` joined #lisp 2018-01-19T22:09:31Z nullman joined #lisp 2018-01-19T22:10:17Z shifty quit (Ping timeout: 256 seconds) 2018-01-19T22:10:31Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T22:11:36Z aeth: (I actually suspect SBCL binaries could be made much more efficient if everything's moved into one compilation unit as the final compilation process, to keep literally all of the program's type information and really put all that inference to work) 2018-01-19T22:11:49Z aeth: (You'd probably be able to remove most manual type declarations, too.) 2018-01-19T22:12:03Z hexfive joined #lisp 2018-01-19T22:12:19Z aeth: (I mean, Lisp app binaries using SBCL, not binaries of SBCL) 2018-01-19T22:14:34Z knobo2 joined #lisp 2018-01-19T22:15:54Z heurist`_` quit (Ping timeout: 268 seconds) 2018-01-19T22:16:18Z aeth: Bike: I suspect the main use for a very restricted Lisp to implement Lisp would be to build something that's useful for building a richer, probably better written Lisp. 2018-01-19T22:17:27Z knobo1 quit (Ping timeout: 240 seconds) 2018-01-19T22:19:29Z Bike: but that's a weird way to write things 2018-01-19T22:19:44Z Bike: you can have your better lisp, and use it to write a lisp, and then bam 2018-01-19T22:20:11Z aeth: Can you use SBCL to cross-compile SBCL to other architectures? e.g. new architectures? 2018-01-19T22:20:17Z Bike: pretty sure, yeah 2018-01-19T22:20:25Z Bike: the runtime you might have to translate 2018-01-19T22:20:40Z aeth: If that's the case, then there's not much of a point to think about bootstrapping. 2018-01-19T22:21:01Z pjb: The only usefulness in a restricted lisp, would be either you time travel to 1958, or you get lost light years from Earth without a CL implementation. 2018-01-19T22:21:40Z aeth: I *guess* a restricted Lisp might be more secure, but then you'd probably just want to write a VM and use bytecode, not a subset of Lisp. 2018-01-19T22:21:41Z pjb: In all other cases, you can get access to a CL implementation faster, and use it to implement faster and easier your new CL. 2018-01-19T22:21:49Z pjb: This is what beach does with SICL. 2018-01-19T22:22:07Z pjb: Be smart, don't write programs with your hands tied in the back. 2018-01-19T22:24:41Z damke_ joined #lisp 2018-01-19T22:25:23Z mishoo quit (Ping timeout: 256 seconds) 2018-01-19T22:25:55Z pierpa joined #lisp 2018-01-19T22:26:18Z damke__ joined #lisp 2018-01-19T22:27:20Z heurist`_` joined #lisp 2018-01-19T22:27:21Z damke quit (Ping timeout: 263 seconds) 2018-01-19T22:28:46Z aeth: Was CL ever implemented from scratch or were the early CLs built from pre-CL Lisps? 2018-01-19T22:29:00Z aeth: I've skimmed through the Lisp Machine Manuals and they're very similar to the HyperSpec 2018-01-19T22:29:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-19T22:31:02Z Shinmera: I think ECL's history (stemming from KCL) started from scratch. 2018-01-19T22:31:19Z aeth: Here are the manuals, btw: http://bitsavers.trailing-edge.com/pdf/mit/cadr/ 2018-01-19T22:31:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-19T22:31:41Z Bike: cmucl was built from, what, spice? which was either pre-CL or derived from a pre-CL 2018-01-19T22:31:54Z Shinmera: https://en.wikipedia.org/wiki/Kyoto_Common_Lisp "KCL is notable in that it was implemented from scratch, outside of the standard committee, solely on the basis of the specification. It was one of the first Common Lisp implementations ever, and exposed a number of holes and mistakes in the specification that had gone unnoticed." 2018-01-19T22:31:57Z Bike: clisp might have been from scratch 2018-01-19T22:33:18Z aeth: Two things I wouldn't want to implement from scratch are loop and CLOS. 2018-01-19T22:33:18Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T22:33:43Z Bike: clos isn't honestly that bad 2018-01-19T22:34:00Z aeth: The performance is what I'd worry about. 2018-01-19T22:34:13Z Bike: oh, you want it to be _fast_? now that's just picky 2018-01-19T22:34:24Z hexfive joined #lisp 2018-01-19T22:34:26Z fikka joined #lisp 2018-01-19T22:34:33Z Shinmera: I wouldn't want to implement anything to be truly fast :^) 2018-01-19T22:34:48Z Bike: well, beach's method has proven to be pretty performant and is conceptually pretty simple, so you could do that. 2018-01-19T22:35:01Z Bike: i've looked at PCL a lot and still have no idea what's going on there, though 2018-01-19T22:35:04Z aeth: Bike: Can beach's method be ported to other implementations, e.g. SBCL? 2018-01-19T22:35:10Z aeth: PCL is apparently garbage 2018-01-19T22:35:13Z Shinmera: aeth: scymtym already did some work to do that 2018-01-19T22:35:21Z Bike: PCL is what SBCL has, i don't think it's garbage 2018-01-19T22:35:26Z aeth: Well, in performance. 2018-01-19T22:35:40Z Bike: i don't think it's garbage in performance, sbcl does dispatch pretty quick 2018-01-19T22:35:59Z hexfive quit (Remote host closed the connection) 2018-01-19T22:36:05Z aeth: SBCL's CLOS is apparently slower than other CLOSes, though 2018-01-19T22:36:11Z aeth: I haven't personally benchmarked it, though 2018-01-19T22:36:13Z Bike: is it? 2018-01-19T22:36:33Z White_Flame: the entire "CLOS" or just multimethod dispatch in particular? 2018-01-19T22:36:38Z aeth: Also, SBCL's CLOS is missing some useful features 2018-01-19T22:36:42Z hexfive joined #lisp 2018-01-19T22:36:44Z aeth: CCL's CLOS handles :type 2018-01-19T22:36:46Z Bike: generic function dispatch is what we mean, yes 2018-01-19T22:37:05Z Xal quit (Ping timeout: 240 seconds) 2018-01-19T22:37:06Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T22:37:07Z varjag joined #lisp 2018-01-19T22:37:19Z heurist`_` quit (Ping timeout: 248 seconds) 2018-01-19T22:37:21Z aeth: White_Flame: I'd assume that the main thing that would matter for the runtime performance of CLOS is dispatch 2018-01-19T22:37:49Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T22:38:00Z red-dot joined #lisp 2018-01-19T22:38:13Z Bike: the rest of clos is basically just data structures, and some functions you ahve to call sometimes 2018-01-19T22:38:29Z EvW quit (Ping timeout: 265 seconds) 2018-01-19T22:38:59Z hexfive joined #lisp 2018-01-19T22:39:02Z White_Flame: well, there's also instantiation & registration, updating classes, etc, that can have their own performance impact 2018-01-19T22:39:29Z aeth: If CLOS generics were as performant when the class is known as the generic functions for arithmetics and sequences are when the types are known, that would completely change how people write fast CL. Although type-dispatch would still be necessary for numbers and sequences a lot of the time. 2018-01-19T22:39:34Z aeth: I'm not sure if that's possible, though. 2018-01-19T22:39:44Z Xal joined #lisp 2018-01-19T22:39:45Z White_Flame: the real big beneficial change would be true JIT 2018-01-19T22:39:56Z White_Flame: fast pathing the common outcomes 2018-01-19T22:40:07Z aeth: Would it be possible to just JIT the dispatch in an otherwise AOT implementation? JIT has big drawbacks, too. 2018-01-19T22:40:22Z White_Flame: that's what some implementations do, but not inline 2018-01-19T22:40:26Z sjl quit (Quit: WeeChat 1.9) 2018-01-19T22:40:40Z White_Flame: they call a dispatch function, but the dispatch function can be re-compiled 2018-01-19T22:40:47Z White_Flame: using normal means 2018-01-19T22:41:21Z heurist`_` joined #lisp 2018-01-19T22:41:24Z White_Flame: and so because it's a single centralized dispatch function, it can't take advantage of call-site knowledge 2018-01-19T22:41:34Z sjl joined #lisp 2018-01-19T22:42:05Z aeth: I wonder how hard it would be to unify type dispatch (e.g. specialization-store) and class dispatch. If that's even possible. 2018-01-19T22:42:47Z aeth: What I like about what specialization-store does with types is... it produces the exact same thing that I'd produce by hand. Except automatically. 2018-01-19T22:42:47Z Bike: they're the same concept, it's just that clos allows things to be redefined, inhibiting static analysis 2018-01-19T22:43:01Z LiamH quit (Quit: Leaving.) 2018-01-19T22:43:31Z aeth: The best high-performance abstractions produce the same things you'd do manually. 2018-01-19T22:43:53Z White_Flame: yeah, it'd be nice if you could say "bake these things in" at some point, and "unbake back to dynamic, I want to change things" 2018-01-19T22:44:24Z Shinmera: Even just being able to bake irreversibly would be a win for deployments 2018-01-19T22:44:28Z Bike: it would, but unbaking would require recompiling all call sites in general, which is kind of annoying 2018-01-19T22:44:41Z White_Flame: Shinmera: yep 2018-01-19T22:44:45Z Bike: baking itself shouldn't be that hard 2018-01-19T22:44:48Z aeth: White_Flame: There are, I think, essentially three levels of control. Inline, inline function call (remove the generic dispatch, keep the function), and runtime dispatch. Specialization-store handles all three of these for type-based dispatch. 2018-01-19T22:44:54Z Bike: i should probably do that, actually, i k now all the bullshit in clos well enough by now 2018-01-19T22:45:11Z Shinmera: Bike: I smell another paper :) 2018-01-19T22:45:55Z aeth: Although I'm not sure if specialization-store keeps the return type information when there's an inline function call, which would be useful. That information is lost in SBCL if it's outside of the compilation unit (normally the file) 2018-01-19T22:45:59Z Bike: there might be combinatorial problems, hm 2018-01-19T22:46:05Z hexfive quit (Remote host closed the connection) 2018-01-19T22:46:14Z Bike: i will consider this later, i think 2018-01-19T22:47:19Z hexfive joined #lisp 2018-01-19T22:49:29Z smasta joined #lisp 2018-01-19T22:51:37Z aeth: It looks like speicalization-store does keep the return type information when doing a named specialization. (defspecialization (foo :name %foo/single-float) ((x single-float) (y single-float)) single-float (+ x y)) (defun foobar () (+ 1f0 (foo 2f0 3f0))) ; does not have a generic + in SBCL 2018-01-19T22:51:47Z aeth: *specialization-store 2018-01-19T22:52:04Z aeth: pillton really thought of everything. 2018-01-19T22:52:32Z aeth: I'd love to see something just as mature for optimizing CLOS, especially if it was compatible. 2018-01-19T22:54:10Z smasta quit (Ping timeout: 256 seconds) 2018-01-19T22:55:27Z aeth: One thing that I'm considering doing soon is using structs and CLOS to define custom data structures. In particular, I think typed lists expressed as structs would be very useful, especially for what I'm doing. At the moment, if something's best expressed as a linked list, I have to type check multiple times where a typed data structure would just type check the elements once, when making the list, and then I'd just type check the list itse 2018-01-19T22:55:49Z aeth: the list itself and assume the types of the elements. 2018-01-19T22:56:53Z aeth: So what I'm considering writing is: a cons cell represented as a struct with a car and a cdr, where the car is some type and the cdr is either null or another of the new type of cons cell 2018-01-19T22:57:25Z aeth: This is not entirely portable, but where it isn't portable I can add manual type-checking with #+foo for the implementations that don't check on e.g. creation or access 2018-01-19T22:58:04Z Bike quit (Ping timeout: 260 seconds) 2018-01-19T23:01:27Z damke joined #lisp 2018-01-19T23:03:57Z damke__ quit (Ping timeout: 264 seconds) 2018-01-19T23:06:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-19T23:08:36Z fikka joined #lisp 2018-01-19T23:10:27Z scymtym: pkhuong made (in 2007 no less) a prototype for "sealed" generic functions which would inline dispatch and/or methods and derive call site-specific return types depending on availability of argument type information and declarations 2018-01-19T23:11:12Z rumbler31 joined #lisp 2018-01-19T23:11:27Z aeth: 2007? nice 2018-01-19T23:12:47Z damke_ joined #lisp 2018-01-19T23:13:19Z aeth: I'm only aware of https://github.com/markcox80/specialization-store/ for writing +-style and map-style type-generic functions and https://github.com/guicho271828/inlined-generic-function/ for inlining CLOS dispatch, although I haven't tried the latter, and wouldn't be able to use it in my MIT-licensed projects because it's LLGPL, which would complicate using my projects. 2018-01-19T23:13:46Z aeth: I'm sure there are other projects, but they never get mentioned here. 2018-01-19T23:14:00Z heurist`_` quit (Ping timeout: 256 seconds) 2018-01-19T23:15:57Z rumbler31 quit (Ping timeout: 264 seconds) 2018-01-19T23:15:57Z damke quit (Ping timeout: 264 seconds) 2018-01-19T23:18:17Z knobo2 quit (Ping timeout: 256 seconds) 2018-01-19T23:21:22Z hexfive quit (Read error: Connection reset by peer) 2018-01-19T23:22:29Z jasom: hmm, mop should give me enough information to automate what I currently do when GF is too high 2018-01-19T23:22:38Z hexfive joined #lisp 2018-01-19T23:22:38Z jasom: (just make a non-GF that is an etypecase) 2018-01-19T23:22:46Z bigos quit (Read error: Connection reset by peer) 2018-01-19T23:23:48Z smurfrobot joined #lisp 2018-01-19T23:27:58Z aeth: Hmm... How does CLOS handle a generic with two methods: parent-class child-class and child-class parent-class when called with child-class child-class? 2018-01-19T23:28:31Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-19T23:29:42Z aeth: Looks like it calls the child parent one, which makes sense. The most specific for the first argument. 2018-01-19T23:30:21Z heurist`_` joined #lisp 2018-01-19T23:30:26Z jasom: yup 2018-01-19T23:33:25Z jasom: clhs 7.6.6.2 2018-01-19T23:33:25Z specbot: Standard Method Combination: http://www.lispworks.com/reference/HyperSpec/Body/07_ffb.htm 2018-01-19T23:33:43Z hexfive quit (Remote host closed the connection) 2018-01-19T23:33:53Z aeth: Where do people tend to use methods in their code? I generally only use them when using someone's CLOS-based API that expects inheritance and methods. For my own code, things are usually very specific and functions make the most sense. 2018-01-19T23:34:04Z _death: you can also specify a different argument-precedence-order 2018-01-19T23:34:55Z Bike joined #lisp 2018-01-19T23:35:20Z hexfive joined #lisp 2018-01-19T23:35:21Z jasom: aeth: they are often used any time dispatching based on classes or symbols is wanted; also :around can be useful in some cases even when there is only a single class involved. 2018-01-19T23:35:35Z heurist`_` quit (Ping timeout: 260 seconds) 2018-01-19T23:35:49Z jasom: aeth: consider if you wanted something similar to print-object; generic functions are the most obvious solution 2018-01-19T23:36:46Z aeth: I normally use objects (CLOS and struct objects) just to store data to prevent things like e.g. a function call with 14 arguments (this has happened to me before) 2018-01-19T23:37:05Z jasom: LIL is an experiment in making containers where eql specializers are very important 2018-01-19T23:37:32Z aeth: I normally decide between CLOS and structs by using structs (or arrays!) for things that are simple, efficient, and typed and CLOS for the rest. 2018-01-19T23:37:38Z Bike: to "bake" a gf you might have to account for the possibility of new classes that inherit from multiple specializers. kind of a combinatorial explosion. however, the set of possible effective methods is probably quite limited in most cases 2018-01-19T23:37:38Z jasom: aeth: 1 is an object of class number... 2018-01-19T23:37:47Z jasom: "foo" is an object of class string 2018-01-19T23:37:49Z aeth: jasom: I mean, custom objects 2018-01-19T23:37:49Z heurist`_` joined #lisp 2018-01-19T23:38:08Z aeth: as in defclass or defstruct or some wrapper over make-array 2018-01-19T23:38:09Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-19T23:38:12Z Bike: the call history suddenly seems like the most genius part of fastgf 2018-01-19T23:38:59Z jasom: I use CLOS and structs all the time; I often don't want the fancy stuff that objects give me, and I can still specialize on the class of the struct 2018-01-19T23:39:15Z red-dot joined #lisp 2018-01-19T23:39:20Z jasom: should have read "CLOS and structs *together*" 2018-01-19T23:39:25Z aeth: yeah 2018-01-19T23:39:51Z aeth: A struct is great for something like a queue (which in turn is just a specialized array with a handful of extra things, thrown in a struct). 2018-01-19T23:40:00Z aeth: A CLOS object is great for something more complicated that holds that queue 2018-01-19T23:40:49Z EvW joined #lisp 2018-01-19T23:41:16Z Bike: you could say: "a standard-class" 2018-01-19T23:41:21Z jasom: a queue is a specilized list with a handful of extra things :P 2018-01-19T23:41:30Z aeth: Bike: yeah, that's the correct term, I'm just not sure if it would confuse people or not 2018-01-19T23:41:40Z jasom: non-system-class? 2018-01-19T23:42:01Z aeth: jasom: Well, you can implement a queue as a list or an array. Arrays seem to win for what I tend to do. 2018-01-19T23:42:21Z aeth: Since CL doesn't have typed lists built in, arrays often win for things where lists *should* win inutitively! 2018-01-19T23:42:27Z Bike: multiple inheritance, redefinition semantics, and slot-value/boundp/etc are the only differences between standard-class and structure-class, i think 2018-01-19T23:42:54Z jasom: Bike: also CLOS defines less, so if you didn't want some accessors predefined... 2018-01-19T23:43:18Z aeth: Bike: One thing I'd love to see is structures without any inheritance at all. I'm not sure if this can be added as an extension to the language. This would, afaik, be all that's necessary to support arrays-of-structs. 2018-01-19T23:43:19Z Bike: eh, that's nearly syntax 2018-01-19T23:43:36Z Bike: that is not all that would be necessary lol 2018-01-19T23:43:43Z aeth: What else is needed? 2018-01-19T23:43:44Z smasta joined #lisp 2018-01-19T23:44:01Z jasom: does :include enforce that the newly created class is a subtype of the included class? 2018-01-19T23:44:03Z Bike: a change to equality semantics and a lot of implementation upgrades 2018-01-19T23:44:08Z Bike: jasom: pretty sure 2018-01-19T23:44:13Z krasnal quit (Ping timeout: 265 seconds) 2018-01-19T23:44:32Z Bike: additionally, inheritance doesn't really kill arrays of structs, exactly 2018-01-19T23:44:32Z aeth: Bike: one thing I've found out about the Internet is that the best way to get the correct answer is to state the wrong answer and be corrected. :-p 2018-01-19T23:44:52Z Bike: in the same way ub8 is a subtype of ub16, but they can have distinct upgraded array types 2018-01-19T23:45:25Z jasom: "it becomes a subtype of the included structure." <-- good to know; the spec doesn't always do what I want, but does here. 2018-01-19T23:46:04Z aeth: Bike: what's wrong with the equality semantics? 2018-01-19T23:46:08Z jasom: so structs do have full-featured single inheritance 2018-01-19T23:46:40Z fdund quit (Ping timeout: 260 seconds) 2018-01-19T23:46:47Z jasom: equalp descends into structures but not classes 2018-01-19T23:46:53Z wxie joined #lisp 2018-01-19T23:46:54Z Bike: not that 2018-01-19T23:47:04Z Bike: aeth: you expect (progn (setf (aref array ...) x) (eq (aref array ...) x)) to be T 2018-01-19T23:47:18Z _death: equalp is just arbitrary and shouldn't affect decisions ;) 2018-01-19T23:47:29Z Bike: if you want to actually pack the structure into the array, you lose that 2018-01-19T23:48:25Z smasta quit (Ping timeout: 260 seconds) 2018-01-19T23:48:55Z jasom: An actually useful equal would be like equalp, but one uses eql to compare characters. Perhaps uses a GF for comparing other objects as well. 2018-01-19T23:49:54Z aeth: And now Lisp will get its === that so many languages wind up having :-p 2018-01-19T23:50:06Z fdund joined #lisp 2018-01-19T23:50:17Z aeth: bonus points if the improved equalp is called equal? 2018-01-19T23:50:34Z manualcrank joined #lisp 2018-01-19T23:50:42Z jasom: we can call it == it's not taken yet :) 2018-01-19T23:51:24Z _death: you can steal Baker's name and call it "egal" 2018-01-19T23:51:44Z openthesky joined #lisp 2018-01-19T23:52:09Z jasom: simila? 2018-01-19T23:53:01Z aeth: Someone should make a list of all of the extensions (current and not yet implemented) that modern CL needs to be maximally efficient. It would probably be most useful if they're listed as the portability libraries, like https://github.com/Bike/introspect-environment 2018-01-19T23:53:46Z aeth: just a simple table "portability library over extension" and "implementation" with "Yes"/"No"/"Partial"/"Unknown" as values in the cells 2018-01-19T23:54:07Z aeth: The #1 library on the list would probably be bordeaux-threads, actually 2018-01-19T23:54:31Z Bike: billing threads as an efficiency thing seems a little, inspired 2018-01-19T23:54:54Z aeth: well, it makes certain algorithms more efficient 2018-01-19T23:54:57Z Bike: introspect environment isn't either, it's just a bit helpful for some efficiency things 2018-01-19T23:55:34Z aeth: Bike: introspect-environment is the thing needed by some libraries that make things efficient, so it would go on the list rather than (or in addition to?) those libraries 2018-01-19T23:56:08Z Bike: i'm just saying i've seen more coherent theming at proms is all 2018-01-19T23:56:11Z aeth: (I suppose those libraries could go on the list too, with "Partial" if they have to work around the lack of introspect-environment) 2018-01-19T23:56:59Z nullniverse joined #lisp 2018-01-19T23:57:37Z aeth: Bike: well, it could just be language extensions in general 2018-01-19T23:58:16Z aeth: although thanks to macros and turing completeness, just about anything can be implemented in just about any CL, just not necessarily efficiently, afaik. 2018-01-19T23:58:22Z Bike: that's what CDRs are, it's just that nobody cares 2018-01-19T23:59:07Z aeth: Bike: I think listing portability libraries over language extensions that are actually in use is considerably more useful than proposing language extensions to implementations. 2018-01-20T00:00:09Z wxie quit (Quit: Bye.) 2018-01-20T00:03:37Z smurfrobot joined #lisp 2018-01-20T00:05:12Z ckonstanski quit (Quit: bye) 2018-01-20T00:06:05Z ckonstanski joined #lisp 2018-01-20T00:06:55Z JuanitoJons quit (Quit: Leaving) 2018-01-20T00:07:20Z heurist__ joined #lisp 2018-01-20T00:07:57Z heurist`_` quit (Ping timeout: 240 seconds) 2018-01-20T00:09:44Z rumbler31 joined #lisp 2018-01-20T00:09:51Z rumbler31 quit (Read error: Connection reset by peer) 2018-01-20T00:11:24Z _main_ joined #lisp 2018-01-20T00:12:33Z _main_ quit (Read error: Connection reset by peer) 2018-01-20T00:13:16Z _death: I wonder if it makes sense to want finalize to take a size hint 2018-01-20T00:13:41Z __main__ quit (Ping timeout: 268 seconds) 2018-01-20T00:14:04Z AeroNotix: aeth: I've brought this up in here once or twice before. Biggest consensus is that there's no need to make further language/standard changes as everything realistically can be plonked in a library 2018-01-20T00:14:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-20T00:16:44Z aeth: AeroNotix: Some libraries require implementation support for an efficient implementation (or any implementation at all), though. 2018-01-20T00:17:15Z AeroNotix: aeth: sure but most interesting and widely applicable features don't 2018-01-20T00:17:21Z AeroNotix: threads, for example. 2018-01-20T00:17:58Z aeth: AeroNotix: well, I'd say unicode characters/strings are an interesting and widely applicable feature that needs implementation support 2018-01-20T00:18:10Z AeroNotix: ascii 4 lyfe 2018-01-20T00:18:53Z aeth: It's very important to support Unicode so that you can use Emoji. (You also can use Unicode for non-English languages!) 2018-01-20T00:18:53Z jasom: aeth: that reminds me, I need to portabilify the sb-unicode package; it is almost indep already and provides a lot of unicode features that are really useful. 2018-01-20T00:19:24Z aeth: jasom: Yes, please. I need that for cl-scheme 2018-01-20T00:19:32Z jasom: 💩 2018-01-20T00:19:39Z aeth: At the moment I only support Unicode in SBCL there 2018-01-20T00:20:08Z smurfrobot quit (Remote host closed the connection) 2018-01-20T00:20:49Z brendyn joined #lisp 2018-01-20T00:21:27Z fikka joined #lisp 2018-01-20T00:22:37Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-20T00:23:15Z aeth: There's also a very trivial portability library (possibly already written several times over) that could be useful for other things that languages implemented in CL could use, such as float-nan-p (and the ability to get NaN at all, for languages where you can write a literal NaN, such as modern Scheme... that's one place where I fail r7rs conformance tests) 2018-01-20T00:24:29Z __main__ joined #lisp 2018-01-20T00:24:31Z markong quit (Ping timeout: 248 seconds) 2018-01-20T00:30:11Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-20T00:33:12Z eivarv quit (Quit: Sleep) 2018-01-20T00:34:39Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-20T00:36:59Z earl-ducaine joined #lisp 2018-01-20T00:37:54Z smasta joined #lisp 2018-01-20T00:42:07Z smasta quit (Ping timeout: 248 seconds) 2018-01-20T00:43:22Z nirved quit (Quit: Leaving) 2018-01-20T00:44:24Z emaczen: aeth: Wait I can enable inline-generic-functions just by pushing it onto *features*? 2018-01-20T00:47:12Z Karl_Dscc joined #lisp 2018-01-20T00:48:58Z aeth: I think it also requires the library. 2018-01-20T00:49:32Z emaczen: aeth: I'm amazed 2018-01-20T00:49:34Z aeth: And unfortunately the library is LLGPL, which could complicate building standalone binaries because then you'd be entering unknown legal territory. 2018-01-20T00:50:30Z emaczen: What is the point of the library if we can't even freely use it then? 2018-01-20T00:52:30Z aeth: The LLGPL is a preamble to the LGPL with Lisp-specific "clarifications" that may or may not be a good idea, but it effectively becomes a custom license that's neither FSF nor OSI approved. It would be clearer just to use LGPL, but that would essentially unambiguously forbid standalone all-in-one binaries, then, afaik. 2018-01-20T00:53:36Z Oladon joined #lisp 2018-01-20T00:53:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T00:54:43Z aeth: The older the library, the more likely it is to use the LLGPL, which imo is the worst thing to happen to the Lisp ecosystem. I am not a lawyer, but your lawyer might say do not use custom FOSS licenses. And, really, imo any situation where "talk to a lawyer" somehow becomes part of using a library is a bad thing, no matter what the lawyer winds up saying. 2018-01-20T00:56:09Z fikka joined #lisp 2018-01-20T00:56:42Z aeth: The FSF's official position is "the LGPL works as intended with all known programming languages" https://www.gnu.org/licenses/lgpl-java.html 2018-01-20T00:56:50Z Achylles joined #lisp 2018-01-20T00:57:28Z aeth: And the FSF definitely knows about Lisp. There are two GNU Common Lisps (CLISP, GCL) and at least three GNU Schemes (Guile, Kawa, MIT). 2018-01-20T00:57:46Z aeth: (And Emacs Lisp, of course) 2018-01-20T01:00:31Z warweasle joined #lisp 2018-01-20T01:01:22Z emaczen: I'm definitely going to have to ask about this again... 2018-01-20T01:01:35Z emaczen: I have some software I would like to release too 2018-01-20T01:02:26Z fdund: exit 2018-01-20T01:02:34Z fdund quit (Quit: Lost terminal) 2018-01-20T01:03:00Z smasta joined #lisp 2018-01-20T01:04:00Z aeth: Imo, for libraries use a permissive license unless you only want (A)GPLed software to use it. For applications, choosing between copyleft and permissive is your choice, depending on what you want. Copyleft is most useful for large, nontrivial applications if you're concerned about a commerical fork (or, if you require copyright assignment, you can sell exceptions for commerical software and be the only permitted commerical fork... this is t 2018-01-20T01:04:12Z lemonpepper24 joined #lisp 2018-01-20T01:04:22Z aeth: this is the business model for some companies) 2018-01-20T01:05:22Z aeth: The GPL does not prevent freeloading commercial forks, though. e.g. Oracle Linux is a fork of Red Hat Enterprise Linux. 2018-01-20T01:07:15Z JenElizabeth joined #lisp 2018-01-20T01:08:40Z JenElizabeth quit (Remote host closed the connection) 2018-01-20T01:08:42Z aeth: The LGPL (not the LLGPL please!) is another option for libraries, but until someone gets clarification from the FSF (I think they have an email for this sort of thing), afaik the best we have to go off of is the Java LGPL article, where it says that JAR-based distribution for libraries is okay under the LGPL. Thus, it looks like the LGPL could prevent distrubtion of Lisp apps that put everything in one binary. 2018-01-20T01:08:55Z JenElizabeth joined #lisp 2018-01-20T01:09:30Z emaczen: Are there executables built with (sb-ext:save-lisp-and-die ...) binaries? 2018-01-20T01:09:43Z emaczen: Are the* 2018-01-20T01:10:26Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-20T01:10:28Z aeth: The only Lisp executables I'm aware of are the web browser written by jmercouris and some games produced by the #lispgames community. 2018-01-20T01:11:03Z Norvic_ quit (Quit: Leaving) 2018-01-20T01:11:08Z emaczen: aeth: What do you call the file that is produced with (sb-ext:save-lisp-and-die ...) 2018-01-20T01:11:10Z aeth: I think most Lisp applications require a host CL. 2018-01-20T01:11:19Z mathrick quit (Read error: Connection reset by peer) 2018-01-20T01:11:30Z jasom wrote an implementation of redo in lisp that was a standalone executable 2018-01-20T01:11:42Z ikki quit (Ping timeout: 265 seconds) 2018-01-20T01:11:44Z JenElizabeth quit (Remote host closed the connection) 2018-01-20T01:11:59Z rumbler31 joined #lisp 2018-01-20T01:12:17Z jasom: it gets recursively invoked, so startup time was important 2018-01-20T01:15:41Z zooey quit (Ping timeout: 255 seconds) 2018-01-20T01:16:24Z rumbler31 quit (Ping timeout: 256 seconds) 2018-01-20T01:19:00Z aeth: emaczen: 'saved image'? 2018-01-20T01:19:07Z jmercouris joined #lisp 2018-01-20T01:19:27Z zooey joined #lisp 2018-01-20T01:19:46Z jasom: emaczen: save-lisp-and-die makes an image; it's also an executable if :executable t is passed. 2018-01-20T01:20:09Z aeth: Okay, then, that makes it easy. 'saved image' and 'saved executable image' 2018-01-20T01:21:38Z jasom: there's a regex tutorial program that is a lisp executable 2018-01-20T01:22:13Z jasom: http://weitz.de/regex-coach/ 2018-01-20T01:24:36Z jasom: http://www.inspiration.com/Inspiration <-- I think this was written in lisp as well 2018-01-20T01:25:28Z aeth: Afaik, an alternative would be to distribute SBCL to end users, like Sun did and Oracle does with Java. 2018-01-20T01:25:37Z aeth: Probably not worth doing. 2018-01-20T01:26:25Z epony quit (Quit: QUIT) 2018-01-20T01:27:36Z Bike_ joined #lisp 2018-01-20T01:28:02Z quazimodo joined #lisp 2018-01-20T01:29:09Z Bike quit (Ping timeout: 260 seconds) 2018-01-20T01:30:19Z fikka quit (Ping timeout: 256 seconds) 2018-01-20T01:30:20Z ikki joined #lisp 2018-01-20T01:32:03Z Bike_ is now known as Bike 2018-01-20T01:32:16Z xrash joined #lisp 2018-01-20T01:33:22Z fikka joined #lisp 2018-01-20T01:34:48Z jasom: anyone know what sb-kernel:with-array-data does? 2018-01-20T01:35:15Z Bike: i think it gets at the underlying one dimensional array elements with no header 2018-01-20T01:35:56Z turkja joined #lisp 2018-01-20T01:36:08Z Bike: the comment seems pretty clear, except for leaving "data vector" undefined 2018-01-20T01:38:03Z jasom: where is it defined? I don't have source mappings for my installed sbcl 2018-01-20T01:39:01Z Bike: 1331 of compiler/array-tran.lisp, though mine might be a little old. 2018-01-20T01:39:23Z Bike: what are you doing with it? 2018-01-20T01:39:46Z jasom: found it 2018-01-20T01:39:54Z jasom: Bike: trying to make code that uses it portable 2018-01-20T01:40:02Z Bike: oh, i see 2018-01-20T01:40:46Z Karl_Dscc quit (Remote host closed the connection) 2018-01-20T01:41:12Z jasom: looks like I can use 0 and (length vector) if :check-fill-pointer is t 2018-01-20T01:44:09Z xrash quit (Read error: Connection reset by peer) 2018-01-20T01:45:28Z JonSmith joined #lisp 2018-01-20T01:53:52Z epony joined #lisp 2018-01-20T01:53:57Z ikki quit (Ping timeout: 240 seconds) 2018-01-20T01:55:00Z epony quit (Max SendQ exceeded) 2018-01-20T01:56:21Z epony joined #lisp 2018-01-20T01:59:45Z Achylles quit (Ping timeout: 264 seconds) 2018-01-20T02:03:53Z warweasle quit (Read error: Connection reset by peer) 2018-01-20T02:04:06Z sz0 joined #lisp 2018-01-20T02:04:18Z warweasle joined #lisp 2018-01-20T02:04:35Z yeticry quit (Ping timeout: 240 seconds) 2018-01-20T02:05:32Z EvW quit (Ping timeout: 255 seconds) 2018-01-20T02:07:16Z yeticry joined #lisp 2018-01-20T02:08:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T02:10:59Z LocaMocha joined #lisp 2018-01-20T02:12:24Z Achylles joined #lisp 2018-01-20T02:18:59Z fikka joined #lisp 2018-01-20T02:20:47Z smurfrobot joined #lisp 2018-01-20T02:21:04Z openthesky quit 2018-01-20T02:21:51Z heurist__ quit (Ping timeout: 248 seconds) 2018-01-20T02:23:38Z JonSmith quit (Remote host closed the connection) 2018-01-20T02:26:53Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-20T02:26:53Z Achylles quit (Ping timeout: 268 seconds) 2018-01-20T02:28:16Z openthesky joined #lisp 2018-01-20T02:30:47Z Cymew joined #lisp 2018-01-20T02:31:27Z khisanth_ quit (Ping timeout: 240 seconds) 2018-01-20T02:35:10Z Cymew quit (Ping timeout: 256 seconds) 2018-01-20T02:35:50Z jack_rabbit quit (Read error: Connection reset by peer) 2018-01-20T02:39:21Z makomo quit (Ping timeout: 264 seconds) 2018-01-20T02:40:55Z holycow joined #lisp 2018-01-20T02:45:05Z khisanth_ joined #lisp 2018-01-20T02:46:48Z Oladon quit (Quit: Leaving.) 2018-01-20T02:48:02Z fittestbits joined #lisp 2018-01-20T02:49:20Z d4ryus1 joined #lisp 2018-01-20T02:51:26Z Oladon joined #lisp 2018-01-20T02:52:05Z d4ryus quit (Ping timeout: 240 seconds) 2018-01-20T02:52:25Z Cymew joined #lisp 2018-01-20T02:55:34Z orivej quit (Ping timeout: 256 seconds) 2018-01-20T02:56:31Z warweasle quit (Quit: Leaving) 2018-01-20T02:56:38Z pjb quit (Read error: Connection reset by peer) 2018-01-20T02:57:01Z Cymew quit (Ping timeout: 256 seconds) 2018-01-20T02:58:44Z pjb joined #lisp 2018-01-20T03:13:49Z smurfrobot joined #lisp 2018-01-20T03:21:23Z wxie joined #lisp 2018-01-20T03:22:22Z marusich joined #lisp 2018-01-20T03:22:27Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-20T03:25:11Z fikka quit (Ping timeout: 276 seconds) 2018-01-20T03:27:02Z marusich quit (Ping timeout: 265 seconds) 2018-01-20T03:29:37Z damke joined #lisp 2018-01-20T03:30:57Z fikka joined #lisp 2018-01-20T03:31:17Z marusich joined #lisp 2018-01-20T03:32:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T03:34:10Z smurfrobot quit (Remote host closed the connection) 2018-01-20T03:37:11Z pagnol quit (Ping timeout: 268 seconds) 2018-01-20T03:38:42Z nika joined #lisp 2018-01-20T03:39:02Z pjb quit (Remote host closed the connection) 2018-01-20T03:40:24Z rjmacready quit (Ping timeout: 260 seconds) 2018-01-20T03:42:13Z wxie quit (Remote host closed the connection) 2018-01-20T03:47:18Z pragmaticmonkey joined #lisp 2018-01-20T03:48:54Z broccolistem quit (Ping timeout: 268 seconds) 2018-01-20T03:49:09Z heurist__ joined #lisp 2018-01-20T03:51:13Z nika quit (Ping timeout: 256 seconds) 2018-01-20T03:53:20Z nika joined #lisp 2018-01-20T03:53:37Z pragmaticmonkey: Is there a lisp like language that isn't a global bucket of whackly named functions? Something with a lil better package and scopes? 2018-01-20T03:58:23Z heurist__ quit (Ping timeout: 248 seconds) 2018-01-20T04:00:08Z pragmaticmonkey: Is there a way to print a tree? 2018-01-20T04:00:11Z pragmaticmonkey: pretty print that is 2018-01-20T04:02:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T04:03:11Z smasta quit (Ping timeout: 248 seconds) 2018-01-20T04:04:04Z fikka joined #lisp 2018-01-20T04:10:44Z holycow quit (Quit: Lost terminal) 2018-01-20T04:13:15Z turkja quit (Ping timeout: 260 seconds) 2018-01-20T04:16:19Z z3t0 joined #lisp 2018-01-20T04:18:17Z arbv quit (Ping timeout: 255 seconds) 2018-01-20T04:19:21Z ahungry joined #lisp 2018-01-20T04:22:35Z bkst quit (Ping timeout: 256 seconds) 2018-01-20T04:25:13Z z3t0 quit (Quit: Leaving...) 2018-01-20T04:27:40Z bkst joined #lisp 2018-01-20T04:29:13Z pierpa quit (Quit: Page closed) 2018-01-20T04:30:05Z smasta joined #lisp 2018-01-20T04:32:07Z nullniverse quit (Quit: Leaving) 2018-01-20T04:33:22Z heurist__ joined #lisp 2018-01-20T04:35:23Z smasta quit (Ping timeout: 276 seconds) 2018-01-20T04:37:34Z openthesky quit (Ping timeout: 260 seconds) 2018-01-20T04:37:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T04:41:24Z fikka joined #lisp 2018-01-20T04:42:40Z pragmaticmonkey quit (Quit: Page closed) 2018-01-20T04:51:22Z sigjuice quit (Quit: ZNC - http://znc.in) 2018-01-20T04:52:24Z ebzzry joined #lisp 2018-01-20T04:54:14Z heurist__ quit (Ping timeout: 276 seconds) 2018-01-20T04:54:28Z dddddd quit (Remote host closed the connection) 2018-01-20T04:58:30Z jmercouris: What are you guys working on right now? Anyone interested in sharing their lisp projects? 2018-01-20T04:59:14Z marusich quit (Ping timeout: 255 seconds) 2018-01-20T04:59:38Z rumbler31 joined #lisp 2018-01-20T04:59:42Z marusich joined #lisp 2018-01-20T04:59:47Z schoppenhauer quit (Ping timeout: 256 seconds) 2018-01-20T05:00:52Z heurist__ joined #lisp 2018-01-20T05:01:24Z schoppenhauer joined #lisp 2018-01-20T05:02:52Z beach: Good morning everyone! 2018-01-20T05:03:24Z beach: minion: Please tell jmercouris about SICL. 2018-01-20T05:03:25Z minion: jmercouris: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL 2018-01-20T05:03:32Z beach: minion: Please tell jmercouris about Cleavir. 2018-01-20T05:03:32Z minion: jmercouris: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future 2018-01-20T05:04:37Z jmercouris: beach: I'm more curious about how you trained minion 2018-01-20T05:04:44Z jmercouris: do you run minion? 2018-01-20T05:04:46Z aeth: That's a hard act to follow. 2018-01-20T05:04:56Z beach: minion: help 2018-01-20T05:04:56Z minion: There are multiple help modules. Try ``/msg minion help kind'', where kind is one of: "lookups", "helping others", "adding terms", "aliasing terms", "forgetting", "memos", "avoiding memos", "nicknames", "goodies", "eliza", "advice", "apropos", "acronyms". 2018-01-20T05:05:00Z aeth: Not just the projects, but also the bot knowing the projects. 2018-01-20T05:05:06Z beach: minion: help adding terms 2018-01-20T05:05:06Z minion: To add a term, say something like ``minion: add "term" as: the definition''. I will remember the definition. 2018-01-20T05:05:08Z jmercouris: Yeah sure, but did you use an alias? 2018-01-20T05:05:18Z jmercouris: Ok so you just added a term 2018-01-20T05:05:40Z ahungry: This isn't Common Lisp, but it's in the lisp family and probably has some overlap with CL user's tooling (Emacs), new mode I just finished an mvp of: https://github.com/ahungry/redditor-mode 2018-01-20T05:06:15Z jmercouris: ahungry: That's amazing 2018-01-20T05:07:02Z jmercouris: beach: The difference between cleavir and sicl isn't exactly so "clear cut" to me 2018-01-20T05:07:13Z jmercouris: What is a "compilation framework"? 2018-01-20T05:07:22Z jmercouris: I thought you were bootstrapping off SBCL 2018-01-20T05:07:26Z jmercouris: so where does cleavir come in? 2018-01-20T05:08:01Z jmercouris: SBCL --> Loads Sicl --> Cleavir Compiles Sicl Code ? 2018-01-20T05:08:22Z beach: jmercouris: SICL is a complete implementation of Common Lisp. 2018-01-20T05:08:22Z beach: jmercouris: Cleavir is a compiler that can be used by any implementation that so wishes. 2018-01-20T05:08:38Z beach: So SICL uses Cleavir. 2018-01-20T05:09:09Z jmercouris: So Cleavir implements a way to compile that isn't tied to a vendor's extensions 2018-01-20T05:09:10Z jmercouris: yeah? 2018-01-20T05:09:28Z shka joined #lisp 2018-01-20T05:10:23Z jmercouris: Without using vendor specific extensions, are there enough functions and accessors to persist a lisp image? 2018-01-20T05:10:33Z beach: Most Common Lisp compilers could be characterized like that. The specificity of Cleavir is that it can be customized to the specific representations and data structures of any Common Lisp implementation. 2018-01-20T05:10:56Z jmercouris: so Cleavir has to be "ported" to an implementation? 2018-01-20T05:11:15Z jmercouris: it doesn't just use the functions, data types, and accessors defined in the lisp standard 2018-01-20T05:11:24Z beach: Customized. By the use of methods and subclasses. Just like any other CLOS-based software. 2018-01-20T05:11:33Z jmercouris: Okay, so using entirely standard features 2018-01-20T05:11:53Z beach: I think you are missing the point... (sorry)... 2018-01-20T05:12:09Z beach: Most compilers for Common Lisp are written with a single implementation in mind. 2018-01-20T05:12:10Z jmercouris: If I am missing the point, please explain 2018-01-20T05:12:23Z beach: So the specific implementation details are spread all over the code. 2018-01-20T05:12:26Z jmercouris: Okay, so far so good 2018-01-20T05:13:10Z beach: Cleavir turns those details into generic functions and classes that can be altered by the implementation, using subclassing and methods. 2018-01-20T05:13:24Z jmercouris: Okay so yeah, it has to be ported 2018-01-20T05:13:31Z jmercouris: you are effectively making an API for compilation 2018-01-20T05:13:31Z beach: Customized. 2018-01-20T05:13:33Z FreeBirdLjj joined #lisp 2018-01-20T05:13:39Z beach: Yes, sort of. 2018-01-20T05:13:48Z jmercouris: ported, customized, I think we're on the same page :) 2018-01-20T05:14:01Z jmercouris: Do you plan on extending this to produce standalone binaries? 2018-01-20T05:14:24Z jmercouris: E.g. bundling the kernel and image together in an "executable" bundle? 2018-01-20T05:14:29Z beach: That would be an implementation-specific decision and nothing for Cleavir. 2018-01-20T05:14:55Z jmercouris: I think that would be THE killer feature to convince an implementation to port Cleavir 2018-01-20T05:15:07Z jmercouris: If you extended the spec in this way 2018-01-20T05:15:18Z beach: For SICL, the plan is to stick most of the system in a shared library, so that small executables can be produced for those who are obsessed about that. 2018-01-20T05:15:24Z jmercouris: I've obviously thought way less about this than you, but that's just an outsider perspective 2018-01-20T05:16:14Z beach: SBCL can already produce "standalone" binaries. 2018-01-20T05:16:26Z jmercouris: Yeah, but many other implementations cannot 2018-01-20T05:16:28Z jmercouris: at least not easily 2018-01-20T05:16:32Z jmercouris: it's usually a huge pain 2018-01-20T05:16:56Z beach: Either way, that feature is related to the implementation, so Cleavir can't do anything about it. 2018-01-20T05:17:20Z jmercouris: You could make a third tool, and call it Compilr 2018-01-20T05:17:24Z jmercouris: or Bundlr 2018-01-20T05:17:34Z rumbler31 quit (Remote host closed the connection) 2018-01-20T05:17:35Z smurfrobot joined #lisp 2018-01-20T05:17:49Z beach: A thing like that would be VERY implementation specific. I see no way to make it generic. 2018-01-20T05:17:51Z jmercouris: I guess your goals are more research oriented than anything, so I imagine it doesn't really interst you 2018-01-20T05:18:27Z jmercouris: It doesn't have to be generic, it could just be a tool to simplify the process 2018-01-20T05:18:31Z beach: I have no interest in digging into the details of every free Common Lisp implementation if that is what you mean. 2018-01-20T05:18:44Z beach: But I do have a practical system in mind. 2018-01-20T05:18:47Z jmercouris: again, a standard "way" of bundling for the end user, and then handling the implementation specific details 2018-01-20T05:18:56Z jmercouris: an abstraction of sorts 2018-01-20T05:19:38Z beach: I have absolutely no idea how to even think about creating such a thing, other than a generic function CREATE-BINARY that each implementation would have to define a method on. 2018-01-20T05:19:48Z jmercouris: yeah, that's it exactly 2018-01-20T05:20:19Z jmercouris: you would define those methods like +sbcl... etc, and then a user can just say (create-binary :with-name "binary-name" ...) 2018-01-20T05:20:29Z jmercouris: it would just do those operations for the user 2018-01-20T05:20:32Z jmercouris: would be really useful I think 2018-01-20T05:20:52Z beach: I have around 100 or so projects that I consider much more useful. 2018-01-20T05:21:05Z jmercouris: what's 101 :P 2018-01-20T05:21:43Z beach: The top 5 will last my remaining lifetime, so I don't often look further down the list. 2018-01-20T05:22:15Z jmercouris: oh well 2018-01-20T05:22:18Z jmercouris: so ist das leben 2018-01-20T05:23:13Z beach: Or in the words of my brother-in-law: "Life's a bitch, and then you die." 2018-01-20T05:23:57Z jmercouris: Those are stolen words, and incorrect 2018-01-20T05:23:57Z smasta joined #lisp 2018-01-20T05:24:05Z jmercouris: Life is what you make of it 2018-01-20T05:24:06Z beach: Oh, OK. 2018-01-20T05:24:32Z jmercouris: Nothing more, nothing less 2018-01-20T05:24:51Z Timzi joined #lisp 2018-01-20T05:27:36Z Timzi quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-20T05:28:31Z smasta quit (Ping timeout: 248 seconds) 2018-01-20T05:29:15Z aphprentice joined #lisp 2018-01-20T05:29:29Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-20T05:31:27Z beach: The other thing about Cleavir is that it uses the full Common Lisp language in order for the code to be maintainable and modular. Whereas for instance the SBCL compiler does not use generic functions, because it is needed when CLOS is not available. This fact makes the SBCL compiler much harder to maintain. 2018-01-20T05:32:18Z beach: Same thing with SICL, it uses the full Common Lisp language to implement most of its features. So for instance SICL LOOP uses generic functions and classes in its expansion code. 2018-01-20T05:36:05Z jmercouris: beach: I see, so it has an advantage in the way that it is bootstrapped 2018-01-20T05:36:07Z jmercouris: yes? 2018-01-20T05:36:19Z damke_ joined #lisp 2018-01-20T05:36:30Z beach: It will have. I am making very slow progress on the bootstrapping phase. 2018-01-20T05:36:43Z beach: But the main advantage is in maintainability. 2018-01-20T05:36:48Z jmercouris: have you thought about paying developers to work on it? 2018-01-20T05:37:09Z beach: I have, yes. 2018-01-20T05:37:17Z jmercouris: and what did you conclude? 2018-01-20T05:38:11Z beach: There are very few people that have the required knowledge and that are also available for work. But when I find one, I'll consider this option. 2018-01-20T05:38:45Z damke quit (Ping timeout: 263 seconds) 2018-01-20T05:39:07Z jmercouris: People can be trained 2018-01-20T05:39:12Z krwq joined #lisp 2018-01-20T05:39:23Z jmercouris: And when you train one, they can train another, and then bam, exponential knowledge share 2018-01-20T05:39:45Z jmercouris: sure, there are losses the further from the source, but if everything is well documented, mistakes can be corrected 2018-01-20T05:40:22Z jmercouris: beach: rme is looking for a job, I would say he is a suitable candidate 2018-01-20T05:40:32Z jmercouris: I wouldn't know, but you could interview him if he wishes it 2018-01-20T05:40:38Z jmercouris: and you wish it as well of course 2018-01-20T05:41:02Z beach: I can't afford to pay someone for full-time work. And I certainly can't afford the typical fees in the US or western EU. 2018-01-20T05:41:15Z jmercouris: You can't afford them *now* 2018-01-20T05:41:22Z beach: ? 2018-01-20T05:41:33Z jmercouris: but if you made a business case for your work, you could secure a grant, or investment money 2018-01-20T05:41:56Z beach: Yeah, that won't happen. 2018-01-20T05:42:02Z jmercouris: it is my belief that you can amplify your efforts through teams of people 2018-01-20T05:42:10Z jmercouris: You know nothing about business, but you are so confident 2018-01-20T05:42:12Z beach: Definitely. 2018-01-20T05:42:26Z beach: It won't happen because I am not going to try. 2018-01-20T05:42:30Z jmercouris: I'll give you this, you are possibly the best Lisp coder in existence right now, but I don't think you know anything about business 2018-01-20T05:42:45Z jmercouris: Why won't you try? are you afraid of failure? 2018-01-20T05:43:01Z beach: I know some. I have had 2 US companies and 1 French company in the past. 2018-01-20T05:43:01Z jmercouris: If you care about the completion of your project, you'd give it a really good hard think 2018-01-20T05:43:36Z jmercouris: Forming 3 organizations is not a measure of business knowledge 2018-01-20T05:43:54Z jmercouris: I'm not trying to be a jerk or anything 2018-01-20T05:43:56Z beach: One thing I don't like is when people put words in my mouth. I don't care about the completion of my project enough to manage a business. 2018-01-20T05:44:18Z jmercouris: beach: You don't care about the completion of your project that you work on every day? 2018-01-20T05:44:22Z jmercouris: Ah, this is surprising to me 2018-01-20T05:44:28Z beach: See? 2018-01-20T05:44:42Z jmercouris: Why work on something if you don't care about it's completion? 2018-01-20T05:44:45Z jmercouris: its* 2018-01-20T05:44:53Z asarch joined #lisp 2018-01-20T05:45:10Z jmercouris: Furthermore, if you don't care about completion, why would you have thought about paying developers? 2018-01-20T05:45:19Z jmercouris: I put no words in your mouth, I just add 1+1 to make 2 2018-01-20T05:45:27Z beach: jmercouris: I am a researcher. I get partial results as my papers show. Clasp has already implemented fast generic function dispatch and it uses Cleavir. That's good enough for me. 2018-01-20T05:45:42Z beach: It may use first-class global environments in the future. 2018-01-20T05:45:51Z beach: All those things are my research results. 2018-01-20T05:46:19Z jmercouris: This is admirable, but it is also not a rebuttal to what I said 2018-01-20T05:47:06Z jmercouris: I don't mean to upset or anything, if I am bothering you, tell me and I will stop, I just enjoy controversial topics 2018-01-20T05:47:18Z jmercouris: to see if I can learn something, or understand how you think, so I say provocative things 2018-01-20T05:47:39Z jmercouris: it's a bad habit on my part, but I am just too curious about others 2018-01-20T05:47:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T05:47:44Z beach: Like water off a duck's back. 2018-01-20T05:47:50Z jmercouris: Ok, good :) 2018-01-20T05:48:23Z beach: I would like to see my numerous projects finished, of course. But that is not my highest priority, and if the cost of getting there is too high, then it just won't happen. 2018-01-20T05:48:51Z beach: Part of the reason it is not high priority is that very few people care about my projects anyway. 2018-01-20T05:49:08Z jmercouris: So if more people cared about them, would you care more about them? 2018-01-20T05:49:16Z damke joined #lisp 2018-01-20T05:49:16Z beach: Possibly. 2018-01-20T05:49:26Z jmercouris: Do you care about humanity as a whole? 2018-01-20T05:49:36Z jmercouris: The so called "betterment" of the human race? 2018-01-20T05:51:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T05:52:32Z beach: Sure, and I do my part, not only for computing, but also for the environment, for the economy, etc. But I am quite pessimistic about the future. But that's off topic. 2018-01-20T05:52:56Z wigust quit (Ping timeout: 256 seconds) 2018-01-20T05:53:03Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-20T05:53:09Z jmercouris: So, if I understand, you think the impact of your projects is not significant enough based on a proxy measure of overall interest? 2018-01-20T05:53:38Z jmercouris: And since this is not inline with your goal of bettering the world, why invest oneself fully into it? 2018-01-20T05:54:17Z beach: As long as the ELS referees accept my papers, I feel my salary is justified. 2018-01-20T05:54:52Z jfb4 joined #lisp 2018-01-20T05:55:10Z jmercouris: So you are satisfied with the amount of positive impact you currently produce, and therefore there is no need to necessarily complete your projects? 2018-01-20T05:55:20Z smurfrobot quit (Remote host closed the connection) 2018-01-20T05:55:36Z beach: Sounds about right. 2018-01-20T05:55:51Z jmercouris: That sounds like a key to happiness 2018-01-20T05:56:02Z jmercouris: Others chase and chase unattainable goals, but being satisfied, that is tricky 2018-01-20T05:56:03Z beach: My current strategy is to extract some "modules" from SICL and Cleavir (and other projects) to independent repositories, and to write tests and documentation for them. 2018-01-20T05:56:18Z jmercouris: After all, you are only one man 2018-01-20T05:57:38Z fikka joined #lisp 2018-01-20T05:57:43Z jmercouris: I feel one step closer to understanding you, thanks for sharing 2018-01-20T05:57:48Z beach: Sure. 2018-01-20T06:00:37Z damke_ joined #lisp 2018-01-20T06:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-20T06:04:35Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-20T06:06:37Z jfb4 joined #lisp 2018-01-20T06:07:04Z asarch quit (Quit: Leaving) 2018-01-20T06:07:29Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T06:08:06Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-20T06:08:59Z mathrick joined #lisp 2018-01-20T06:09:03Z heurist__ quit (Ping timeout: 248 seconds) 2018-01-20T06:09:21Z jmercouris quit (Ping timeout: 265 seconds) 2018-01-20T06:09:40Z heurist__ joined #lisp 2018-01-20T06:11:03Z stylewarning: beach, I might be down to (co?)sponsor a student to help implement some of your research 2018-01-20T06:11:14Z marusich quit (Ping timeout: 255 seconds) 2018-01-20T06:11:41Z stylewarning: beach, currently doing that with a student doing PLT. (: 2018-01-20T06:12:46Z marusich joined #lisp 2018-01-20T06:13:25Z red-dot joined #lisp 2018-01-20T06:21:21Z smurfrobot joined #lisp 2018-01-20T06:22:47Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-20T06:23:46Z beach: stylewarning: Oh, great! 2018-01-20T06:29:19Z aene joined #lisp 2018-01-20T06:30:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T06:34:22Z fikka joined #lisp 2018-01-20T06:39:10Z damke joined #lisp 2018-01-20T06:40:54Z nika quit (Quit: Leaving...) 2018-01-20T06:41:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T06:42:29Z smurfrobot quit (Remote host closed the connection) 2018-01-20T06:44:39Z rippa joined #lisp 2018-01-20T06:45:27Z lemonpepper24 quit (Ping timeout: 240 seconds) 2018-01-20T06:47:33Z damke_ joined #lisp 2018-01-20T06:49:33Z damke quit (Ping timeout: 264 seconds) 2018-01-20T06:53:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T06:54:32Z zooey quit (Ping timeout: 255 seconds) 2018-01-20T06:55:27Z zooey joined #lisp 2018-01-20T07:03:50Z nika joined #lisp 2018-01-20T07:07:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T07:12:12Z smasta joined #lisp 2018-01-20T07:13:37Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T07:14:51Z red-dot joined #lisp 2018-01-20T07:16:48Z smasta quit (Ping timeout: 256 seconds) 2018-01-20T07:17:10Z sz0 joined #lisp 2018-01-20T07:18:08Z fikka joined #lisp 2018-01-20T07:18:10Z rumbler31 joined #lisp 2018-01-20T07:18:45Z ahungry quit (Remote host closed the connection) 2018-01-20T07:18:57Z zooey quit (Remote host closed the connection) 2018-01-20T07:19:29Z zooey joined #lisp 2018-01-20T07:21:03Z smasta joined #lisp 2018-01-20T07:22:35Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-20T07:23:35Z Guest17599 joined #lisp 2018-01-20T07:25:41Z damke_ joined #lisp 2018-01-20T07:26:15Z krwq quit (Remote host closed the connection) 2018-01-20T07:31:11Z whoman quit (Remote host closed the connection) 2018-01-20T07:31:45Z vlatkoB joined #lisp 2018-01-20T07:32:39Z Guest17599 quit (Quit: Leaving) 2018-01-20T07:34:21Z d4ryus1 is now known as d4ryus 2018-01-20T07:34:47Z shifty joined #lisp 2018-01-20T07:37:50Z damke joined #lisp 2018-01-20T07:39:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T07:40:23Z Murii joined #lisp 2018-01-20T07:45:21Z lnostdal quit (Ping timeout: 264 seconds) 2018-01-20T07:47:01Z aeth: beach: Is there any chance that your fast CLOS will one day replace PCL in implementations like SBCL? (I assume that you either already beat its performance or will eventually.) I'm not sure anyone on the planet knows more about CLOS than you. 2018-01-20T07:50:23Z shka quit (Ping timeout: 248 seconds) 2018-01-20T07:51:01Z phoe: aeth: ask scymtym for some preliminary tests he did on fast GF dispatch. 2018-01-20T07:51:09Z phoe: (AFAIR it was him) 2018-01-20T07:52:18Z aeth: Replacing the current dispatch system in SBCL with a faster one would bring an immediate improvement to so many people, e.g. gray streams. 2018-01-20T07:52:24Z aeth: Gray streams are everywhere. 2018-01-20T07:54:28Z aeth: And a faster CLOS in general would change the architecture of so many things, probably. 2018-01-20T07:54:55Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-20T07:55:35Z heurist joined #lisp 2018-01-20T07:56:11Z heurist__ quit (Ping timeout: 268 seconds) 2018-01-20T07:57:05Z aeth: phoe: well, I search "fast generic function dispatch" and the first result I get is http://metamodular.com/generic-dispatch.pdf 2018-01-20T07:57:38Z smurfrobot joined #lisp 2018-01-20T07:58:43Z jack_rabbit joined #lisp 2018-01-20T08:01:28Z phoe: aeth: he talked about it on #lisp methinks some time ago, and showed some preliminary benchmarks. 2018-01-20T08:02:14Z aeth: It looks like most results are the paper by beach on DuckDuckGo: https://duckduckgo.com/?q=lisp+fast+generic+function+dispatch&t=hf&ia=web 2018-01-20T08:02:27Z heurist quit (Ping timeout: 240 seconds) 2018-01-20T08:03:23Z smurfrobot quit (Remote host closed the connection) 2018-01-20T08:04:09Z heurist joined #lisp 2018-01-20T08:07:43Z oleo quit (Remote host closed the connection) 2018-01-20T08:14:35Z smurfrobot joined #lisp 2018-01-20T08:16:42Z sigjuice joined #lisp 2018-01-20T08:17:36Z aeth: I have tried refining the search and still cannot find any benchmarks 2018-01-20T08:18:53Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-20T08:19:16Z phoe: aeth: they were only posted on the IRC afaik. 2018-01-20T08:19:21Z rumbler31 joined #lisp 2018-01-20T08:19:21Z phoe: just ask him. (: 2018-01-20T08:19:26Z aeth: ah 2018-01-20T08:19:32Z aeth: well I'm starting to think that they were only posted on IRC 2018-01-20T08:20:29Z Shinmera: https://irclog.tymoon.eu/freenode/%23lisp?around=1508764653#1508764653 2018-01-20T08:20:41Z Shinmera: (irclog has a search. use it.) 2018-01-20T08:21:38Z aeth: I wasn't aware of that one, I always use the CCL one 2018-01-20T08:21:41Z aeth: thanks 2018-01-20T08:21:57Z heurist quit (Ping timeout: 264 seconds) 2018-01-20T08:22:13Z oleo joined #lisp 2018-01-20T08:24:57Z rumbler31 quit (Ping timeout: 264 seconds) 2018-01-20T08:27:35Z aeth: hmm 2018-01-20T08:28:45Z aeth: Maybe I should spend more time to proofread before I write things that are permanently logged on many different websites. 2018-01-20T08:29:02Z zooey quit (Ping timeout: 255 seconds) 2018-01-20T08:29:40Z Shinmera: I doubt spelling and grammar are going to be the things people will judge you for. 2018-01-20T08:29:45Z zooey joined #lisp 2018-01-20T08:32:06Z aeth: Then I'm even worse off! 2018-01-20T08:32:41Z Shinmera: Basically if you don't want people to judge you just don't say anything ever :^) 2018-01-20T08:32:47Z damke_ joined #lisp 2018-01-20T08:33:03Z Shinmera: Personally I think some random people judging me doesn't really matter much. 2018-01-20T08:33:18Z aeth: The problem with IRC is that I'm usually on it when I'm too exhausted to program. So if you want to judge me at my sharpest, read my code, I guess. 2018-01-20T08:33:48Z jackdaniel: good morning 2018-01-20T08:33:53Z oleo: good morning 2018-01-20T08:34:28Z aeth: Oh, hey, it's morning here too... technically. Good morning. 2018-01-20T08:34:54Z oleo: ya slightly sunny winter morning 2018-01-20T08:35:00Z heurist joined #lisp 2018-01-20T08:35:01Z oleo: eheh 2018-01-20T08:35:07Z aeth: The Sun is going to come up here in a few hours. 2018-01-20T08:35:09Z damke quit (Ping timeout: 264 seconds) 2018-01-20T08:36:12Z FreeBird_ joined #lisp 2018-01-20T08:37:07Z phoe: good morning 2018-01-20T08:37:58Z Shinmera: aeth: I didn't know you read tabloids 2018-01-20T08:38:58Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-20T08:39:31Z aeth: I hope I'm never famous. People might judge me by the source code I write, but 90% of it is when I didn't know better. I just don't have time to replace it all. 2018-01-20T08:43:31Z mishoo joined #lisp 2018-01-20T08:44:41Z damke joined #lisp 2018-01-20T08:45:46Z smurfrobot joined #lisp 2018-01-20T08:47:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T08:50:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-20T08:51:00Z krasnal joined #lisp 2018-01-20T08:52:04Z aeth: Shinmera: Are you working on any interesting Lisp projects? 2018-01-20T08:52:14Z Shinmera: Depends on what you deem interesting 2018-01-20T08:53:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T08:53:06Z aeth: On your Github, you appear to be the author of literally everything. 2018-01-20T08:53:53Z Shinmera: Oh dear I hope I'm not 2018-01-20T08:54:05Z aeth: tons of libraries, including some that I've used 2018-01-20T08:54:48Z aeth: How are you so productive? 2018-01-20T08:55:16Z Shinmera: Lots of people ask me that and I don't know what to say beyond that I'm terrible at everything else. 2018-01-20T08:56:35Z orivej joined #lisp 2018-01-20T08:59:17Z fikka joined #lisp 2018-01-20T09:08:16Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-20T09:09:00Z milanj_ joined #lisp 2018-01-20T09:10:25Z jfb4 joined #lisp 2018-01-20T09:11:08Z JuanDaugherty: check ur pockets 2018-01-20T09:12:26Z JuanDaugherty: it's easy to be productive if you stay immersed in work, particularly work you do under your own control and for yourself 2018-01-20T09:12:50Z JuanDaugherty: slaving for dolts, that's the hard 2018-01-20T09:15:05Z arbv joined #lisp 2018-01-20T09:19:12Z knobo2 joined #lisp 2018-01-20T09:19:33Z msb quit (Read error: Connection reset by peer) 2018-01-20T09:22:20Z msb joined #lisp 2018-01-20T09:24:03Z wigust joined #lisp 2018-01-20T09:29:04Z eivarv joined #lisp 2018-01-20T09:34:13Z zaquest quit (Quit: Leaving) 2018-01-20T09:37:46Z makomo joined #lisp 2018-01-20T09:40:11Z random-nick joined #lisp 2018-01-20T09:51:46Z jack_rabbit quit (Ping timeout: 265 seconds) 2018-01-20T09:53:22Z jack_rabbit joined #lisp 2018-01-20T09:56:53Z zaquest joined #lisp 2018-01-20T10:03:44Z razzy` quit (Ping timeout: 248 seconds) 2018-01-20T10:08:09Z fikka quit (Ping timeout: 268 seconds) 2018-01-20T10:12:52Z fikka joined #lisp 2018-01-20T10:20:18Z Karl_Dscc joined #lisp 2018-01-20T10:22:12Z red-dot quit (Read error: Connection reset by peer) 2018-01-20T10:22:25Z red-dot joined #lisp 2018-01-20T10:25:07Z fikka quit (Ping timeout: 265 seconds) 2018-01-20T10:38:23Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-20T10:39:33Z smurfrobot joined #lisp 2018-01-20T10:40:27Z jfb4 joined #lisp 2018-01-20T10:40:35Z eivarv quit (Quit: Sleep) 2018-01-20T10:41:15Z fikka joined #lisp 2018-01-20T10:45:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T10:46:55Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-20T10:48:58Z nirved joined #lisp 2018-01-20T10:51:41Z fikka joined #lisp 2018-01-20T10:51:59Z hexfive quit (Quit: WeeChat 1.9.1) 2018-01-20T10:56:52Z fikka quit (Ping timeout: 268 seconds) 2018-01-20T10:57:23Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-20T10:58:50Z FreeBird_ quit (Remote host closed the connection) 2018-01-20T10:59:29Z razzy` joined #lisp 2018-01-20T11:00:04Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T11:02:06Z fikka joined #lisp 2018-01-20T11:04:10Z smurfrobot joined #lisp 2018-01-20T11:06:20Z pjb joined #lisp 2018-01-20T11:06:52Z fikka quit (Ping timeout: 256 seconds) 2018-01-20T11:09:12Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-20T11:11:17Z beach: Here is a very very preliminary suggestion for the layout of different windows in Clordane. Comments are welcome. http://metamodular.com/fig-layout.pdf 2018-01-20T11:11:39Z fikka joined #lisp 2018-01-20T11:12:45Z beach: The backtrace window is present not only when an error has been signaled, but also when the program has stopped at a breakpoint. 2018-01-20T11:14:10Z beach: Time for a break. I'll read your possible comments when I get back. 2018-01-20T11:15:25Z phoe: I'd switch the REPL and the error message windows. Makes more sense when the left side is where all the trouble is, and the right side is there you can do stuff to fix it. 2018-01-20T11:16:05Z phoe: Or rather, the left side is immutable (the stack is read-only, so is the error message), the right side is mutable (you can edit code and evaluate things in the REPL). 2018-01-20T11:16:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T11:16:29Z Shinmera: I'd also move the message above the trace, since people usually care about the message first 2018-01-20T11:17:14Z beach: In general, there won't be any message. 2018-01-20T11:17:47Z phoe: It might be a SLIME influence, but I don't think I need a separate window for the error message. It can be printed above the stacktrace in its window, just as in the SLIME debugger. 2018-01-20T11:18:01Z beach: In general, there won't be any message. 2018-01-20T11:18:29Z phoe: What does the layout look like without any message, then? 2018-01-20T11:18:47Z Shinmera: When there /is/ a message I'd want it to pop in above the backtrace. 2018-01-20T11:19:02Z Achylles joined #lisp 2018-01-20T11:19:12Z beach: phoe: The space for the message would be empty. 2018-01-20T11:19:20Z beach: But yeah, I see your point. 2018-01-20T11:20:00Z phoe: I generally think people enjoy allocated but unused space on their screen as much as they enjoy allocated but unused space in their memory. 2018-01-20T11:20:18Z beach: The error message window could be a transient window above the backtrace. 2018-01-20T11:20:41Z red-dot joined #lisp 2018-01-20T11:20:46Z phoe: I see. Okay. 2018-01-20T11:21:53Z beach: Great. I'll work with that and come back with an improved suggestion. 2018-01-20T11:22:05Z beach: Now it is really time for a break. 2018-01-20T11:22:08Z fikka joined #lisp 2018-01-20T11:22:10Z rumbler31 joined #lisp 2018-01-20T11:22:47Z markong joined #lisp 2018-01-20T11:25:43Z turkja joined #lisp 2018-01-20T11:27:05Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-20T11:27:05Z fikka quit (Ping timeout: 268 seconds) 2018-01-20T11:30:13Z hhdave joined #lisp 2018-01-20T11:31:00Z hhdave quit (Client Quit) 2018-01-20T11:32:32Z fikka joined #lisp 2018-01-20T11:33:30Z eivarv joined #lisp 2018-01-20T11:36:47Z beach: http://metamodular.com/fig-layout.pdf 2018-01-20T11:36:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-20T11:42:08Z beach: Now with positions in the code shown in red. 2018-01-20T11:42:09Z fikka joined #lisp 2018-01-20T11:42:25Z damke_ joined #lisp 2018-01-20T11:45:21Z damke quit (Ping timeout: 264 seconds) 2018-01-20T11:47:38Z fikka quit (Ping timeout: 276 seconds) 2018-01-20T11:48:06Z Kevslinger joined #lisp 2018-01-20T11:48:15Z phoe: beach: I like that, I'd use that. 2018-01-20T11:51:18Z beach: Thanks. Now with the frame of the REPL marked: http://metamodular.com/fig-layout.pdf 2018-01-20T11:52:46Z damke joined #lisp 2018-01-20T11:55:10Z fikka joined #lisp 2018-01-20T11:55:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T12:00:16Z pjb: beach: often debuggers have a frame to show the values of variables and parameters. 2018-01-20T12:00:50Z phoe: sldb has it in the stacktrace. 2018-01-20T12:01:03Z phoe: or do you want a separate window that shows the variables and parameters in the current stack frame? 2018-01-20T12:03:12Z FreeBirdLjj joined #lisp 2018-01-20T12:06:36Z dddddd joined #lisp 2018-01-20T12:07:32Z damke_ joined #lisp 2018-01-20T12:09:22Z scymtym quit (Remote host closed the connection) 2018-01-20T12:09:57Z damke quit (Ping timeout: 264 seconds) 2018-01-20T12:13:19Z razzy` quit (Ping timeout: 248 seconds) 2018-01-20T12:20:27Z makomo quit (Ping timeout: 240 seconds) 2018-01-20T12:21:23Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T12:22:55Z milanj_ joined #lisp 2018-01-20T12:24:13Z zaquest quit (Remote host closed the connection) 2018-01-20T12:24:14Z papachan joined #lisp 2018-01-20T12:24:35Z eivarv quit (Ping timeout: 240 seconds) 2018-01-20T12:28:15Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T12:31:02Z smasta quit (Ping timeout: 255 seconds) 2018-01-20T12:37:25Z scymtym joined #lisp 2018-01-20T12:38:45Z pagnol joined #lisp 2018-01-20T12:39:15Z EvW joined #lisp 2018-01-20T12:42:26Z red-dot joined #lisp 2018-01-20T12:44:02Z fikka joined #lisp 2018-01-20T12:48:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T12:51:28Z Tobbi joined #lisp 2018-01-20T12:51:55Z ak5 joined #lisp 2018-01-20T12:54:07Z flip214: (OPEN #P".../..." :DIRECTION :OUTPUT :ELEMENT-TYPE BASE-CHAR :IF-EXISTS :SUPERSEDE :IF-DOES-NOT-EXIST :CREATE) but 2018-01-20T12:54:26Z fikka joined #lisp 2018-01-20T12:54:37Z flip214: Unhandled SIMPLE-FILE-ERROR "The path #P".../..." does not exist." 2018-01-20T12:54:38Z flip214: ? 2018-01-20T12:54:58Z wxie joined #lisp 2018-01-20T12:55:39Z flip214: hmmm, in the open call a "/" is prepended ... where is that from? 2018-01-20T12:57:04Z flip214: oh, (MAKE-PATHNAME "filename" :directory DIR) takes DIR to be absolute?! 2018-01-20T12:58:10Z alexmlw joined #lisp 2018-01-20T12:58:54Z smasta joined #lisp 2018-01-20T12:59:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T13:00:06Z beach: phoe: I am not sure. I was considering showing the value of a variable when it is hovered over by the pointer. 2018-01-20T13:01:08Z beach: phoe: Alternatively, show the live variables together with source near the source window. 2018-01-20T13:03:36Z smasta quit (Ping timeout: 256 seconds) 2018-01-20T13:05:55Z flip214: beach: the hovering thing becomes unwieldy if it's more than a simple atom.... 2018-01-20T13:06:16Z beach: Maybe so. 2018-01-20T13:06:17Z flip214: so some option to open a new (X11!) window with the variable inspected would be nice. 2018-01-20T13:06:30Z beach: Definitely. 2018-01-20T13:06:31Z flip214: that's what I did for slimv - open another gvim, and inspect the current thing there 2018-01-20T13:06:42Z shka joined #lisp 2018-01-20T13:06:57Z flip214: has the nice advantage that multiple such windows can be easily moved around and visually compared, eg. before/after code change etc. 2018-01-20T13:08:30Z wxie quit (Remote host closed the connection) 2018-01-20T13:08:45Z pagnol quit (Ping timeout: 260 seconds) 2018-01-20T13:10:43Z beach: I see. 2018-01-20T13:14:26Z fikka joined #lisp 2018-01-20T13:14:30Z pagnol joined #lisp 2018-01-20T13:18:55Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T13:20:57Z puchacz joined #lisp 2018-01-20T13:21:15Z puchacz: hi, can I declare type = list of characters for example? 2018-01-20T13:21:23Z beach: No 2018-01-20T13:21:25Z puchacz: something like (declare (list character) a) 2018-01-20T13:21:33Z puchacz: (declare (type (list character) a)) I mean 2018-01-20T13:21:44Z puchacz: beach, ok, tks 2018-01-20T13:23:29Z puchacz: but this one is OK, isn't it? (type (function (or character nil) (or character nil)) predicate) 2018-01-20T13:24:01Z puchacz: that a predicate is a function of two characters-or-nils 2018-01-20T13:24:42Z beach: Yes, it's OK. But I don't recall the exact syntax by heart. 2018-01-20T13:24:45Z flip214: puchacz: look at SATISFIES 2018-01-20T13:24:56Z puchacz: flip214, tks as well 2018-01-20T13:25:08Z flip214: clhs satisfies 2018-01-20T13:25:08Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_satisf.htm 2018-01-20T13:26:01Z beach: puchacz: I think you need a level of parentheses around the argument type specifiers. 2018-01-20T13:26:20Z puchacz: beach: compiler accepted it, but I have no way of knowing if it means anything to it 2018-01-20T13:26:48Z puchacz: it accepts it with extra parens as well 2018-01-20T13:26:52Z puchacz: hmmm 2018-01-20T13:27:15Z puchacz: (type (function ((or character nil) (or character nil))) predicate) 2018-01-20T13:27:36Z beach: Yes, I think that is right. 2018-01-20T13:27:42Z puchacz: ok, tks :) 2018-01-20T13:27:59Z beach: Look at the page for the system class FUNCTION. 2018-01-20T13:28:16Z beach: clhs function/system class 2018-01-20T13:28:33Z beach: Yeah, I didn't think so. 2018-01-20T13:30:25Z beach: Oh, and you need ftype rather than type. 2018-01-20T13:30:38Z puchacz: beach, where did you find it pls? 2018-01-20T13:30:43Z beach: Otherwise, it is going to take PREDICATE to be a variable. 2018-01-20T13:31:03Z beach: On the same page I told you about, there are examples. 2018-01-20T13:31:37Z puchacz: bot did not know about this page 2018-01-20T13:31:42Z beach: clhs 3.3.3 2018-01-20T13:31:42Z specbot: Declaration Identifiers: http://www.lispworks.com/reference/HyperSpec/Body/03_cc.htm 2018-01-20T13:31:48Z puchacz: tks 2018-01-20T13:32:03Z beach: clhs ftype 2018-01-20T13:32:03Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/d_ftype.htm 2018-01-20T13:32:38Z beach: The bot probably knows, but I don't know how to ask. 2018-01-20T13:32:54Z flip214: puchacz: try to get the function description (via swank, or DESCRIBE, etc.) 2018-01-20T13:32:58Z beach: Look at the entry for FUNCTION, then choose "system class". 2018-01-20T13:33:00Z flip214: that'll show the type definition as well 2018-01-20T13:33:26Z beach: clhs functon 2018-01-20T13:33:26Z specbot: Couldn't find anything for functon. 2018-01-20T13:33:29Z beach: clhs function 2018-01-20T13:33:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm 2018-01-20T13:34:48Z fikka joined #lisp 2018-01-20T13:35:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T13:39:12Z makomo joined #lisp 2018-01-20T13:39:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T13:45:20Z fikka joined #lisp 2018-01-20T13:50:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-20T13:52:54Z shrdlu68 joined #lisp 2018-01-20T13:53:06Z smasta joined #lisp 2018-01-20T13:54:57Z makomo quit (Ping timeout: 264 seconds) 2018-01-20T13:55:33Z fikka joined #lisp 2018-01-20T13:57:19Z smasta quit (Ping timeout: 248 seconds) 2018-01-20T13:59:33Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T14:00:38Z fikka quit (Ping timeout: 268 seconds) 2018-01-20T14:02:05Z ak5 quit (Read error: Connection reset by peer) 2018-01-20T14:06:58Z shrdlu68 quit (Ping timeout: 265 seconds) 2018-01-20T14:07:05Z ak5 joined #lisp 2018-01-20T14:07:23Z puchacz_ joined #lisp 2018-01-20T14:07:27Z puchacz quit (Ping timeout: 240 seconds) 2018-01-20T14:10:37Z shrdlu68 joined #lisp 2018-01-20T14:15:25Z fikka joined #lisp 2018-01-20T14:16:03Z brendyn quit (Ping timeout: 268 seconds) 2018-01-20T14:16:57Z damke_ joined #lisp 2018-01-20T14:17:36Z flip214: when creating a new file but stopping the process with Ctrl-C, the file gets removed again. 2018-01-20T14:17:53Z flip214: Is there a flag for W-O-F (resp. OPEN) to _leave_ the file in the filesystem? 2018-01-20T14:18:51Z flip214: Is that :RENAME-AND-DELETE instead of :SUPERSEDE? 2018-01-20T14:19:33Z flip214: ah yes, that's better. 2018-01-20T14:19:42Z flip214: I still need a handler to flush the file, though... 2018-01-20T14:20:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-20T14:23:06Z red-dot joined #lisp 2018-01-20T14:25:20Z EvW quit (Ping timeout: 255 seconds) 2018-01-20T14:29:18Z omilu joined #lisp 2018-01-20T14:29:31Z kjeldahl quit (Ping timeout: 240 seconds) 2018-01-20T14:34:07Z pagnol quit (Ping timeout: 248 seconds) 2018-01-20T14:35:45Z fikka joined #lisp 2018-01-20T14:38:09Z shifty quit (Ping timeout: 265 seconds) 2018-01-20T14:40:16Z phoe: puchacz_: not really 2018-01-20T14:40:27Z phoe: (or character null) instead of (or character nil) 2018-01-20T14:40:36Z puchacz_: phoe: yes, just discovered it :) 2018-01-20T14:40:37Z phoe: the type NIL contains nothing. 2018-01-20T14:40:56Z puchacz_: it did not compile function calls with nil with previous declaration 2018-01-20T14:41:11Z fikka quit (Ping timeout: 276 seconds) 2018-01-20T14:41:35Z puchacz_: by the way, can I create a package with functions named like unicode/string-downcase, and then import this package shadowing string-downcase from common lisp? 2018-01-20T14:42:57Z beach: You can shadow any name, but you are not allowed to redefine the Common Lisp function. Shadowing means you have the same SYMBOL-NAME but a different SYMBOL-PACKAGE for the names. 2018-01-20T14:43:19Z phoe: puchacz_: create FOO:SYMBOL-NAME and then (:shadowing-import-from #:foo #:symbol-name) 2018-01-20T14:43:40Z puchacz_: sorry, I don't understand 2018-01-20T14:43:58Z beach: phoe: It looked to me like puchacz_ wanted to replace the standard function. 2018-01-20T14:44:07Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-20T14:44:08Z puchacz_: is it even possible what I want, i.e. to have name like "string-downcase" to refer to different function? 2018-01-20T14:44:08Z phoe: beach: yes. 2018-01-20T14:44:14Z phoe: puchacz_: depends 2018-01-20T14:44:25Z phoe: CL:STRING-DOWNCASE cannot be redefined 2018-01-20T14:44:27Z phoe: BUT 2018-01-20T14:44:32Z puchacz_: the reason is that lispworks' standard string-downcase does not handle unicode 2018-01-20T14:44:35Z beach: puchacz_: The consequences of trying to do that are undefined. 2018-01-20T14:44:44Z phoe: you can import a symbol named STRING-DOWNCASE from another package. 2018-01-20T14:44:45Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-01-20T14:44:49Z phoe: and use this one. 2018-01-20T14:45:14Z shrdlu68 joined #lisp 2018-01-20T14:45:23Z puchacz_: if I do so, will unqualified symbol STRING-DOWNCASE in source file text refer to my function? 2018-01-20T14:45:27Z phoe: yes 2018-01-20T14:45:36Z phoe: (defpackage #:my-package (:use #:cl) (:shadowing-import-from #:foo #:string-downcase)) 2018-01-20T14:45:49Z phoe: then inside MY-PACKAGE, unqualified STRING-DOWNCASE will mean FOO:STRING-DOWNCASE 2018-01-20T14:45:54Z phoe: which is a symbol that you control. 2018-01-20T14:46:05Z puchacz_: is it defined by standard and therefore totally safe? 2018-01-20T14:46:10Z phoe: yes 2018-01-20T14:46:13Z puchacz_: ok, tks 2018-01-20T14:46:16Z phoe: it is absolutely portable code. 2018-01-20T14:54:13Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-20T14:54:35Z Achylles quit (Ping timeout: 255 seconds) 2018-01-20T14:56:02Z fikka joined #lisp 2018-01-20T15:00:53Z fikka quit (Ping timeout: 255 seconds) 2018-01-20T15:06:30Z fikka joined #lisp 2018-01-20T15:07:46Z eivarv joined #lisp 2018-01-20T15:08:35Z papachan quit (Ping timeout: 256 seconds) 2018-01-20T15:09:48Z makomo joined #lisp 2018-01-20T15:11:15Z fikka quit (Ping timeout: 265 seconds) 2018-01-20T15:13:42Z eivarv quit (Quit: Sleep) 2018-01-20T15:14:22Z rumbler31 joined #lisp 2018-01-20T15:15:10Z FreeBirdLjj joined #lisp 2018-01-20T15:16:29Z fikka joined #lisp 2018-01-20T15:20:11Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-20T15:21:03Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T15:22:34Z Achylles joined #lisp 2018-01-20T15:23:14Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T15:23:58Z eivarv joined #lisp 2018-01-20T15:24:03Z red-dot joined #lisp 2018-01-20T15:25:56Z FreeBirdLjj joined #lisp 2018-01-20T15:30:57Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-20T15:33:56Z rumbler31 quit (Remote host closed the connection) 2018-01-20T15:35:52Z Vicfred joined #lisp 2018-01-20T15:36:37Z fikka joined #lisp 2018-01-20T15:39:04Z varjag joined #lisp 2018-01-20T15:39:34Z Oladon quit (Read error: Connection reset by peer) 2018-01-20T15:39:35Z FreeBirdLjj joined #lisp 2018-01-20T15:40:09Z lnostdal joined #lisp 2018-01-20T15:40:15Z shrdlu68 quit (Ping timeout: 248 seconds) 2018-01-20T15:40:22Z Oladon joined #lisp 2018-01-20T15:40:37Z lnostdal quit (Remote host closed the connection) 2018-01-20T15:40:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T15:41:16Z smasta joined #lisp 2018-01-20T15:42:01Z shrdlu68 joined #lisp 2018-01-20T15:44:05Z FreeBirdLjj quit (Ping timeout: 255 seconds) 2018-01-20T15:45:12Z FreeBirdLjj joined #lisp 2018-01-20T15:45:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-20T15:47:00Z fikka joined #lisp 2018-01-20T15:50:20Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-20T15:50:27Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-20T15:51:47Z lnostdal joined #lisp 2018-01-20T15:52:05Z fikka quit (Ping timeout: 260 seconds) 2018-01-20T15:56:05Z FreeBirdLjj joined #lisp 2018-01-20T15:56:21Z fikka joined #lisp 2018-01-20T15:57:43Z shrdlu68 joined #lisp 2018-01-20T15:58:55Z makomo quit (Ping timeout: 248 seconds) 2018-01-20T16:00:58Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-20T16:02:02Z wigust quit (Read error: Connection reset by peer) 2018-01-20T16:05:06Z FreeBirdLjj joined #lisp 2018-01-20T16:07:38Z borodust: Xach: is that good enough README (i know it's not exactly very helpful) to get included into main quicklisp? https://github.com/borodust/claw#claw 2018-01-20T16:07:54Z borodust: *main dist 2018-01-20T16:08:12Z smurfrobot joined #lisp 2018-01-20T16:09:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-20T16:11:48Z wigust joined #lisp 2018-01-20T16:14:52Z phoe: borodust: Xach doesn't care if it has a readme 2018-01-20T16:15:20Z phoe: Xach cares if your project has the author/description/license fields filled in the ASD file and if it builds on SBCL x64 Linux without errors 2018-01-20T16:15:43Z borodust: phoe: well, the guide states that it should have one :) 2018-01-20T16:15:52Z jackdaniel: actually offical requirement is that it builds on "at least on two CL implementations" 2018-01-20T16:15:57Z borodust: exactly at the same line where author/description/license is mentioned :) 2018-01-20T16:16:03Z phoe: oh 2018-01-20T16:16:09Z phoe whistles innocently 2018-01-20T16:16:19Z borodust: i'm looking at http://blog.quicklisp.org/2015/01/getting-library-into-quicklisp.html 2018-01-20T16:16:29Z phoe: jackdaniel: then it was changed, it was just SBCL before since that's what Xach can test on. 2018-01-20T16:17:32Z makomo joined #lisp 2018-01-20T16:19:08Z JonSmith joined #lisp 2018-01-20T16:20:10Z FreeBirdLjj joined #lisp 2018-01-20T16:21:34Z BitPuffin joined #lisp 2018-01-20T16:24:10Z JonSmith quit (Remote host closed the connection) 2018-01-20T16:24:15Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T16:24:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-20T16:24:50Z red-dot joined #lisp 2018-01-20T16:27:30Z ikki joined #lisp 2018-01-20T16:28:43Z JonSmith joined #lisp 2018-01-20T16:29:11Z smurfrobot quit (Remote host closed the connection) 2018-01-20T16:30:01Z borodust: Xach: also, is that acceptable approach? https://github.com/borodust/chipmunk-blob 2018-01-20T16:30:29Z fikka quit (Ping timeout: 268 seconds) 2018-01-20T16:30:36Z borodust: Xach: this is still asdf library, it's just that it doesn't really contain author/description... 2018-01-20T16:31:43Z borodust: actually, i'll fix that 2018-01-20T16:31:47Z borodust: but still 2018-01-20T16:32:28Z FreeBirdLjj joined #lisp 2018-01-20T16:34:33Z rumbler31 joined #lisp 2018-01-20T16:37:00Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-20T16:38:29Z borodust: no, it's probably not... dammit 2018-01-20T16:39:26Z rumbler31 quit (Ping timeout: 255 seconds) 2018-01-20T16:39:48Z Arcaelyx joined #lisp 2018-01-20T16:39:56Z borodust: quicklisp doesn't install itself to handle requires 2018-01-20T16:43:33Z puchacz_: hi again, I wanted to have (:shadowing-import-from #:unicode-hack :#char-equal ... etc) as symbol-macro, but it is not expanded in defpackage form 2018-01-20T16:43:58Z puchacz_: neither is standard macro 2018-01-20T16:44:03Z beach: puchacz_: Symbol macros are expanded only in a context of evaluation. 2018-01-20T16:44:13Z FreeBirdLjj joined #lisp 2018-01-20T16:44:34Z beach: puchacz_: But you can use the #. reader macro perhaps. 2018-01-20T16:45:08Z puchacz_: how would it work? regular macro, but in defpackage form prefix it with #. like #.(expand-unicode-hack) ? 2018-01-20T16:45:27Z puchacz_: ah, READER macro. never done it :) 2018-01-20T16:45:46Z fikka joined #lisp 2018-01-20T16:45:47Z beach: #.(do-the-thing) 2018-01-20T16:45:49Z puchacz_: no, got you. sorry - rollback last comment 2018-01-20T16:45:51Z puchacz_: yeah 2018-01-20T16:46:09Z beach: where do-the-thing is a function that returns what you want. 2018-01-20T16:48:15Z puchacz_: it seems to work, tks beach 2018-01-20T16:48:23Z beach: Anytime. 2018-01-20T16:48:27Z puchacz_: ;-) 2018-01-20T16:48:53Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-20T16:52:18Z jonh joined #lisp 2018-01-20T16:53:30Z alexmlw quit (Quit: alexmlw) 2018-01-20T16:53:45Z alexmlw joined #lisp 2018-01-20T16:53:49Z alexmlw quit (Client Quit) 2018-01-20T16:57:51Z ebzzry: Is there a table that shows the benchmarks of the major CL implementations? 2018-01-20T17:00:40Z Vicfred quit (Quit: Leaving) 2018-01-20T17:02:11Z scymtym: ebzzry: http://lispm.de/lisp/benchmarks.html but most of the results are not very recent to say the least 2018-01-20T17:02:19Z EvW1 joined #lisp 2018-01-20T17:02:48Z puchacz_: sbcl 1.3, lispworks 7 - not bad 2018-01-20T17:02:53Z puchacz_: not that old I mean 2018-01-20T17:02:57Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-20T17:04:22Z shrdlu68 joined #lisp 2018-01-20T17:05:18Z ebzzry: scymtym: thanks! 2018-01-20T17:05:30Z shrdlu68 quit (Client Quit) 2018-01-20T17:08:03Z smasta joined #lisp 2018-01-20T17:11:26Z ebzzry: Which is generally faster nowadays, SBCL or CCL? 2018-01-20T17:11:52Z Shinmera: SBCL for resulting code, CCL for compilation. 2018-01-20T17:12:47Z phoe: SBCL for quick code, CCL for quick compilation time 2018-01-20T17:12:57Z phoe: the first is nice in deployment, the second is nice in development 2018-01-20T17:12:58Z Shinmera: That's literally what I said. 2018-01-20T17:13:01Z phoe: yep 2018-01-20T17:13:28Z phoe: but I'm using SBCL 100% of the time and never had too many issues with compilation times on SBCL. 2018-01-20T17:13:48Z Shinmera: Waiting minutes for ironclad to compile is a bother. 2018-01-20T17:13:55Z phoe: all I notice is, when I quickload a new system, or a system after a Quicklisp dist update, then it can take a minute or two-- this. 2018-01-20T17:13:59Z Shinmera: Even mid-sized projects suffer. 2018-01-20T17:14:06Z phoe: Luckily it happens rarely. 2018-01-20T17:15:00Z ebzzry: thanks 2018-01-20T17:15:49Z scymtym: since a few releases ago, SBCL should be substantially faster at compiling ironclad. faster than previous SBCL releases, that is. i don't know about CCL compiling ironclad 2018-01-20T17:16:53Z scymtym: also, choosing an implementation for development solely based on compilation speed seems ill-advised 2018-01-20T17:20:21Z phoe: ...this is dangerously heading towards a SBCL versus CCL debate 2018-01-20T17:20:27Z broccolistem joined #lisp 2018-01-20T17:25:03Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T17:26:19Z red-dot joined #lisp 2018-01-20T17:27:03Z JonSmith quit (Remote host closed the connection) 2018-01-20T17:30:56Z fikka quit (Ping timeout: 265 seconds) 2018-01-20T17:32:27Z turkja quit (Ping timeout: 240 seconds) 2018-01-20T17:32:36Z safe joined #lisp 2018-01-20T17:32:44Z jackdaniel: I use all three (ECL included) to ensure that I didn't rely on some implementation-specific behavior 2018-01-20T17:33:27Z jackdaniel: fwiw compilation time is important during development 2018-01-20T17:33:33Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-20T17:33:51Z Folkol joined #lisp 2018-01-20T17:35:27Z smasta quit (Ping timeout: 248 seconds) 2018-01-20T17:35:45Z rumbler31 joined #lisp 2018-01-20T17:36:05Z fikka joined #lisp 2018-01-20T17:37:21Z smurfrobot joined #lisp 2018-01-20T17:37:52Z drewc_ joined #lisp 2018-01-20T17:40:15Z drewc quit (Ping timeout: 248 seconds) 2018-01-20T17:40:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T17:40:35Z rumbler31 quit (Ping timeout: 276 seconds) 2018-01-20T17:41:51Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-20T17:42:47Z malice joined #lisp 2018-01-20T17:46:31Z fikka joined #lisp 2018-01-20T17:46:56Z scymtym quit (Ping timeout: 255 seconds) 2018-01-20T17:48:45Z safe quit (Read error: Connection reset by peer) 2018-01-20T17:51:27Z ebzzry quit (Ping timeout: 240 seconds) 2018-01-20T17:51:40Z fikka quit (Ping timeout: 260 seconds) 2018-01-20T17:51:50Z eazar001 joined #lisp 2018-01-20T17:54:12Z anunnaki joined #lisp 2018-01-20T17:56:38Z fikka joined #lisp 2018-01-20T17:57:12Z anunnaki is now known as vertigo 2018-01-20T17:58:07Z smasta joined #lisp 2018-01-20T18:01:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-20T18:04:40Z FreeBirdLjj joined #lisp 2018-01-20T18:06:00Z sonologico joined #lisp 2018-01-20T18:06:34Z stux|RC quit (Remote host closed the connection) 2018-01-20T18:09:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-20T18:10:52Z scymtym joined #lisp 2018-01-20T18:11:45Z FreeBirdLjj joined #lisp 2018-01-20T18:12:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-20T18:16:03Z chens``` joined #lisp 2018-01-20T18:16:09Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-20T18:16:47Z fikka joined #lisp 2018-01-20T18:17:25Z ak5 quit (Quit: WeeChat 2.0.1) 2018-01-20T18:19:05Z chens`` quit (Ping timeout: 240 seconds) 2018-01-20T18:20:31Z FreeBirdLjj joined #lisp 2018-01-20T18:21:10Z nika quit (Quit: Leaving...) 2018-01-20T18:22:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-20T18:23:57Z pagnol joined #lisp 2018-01-20T18:25:33Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-20T18:26:32Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T18:27:14Z fikka joined #lisp 2018-01-20T18:27:21Z ikki quit (Ping timeout: 264 seconds) 2018-01-20T18:27:40Z FreeBirdLjj joined #lisp 2018-01-20T18:27:41Z red-dot joined #lisp 2018-01-20T18:29:07Z earl-ducaine quit (Remote host closed the connection) 2018-01-20T18:30:35Z puchacz_: why use different lisps like SBCL and CCL? 2018-01-20T18:30:51Z smasta joined #lisp 2018-01-20T18:31:19Z malice: these aren't different lisps 2018-01-20T18:31:22Z malice: these are different compilers. 2018-01-20T18:31:43Z malice: Some of them excel at different things (e.g. SBCL isn't very good at debugging but generates quite fast code) 2018-01-20T18:32:06Z malice: Some are more popular than other, some might work at platform you need, plus personal preference. 2018-01-20T18:32:23Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-20T18:32:30Z puchacz_: so areas they differ are: debugging, deployment on different platforms, anything else that is important? 2018-01-20T18:33:46Z beach: puchacz_: Some Common Lisp implementation target specific application types. For example, ECL is good for communicating with C code, and Clasp is good for communicating with C++ code. 2018-01-20T18:34:25Z beach: puchacz_: Some others are extremely portable, like CLISP because they can function with a bytecode interpreter, so do not need to be retargeted for different architectures. 2018-01-20T18:34:26Z malice: Speed, interoperability with other languages, bugs, perhaps some OS interfaces, perhaps MOP implementations, implementation-dependant things and probably bunch of other I don't remember right now 2018-01-20T18:35:14Z malice: puchacz_: Is there some problem that motivates your questions? 2018-01-20T18:35:27Z puchacz_: malice: just looked up at SBCL vs CCL debate 2018-01-20T18:35:34Z puchacz_: and looked at benchmarks 2018-01-20T18:35:36Z puchacz_: the link 2018-01-20T18:36:24Z malice: The nice thing is that you have many different implementations, so you can just pick the one you like! 2018-01-20T18:36:59Z puchacz_: so from the benchmarks, I understand SBCL (because everybody uses it and quicklisp is checked against it AFAIK), lispworks (because it has stepper and it can deliver to many platforms) and ABCL (because you can script around java) 2018-01-20T18:37:00Z _death: you can also find hidden assumptions by trying your programs on different implementations 2018-01-20T18:37:02Z malice: Note that some implementations might be commercial and require payment, like LispWorks or Franz's compiler. 2018-01-20T18:37:10Z fikka quit (Ping timeout: 260 seconds) 2018-01-20T18:37:27Z rumbler31 joined #lisp 2018-01-20T18:37:51Z puchacz_: is clisp viable? last release 7 or 8 years ago 2018-01-20T18:38:59Z malice: Not really, I believe there was some effort to bring it up to date, but I'm not sure if that succeeded, though I may be wrong. 2018-01-20T18:39:48Z malice: Last time I tried to compile it, there were some errors. 2018-01-20T18:40:35Z drewc_ is now known as drewc 2018-01-20T18:40:54Z FreeBirdLjj joined #lisp 2018-01-20T18:42:20Z rumbler31 quit (Ping timeout: 276 seconds) 2018-01-20T18:42:56Z fikka joined #lisp 2018-01-20T18:45:12Z phoe: clisp has seen some recent commits, but unless you really need to use it, don't. 2018-01-20T18:45:19Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-20T18:46:46Z _death: clisp served me well in my first CL year or two 2018-01-20T18:47:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-20T18:48:42Z makomo joined #lisp 2018-01-20T18:54:51Z wheelsucker joined #lisp 2018-01-20T18:57:30Z makomo: hello everyone 2018-01-20T18:58:22Z fikka joined #lisp 2018-01-20T18:58:56Z jackdaniel: as an example: clisp is the only CL which runs on minix3, ecl is in fact libecl.so and you may attach CL (and introduce live recompilation) to C/C++ application and mezzano is a whole operating system which provides CL as the language to communicate with it 2018-01-20T18:59:52Z zazzerino joined #lisp 2018-01-20T19:01:05Z smasta quit (Ping timeout: 260 seconds) 2018-01-20T19:05:00Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-20T19:05:49Z stux|RC joined #lisp 2018-01-20T19:07:05Z red-dot quit (Read error: Connection reset by peer) 2018-01-20T19:07:17Z red-dot joined #lisp 2018-01-20T19:10:39Z malice: Is it incorrect to say that in CL you call a method? Should you say that you call a generic function instead? 2018-01-20T19:12:14Z Bike: calling a generic function is probably more correct, yeah 2018-01-20T19:12:31Z Bike: the trick is that any generic function call can involve multiple methods 2018-01-20T19:13:16Z malice: That's true. I also meant a general context; I am aware that e.g. #'call-next-method calls, in fact, a method, and not a gf. 2018-01-20T19:14:06Z phoe: you may call a method, sure, mop:method-function returns you something that you can funcall 2018-01-20T19:14:31Z phoe: but in most general cases you want to call GFs instead of specific methods. 2018-01-20T19:15:57Z malice: Right. Thanks. 2018-01-20T19:18:59Z JonSmith joined #lisp 2018-01-20T19:25:15Z drcode quit (Read error: Connection reset by peer) 2018-01-20T19:25:29Z JonSmith quit (Ping timeout: 265 seconds) 2018-01-20T19:28:20Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T19:29:07Z red-dot joined #lisp 2018-01-20T19:31:05Z pjb: puchacz_: why do you use clang instead of gcc? 2018-01-20T19:31:51Z eivarv quit (Quit: Sleep) 2018-01-20T19:32:07Z krwq joined #lisp 2018-01-20T19:32:50Z DeadTrickster quit (Remote host closed the connection) 2018-01-20T19:33:40Z puchacz_: pjb: I don't program in C or C++ :-) 2018-01-20T19:33:42Z puchacz_: so I use neither 2018-01-20T19:34:54Z Ven`` joined #lisp 2018-01-20T19:36:32Z DeadTrickster joined #lisp 2018-01-20T19:38:21Z Karl_Dscc quit (Remote host closed the connection) 2018-01-20T19:38:29Z eivarv joined #lisp 2018-01-20T19:39:45Z malice: MOP isn't part of CL spec, right? 2018-01-20T19:40:38Z shka: malice: right 2018-01-20T19:40:55Z shka: well, only minor parts are 2018-01-20T19:41:48Z fortitude is now known as fortitude_ 2018-01-20T19:42:08Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-20T19:42:37Z phoe: MOP isn't a part of the CL standard. 2018-01-20T19:42:41Z fortitude joined #lisp 2018-01-20T19:42:48Z phoe: But it is so useful that everyone* implements it anyway. 2018-01-20T19:42:53Z phoe: *for a sane definition of everyone 2018-01-20T19:43:41Z marusich left #lisp 2018-01-20T19:44:17Z marusich joined #lisp 2018-01-20T19:46:10Z Bike: the extent to which they implement it varies 2018-01-20T19:46:17Z Bike: method-function probably works most places, though 2018-01-20T19:47:00Z FreeBirdLjj joined #lisp 2018-01-20T19:49:09Z Bike: but calling a method by itself outside of a gf context is a weird th ing to do. 2018-01-20T19:51:35Z safe joined #lisp 2018-01-20T19:51:43Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-20T19:52:20Z eivarv quit (Quit: Sleep) 2018-01-20T19:54:07Z Achylles quit (Ping timeout: 248 seconds) 2018-01-20T19:54:37Z zaquest joined #lisp 2018-01-20T19:56:01Z FreeBirdLjj joined #lisp 2018-01-20T19:57:20Z LocaMocha is now known as Sauviun 2018-01-20T19:57:26Z Sauviun is now known as Sauvin 2018-01-20T19:59:30Z fortitude__ joined #lisp 2018-01-20T20:00:46Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-20T20:00:51Z zazzerino quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-01-20T20:01:22Z damke joined #lisp 2018-01-20T20:01:40Z zazzerino joined #lisp 2018-01-20T20:02:35Z fortitude quit (Ping timeout: 240 seconds) 2018-01-20T20:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-20T20:07:43Z ckonstanski quit (Quit: bye) 2018-01-20T20:08:34Z ckonstanski joined #lisp 2018-01-20T20:10:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T20:10:54Z FreeBirdLjj joined #lisp 2018-01-20T20:11:00Z fortitude joined #lisp 2018-01-20T20:13:46Z eivarv joined #lisp 2018-01-20T20:13:49Z fortitude__ quit (Ping timeout: 265 seconds) 2018-01-20T20:14:40Z EvW joined #lisp 2018-01-20T20:15:24Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-20T20:19:25Z ikki joined #lisp 2018-01-20T20:20:05Z mishoo quit (Ping timeout: 240 seconds) 2018-01-20T20:21:19Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-20T20:21:38Z krwq quit (Remote host closed the connection) 2018-01-20T20:22:51Z FreeBirdLjj joined #lisp 2018-01-20T20:23:09Z fikka joined #lisp 2018-01-20T20:25:57Z fortitude quit (Ping timeout: 240 seconds) 2018-01-20T20:27:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-20T20:27:54Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-20T20:29:35Z FreeBirdLjj joined #lisp 2018-01-20T20:29:49Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T20:30:27Z red-dot joined #lisp 2018-01-20T20:32:11Z jfb4 quit (Ping timeout: 265 seconds) 2018-01-20T20:33:24Z vlatkoB quit (Remote host closed the connection) 2018-01-20T20:33:39Z fikka joined #lisp 2018-01-20T20:33:50Z jfb4 joined #lisp 2018-01-20T20:34:08Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-20T20:34:47Z eivarv quit (Ping timeout: 255 seconds) 2018-01-20T20:38:11Z fikka quit (Ping timeout: 256 seconds) 2018-01-20T20:39:28Z ikki quit (Ping timeout: 248 seconds) 2018-01-20T20:43:38Z fikka joined #lisp 2018-01-20T20:43:57Z dieggsy joined #lisp 2018-01-20T20:47:49Z dieggsy quit (Remote host closed the connection) 2018-01-20T20:49:29Z eivarv joined #lisp 2018-01-20T20:53:03Z EvW quit (Remote host closed the connection) 2018-01-20T20:53:15Z EvW1 joined #lisp 2018-01-20T20:57:47Z knobo3 joined #lisp 2018-01-20T21:00:27Z knobo2 quit (Ping timeout: 240 seconds) 2018-01-20T21:00:27Z BitPuffin quit (Remote host closed the connection) 2018-01-20T21:00:35Z puchacz_ is now known as puchacz 2018-01-20T21:00:44Z puchacz quit (Quit: Konversation terminated!) 2018-01-20T21:01:14Z ikki joined #lisp 2018-01-20T21:03:57Z stux|RC quit (Ping timeout: 240 seconds) 2018-01-20T21:04:36Z Jesin joined #lisp 2018-01-20T21:05:59Z dieggsy joined #lisp 2018-01-20T21:07:28Z stux|RC joined #lisp 2018-01-20T21:08:30Z dented42 joined #lisp 2018-01-20T21:10:40Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-20T21:14:46Z jfb4 quit (Ping timeout: 268 seconds) 2018-01-20T21:16:06Z jfb4 joined #lisp 2018-01-20T21:18:17Z warweasle joined #lisp 2018-01-20T21:21:16Z JonSmith joined #lisp 2018-01-20T21:25:11Z jfb4 quit (Ping timeout: 255 seconds) 2018-01-20T21:26:08Z JonSmith quit (Ping timeout: 276 seconds) 2018-01-20T21:26:52Z Folkol quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-20T21:26:53Z jfb4 joined #lisp 2018-01-20T21:27:29Z Folkol joined #lisp 2018-01-20T21:30:01Z smurfrobot joined #lisp 2018-01-20T21:30:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T21:31:55Z red-dot joined #lisp 2018-01-20T21:34:46Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-20T21:35:07Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-20T21:38:39Z ikki quit (Ping timeout: 248 seconds) 2018-01-20T21:44:50Z marusich quit (Quit: Leaving) 2018-01-20T21:51:32Z raynold quit (Quit: Connection closed for inactivity) 2018-01-20T21:52:25Z fikka quit (Ping timeout: 265 seconds) 2018-01-20T21:54:07Z krwq joined #lisp 2018-01-20T21:55:23Z fikka joined #lisp 2018-01-20T21:55:53Z mishoo joined #lisp 2018-01-20T22:03:01Z wmannis joined #lisp 2018-01-20T22:04:07Z motersen joined #lisp 2018-01-20T22:05:40Z angular_mike quit (*.net *.split) 2018-01-20T22:05:41Z dim quit (*.net *.split) 2018-01-20T22:05:42Z antoszka quit (*.net *.split) 2018-01-20T22:05:43Z Blkt quit (*.net *.split) 2018-01-20T22:05:43Z gabiruh quit (*.net *.split) 2018-01-20T22:05:43Z equalunique[m] quit (*.net *.split) 2018-01-20T22:05:43Z Zhivago quit (*.net *.split) 2018-01-20T22:05:45Z hiq[m] quit (*.net *.split) 2018-01-20T22:05:46Z bailon quit (*.net *.split) 2018-01-20T22:05:47Z ym quit (*.net *.split) 2018-01-20T22:05:49Z kilimanjaro quit (*.net *.split) 2018-01-20T22:05:49Z tazjin quit (*.net *.split) 2018-01-20T22:05:49Z tfb quit (*.net *.split) 2018-01-20T22:05:49Z asedeno quit (*.net *.split) 2018-01-20T22:05:50Z gbyers quit (*.net *.split) 2018-01-20T22:05:50Z trig-ger quit (*.net *.split) 2018-01-20T22:05:51Z XachX quit (*.net *.split) 2018-01-20T22:05:51Z gz_ quit (*.net *.split) 2018-01-20T22:05:51Z danlentz quit (*.net *.split) 2018-01-20T22:05:51Z johs quit (*.net *.split) 2018-01-20T22:05:52Z shenghi quit (*.net *.split) 2018-01-20T22:05:52Z rjeli quit (*.net *.split) 2018-01-20T22:05:53Z xristos quit (*.net *.split) 2018-01-20T22:05:55Z rjeli_ joined #lisp 2018-01-20T22:05:56Z gabiruh_ joined #lisp 2018-01-20T22:05:56Z Zhivago joined #lisp 2018-01-20T22:05:57Z Blkt joined #lisp 2018-01-20T22:05:59Z bailon joined #lisp 2018-01-20T22:06:05Z shenghi joined #lisp 2018-01-20T22:06:07Z antoszka joined #lisp 2018-01-20T22:06:19Z trig-ger joined #lisp 2018-01-20T22:06:23Z asedeno joined #lisp 2018-01-20T22:06:24Z johs joined #lisp 2018-01-20T22:06:27Z tazjin joined #lisp 2018-01-20T22:06:27Z danlentz joined #lisp 2018-01-20T22:06:34Z gz_ joined #lisp 2018-01-20T22:06:40Z gbyers joined #lisp 2018-01-20T22:06:45Z tfb joined #lisp 2018-01-20T22:06:51Z kilimanjaro joined #lisp 2018-01-20T22:07:01Z XachX joined #lisp 2018-01-20T22:07:06Z dim joined #lisp 2018-01-20T22:07:30Z angular_mike joined #lisp 2018-01-20T22:07:57Z stux|RC quit (Ping timeout: 240 seconds) 2018-01-20T22:08:21Z thinkpad quit (Ping timeout: 260 seconds) 2018-01-20T22:08:38Z thinkpad joined #lisp 2018-01-20T22:09:07Z eazar001 quit (Quit: WeeChat 2.0.1) 2018-01-20T22:09:10Z hiq[m] joined #lisp 2018-01-20T22:09:40Z equalunique[m] joined #lisp 2018-01-20T22:11:02Z stux|RC joined #lisp 2018-01-20T22:12:11Z ryan_ joined #lisp 2018-01-20T22:13:38Z wigust- joined #lisp 2018-01-20T22:14:23Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-20T22:15:57Z wigust quit (Ping timeout: 240 seconds) 2018-01-20T22:16:28Z jfb4 joined #lisp 2018-01-20T22:16:57Z shifty joined #lisp 2018-01-20T22:17:22Z Pixel_Outlaw joined #lisp 2018-01-20T22:18:13Z Ryan_Burnside joined #lisp 2018-01-20T22:18:32Z Ryan_Burnside quit (Client Quit) 2018-01-20T22:18:37Z Pixel_Outlaw quit (Client Quit) 2018-01-20T22:18:39Z ryan_ left #lisp 2018-01-20T22:19:03Z Pixel_Outlaw joined #lisp 2018-01-20T22:21:19Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-20T22:21:51Z wigust- quit (Ping timeout: 248 seconds) 2018-01-20T22:21:55Z Pixel_Outlaw quit (Client Quit) 2018-01-20T22:22:16Z Pixel_Outlaw joined #lisp 2018-01-20T22:23:09Z jfb4 joined #lisp 2018-01-20T22:29:20Z fikka quit (Ping timeout: 248 seconds) 2018-01-20T22:32:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T22:32:51Z fikka joined #lisp 2018-01-20T22:33:15Z red-dot joined #lisp 2018-01-20T22:33:58Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-20T22:34:07Z msb quit (Ping timeout: 248 seconds) 2018-01-20T22:35:11Z DeadTrickster joined #lisp 2018-01-20T22:35:29Z motersen quit (Ping timeout: 256 seconds) 2018-01-20T22:36:27Z msb joined #lisp 2018-01-20T22:37:51Z knobo3 quit (Ping timeout: 248 seconds) 2018-01-20T22:39:11Z knobo3 joined #lisp 2018-01-20T22:41:46Z EvW1 left #lisp 2018-01-20T22:42:06Z EvW1 joined #lisp 2018-01-20T22:44:47Z shka quit (Ping timeout: 248 seconds) 2018-01-20T22:45:40Z knobo3 quit (Ping timeout: 260 seconds) 2018-01-20T22:56:00Z shifty quit (Ping timeout: 248 seconds) 2018-01-20T22:58:13Z xrash joined #lisp 2018-01-20T22:58:23Z cpape quit (Remote host closed the connection) 2018-01-20T22:58:41Z cpape joined #lisp 2018-01-20T22:58:45Z arrsim quit (Ping timeout: 246 seconds) 2018-01-20T22:59:00Z alms_clozure quit (Read error: Connection reset by peer) 2018-01-20T22:59:06Z convexferret quit (Ping timeout: 246 seconds) 2018-01-20T22:59:18Z alms_clozure joined #lisp 2018-01-20T22:59:49Z Lord_of_Life quit (Ping timeout: 246 seconds) 2018-01-20T22:59:55Z argoneus quit (Quit: No Ping reply in 180 seconds.) 2018-01-20T23:00:03Z _whitelogger_ quit (Remote host closed the connection) 2018-01-20T23:00:55Z GGMethos quit (Ping timeout: 246 seconds) 2018-01-20T23:00:55Z gko quit (Ping timeout: 246 seconds) 2018-01-20T23:01:03Z argoneus joined #lisp 2018-01-20T23:01:12Z hiq[m] quit (Ping timeout: 246 seconds) 2018-01-20T23:01:13Z Riviera- quit (Ping timeout: 246 seconds) 2018-01-20T23:01:20Z damke_ joined #lisp 2018-01-20T23:01:33Z equalunique[m] quit (Ping timeout: 246 seconds) 2018-01-20T23:01:33Z Jach[m] quit (Ping timeout: 246 seconds) 2018-01-20T23:01:34Z CharlieBrown quit (Ping timeout: 246 seconds) 2018-01-20T23:01:53Z random-nick quit (Remote host closed the connection) 2018-01-20T23:02:16Z _whitelogger joined #lisp 2018-01-20T23:02:24Z GGMethos joined #lisp 2018-01-20T23:02:44Z Riviera- joined #lisp 2018-01-20T23:03:09Z gko joined #lisp 2018-01-20T23:03:25Z arrsim joined #lisp 2018-01-20T23:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-20T23:04:13Z CharlieBrown joined #lisp 2018-01-20T23:04:44Z Jach[m] joined #lisp 2018-01-20T23:04:46Z hiq[m] joined #lisp 2018-01-20T23:05:33Z random-nick joined #lisp 2018-01-20T23:05:35Z JonSmith joined #lisp 2018-01-20T23:06:16Z equalunique[m] joined #lisp 2018-01-20T23:07:58Z MrBismuth joined #lisp 2018-01-20T23:08:33Z Lord_of_Life joined #lisp 2018-01-20T23:08:51Z JuanDaugherty joined #lisp 2018-01-20T23:10:08Z JonSmith quit (Ping timeout: 276 seconds) 2018-01-20T23:10:56Z MrBusiness quit (Ping timeout: 255 seconds) 2018-01-20T23:15:14Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-20T23:15:40Z JuanDaugherty joined #lisp 2018-01-20T23:24:14Z nirved quit (Quit: Leaving) 2018-01-20T23:25:42Z pagnol quit (Ping timeout: 265 seconds) 2018-01-20T23:25:59Z pagnol joined #lisp 2018-01-20T23:26:28Z kjeldahl joined #lisp 2018-01-20T23:26:56Z mishoo quit (Ping timeout: 256 seconds) 2018-01-20T23:32:20Z antonv joined #lisp 2018-01-20T23:32:43Z antonv: can anyone point me to examples of UDP programming in CL? (usocket or whatever?) 2018-01-20T23:32:44Z antonv is now known as Guest65797 2018-01-20T23:33:28Z Guest65797: trying for an hour - everything fails 2018-01-20T23:33:46Z Guest65797: usocket:socket-server is an undefined function 2018-01-20T23:33:51Z Guest65797: despite mentioned in the docs 2018-01-20T23:33:57Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-20T23:34:41Z red-dot joined #lisp 2018-01-20T23:35:09Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-20T23:36:38Z warweasle quit (Quit: Leaving) 2018-01-20T23:36:52Z dilated_dinosaur quit (Quit: Leaving) 2018-01-20T23:37:21Z Xach: Guest65797: you have to load a thing 2018-01-20T23:37:38Z Xach: Yes, the thing to load is usocket-server 2018-01-20T23:37:40Z Guest65797: loaded! 2018-01-20T23:37:50Z Guest65797: usocket-server? 2018-01-20T23:37:51Z FreeBirdLjj joined #lisp 2018-01-20T23:37:56Z Guest65797: separate asdf system? 2018-01-20T23:37:59Z Xach: yes 2018-01-20T23:38:03Z Xach: This is a New thing 2018-01-20T23:38:03Z Guest65797: thanks! 2018-01-20T23:38:26Z Xach: i scratched my head nearly bald last time around trying to figure it out 2018-01-20T23:38:33Z Xach: but thankfully some of my hair has grown back now 2018-01-20T23:40:28Z Guest65797: Xach: can you recommend and example how to receive a udp packet? 2018-01-20T23:40:33Z Guest65797: and print it? 2018-01-20T23:40:43Z Guest65797: on a multicast address 2018-01-20T23:40:54Z Guest65797: "239.255.255.250" 1900 2018-01-20T23:41:29Z Xach: Guest65797: If I were faced with that task, i would do "man 7 udp" and try to translate. 2018-01-20T23:41:54Z Guest65797: how close the usocket API to BSD sockets? 2018-01-20T23:42:06Z Xach: I don't know, sorry 2018-01-20T23:42:50Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-20T23:45:20Z jmercouris joined #lisp 2018-01-20T23:45:49Z jmercouris: rme did you get a chance to try ffigen? 2018-01-20T23:47:30Z krwq quit (Remote host closed the connection) 2018-01-20T23:52:34Z jmercouris quit (Ping timeout: 260 seconds) 2018-01-20T23:52:48Z FreeBirdLjj joined #lisp 2018-01-20T23:52:57Z dilated_dinosaur joined #lisp 2018-01-20T23:54:48Z jmercouris joined #lisp 2018-01-20T23:55:26Z jmercouris quit (Client Quit) 2018-01-20T23:56:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-20T23:57:54Z lemonpepper24 joined #lisp 2018-01-20T23:59:25Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T00:00:01Z kozy quit (Remote host closed the connection) 2018-01-21T00:00:15Z FreeBirdLjj joined #lisp 2018-01-21T00:00:50Z kozy joined #lisp 2018-01-21T00:00:53Z cess11_ quit (Ping timeout: 255 seconds) 2018-01-21T00:05:35Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-21T00:05:51Z heurist quit (Ping timeout: 248 seconds) 2018-01-21T00:07:13Z heurist joined #lisp 2018-01-21T00:09:22Z FreeBirdLjj joined #lisp 2018-01-21T00:10:50Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T00:12:25Z Guest65797 quit (Ping timeout: 260 seconds) 2018-01-21T00:14:20Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-21T00:15:14Z FreeBirdLjj joined #lisp 2018-01-21T00:15:50Z damke joined #lisp 2018-01-21T00:16:19Z zazzerino quit (Remote host closed the connection) 2018-01-21T00:16:41Z fikka joined #lisp 2018-01-21T00:18:40Z random-nick quit (Remote host closed the connection) 2018-01-21T00:18:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T00:19:43Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-21T00:20:18Z zazzerino joined #lisp 2018-01-21T00:20:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T00:24:34Z SAL9000 quit (Quit: ZNC - http://znc.in) 2018-01-21T00:24:36Z FreeBirdLjj joined #lisp 2018-01-21T00:24:42Z SAL9000 joined #lisp 2018-01-21T00:26:42Z fikka joined #lisp 2018-01-21T00:27:40Z wxie joined #lisp 2018-01-21T00:29:03Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-21T00:30:39Z FreeBirdLjj joined #lisp 2018-01-21T00:31:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T00:34:41Z whoman joined #lisp 2018-01-21T00:35:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-21T00:35:41Z wxie quit (Quit: Bye.) 2018-01-21T00:36:59Z fikka joined #lisp 2018-01-21T00:40:00Z FreeBirdLjj joined #lisp 2018-01-21T00:41:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T00:41:58Z Achylles joined #lisp 2018-01-21T00:44:41Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-21T00:45:23Z razzy quit (Changing host) 2018-01-21T00:45:23Z razzy joined #lisp 2018-01-21T00:45:30Z brendyn joined #lisp 2018-01-21T00:46:01Z openthesky joined #lisp 2018-01-21T00:47:02Z fikka joined #lisp 2018-01-21T00:47:41Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-21T00:48:05Z malice quit (Remote host closed the connection) 2018-01-21T00:51:33Z FreeBirdLjj joined #lisp 2018-01-21T00:51:43Z fikka quit (Ping timeout: 248 seconds) 2018-01-21T00:52:11Z fiddlerwoaroof_: ping 2018-01-21T00:52:51Z wmannis quit (Quit: wmannis) 2018-01-21T00:54:14Z jmercouris joined #lisp 2018-01-21T00:55:08Z jmercouris: fiddlerwoaroof_: pong 2018-01-21T00:55:23Z jmercouris: fiddlerwoaroof_: How's your bridge going? 2018-01-21T00:56:26Z convexferret joined #lisp 2018-01-21T00:56:45Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-21T00:59:11Z Achylles quit (Ping timeout: 248 seconds) 2018-01-21T01:02:20Z FreeBirdLjj joined #lisp 2018-01-21T01:03:45Z vap1 joined #lisp 2018-01-21T01:05:38Z lemonpepper24 quit (Remote host closed the connection) 2018-01-21T01:06:03Z wmannis joined #lisp 2018-01-21T01:06:07Z msb quit (Ping timeout: 248 seconds) 2018-01-21T01:07:13Z fikka joined #lisp 2018-01-21T01:07:15Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-21T01:07:15Z vaporatorius quit (Ping timeout: 268 seconds) 2018-01-21T01:07:28Z dented42 joined #lisp 2018-01-21T01:07:34Z msb joined #lisp 2018-01-21T01:12:11Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T01:19:01Z Oladon quit (Quit: Leaving.) 2018-01-21T01:22:04Z FreeBirdLjj joined #lisp 2018-01-21T01:24:44Z wmannis quit (Quit: wmannis) 2018-01-21T01:26:23Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-21T01:27:20Z iqubic joined #lisp 2018-01-21T01:27:28Z fikka joined #lisp 2018-01-21T01:28:50Z markong quit (Ping timeout: 268 seconds) 2018-01-21T01:29:22Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-21T01:29:32Z FreeBirdLjj joined #lisp 2018-01-21T01:29:59Z iqubic: Anyone here? 2018-01-21T01:30:08Z iqubic: Or is it an empty room? 2018-01-21T01:30:29Z smurfrobot joined #lisp 2018-01-21T01:31:01Z jmercouris: Yes 2018-01-21T01:31:10Z jmercouris: What makes you think it is an empty room? 2018-01-21T01:31:30Z iqubic: No one was talking at all. 2018-01-21T01:31:36Z jmercouris: Well, it is a saturday night 2018-01-21T01:31:40Z jmercouris: I was about to leave to go out myself 2018-01-21T01:31:47Z pierpa joined #lisp 2018-01-21T01:32:16Z iqubic: Oh. I see. Most people want to hit the town. 2018-01-21T01:32:17Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T01:32:38Z fortitude joined #lisp 2018-01-21T01:32:43Z jmercouris: Yeah, why not :) 2018-01-21T01:32:50Z jmercouris: this is our chance to be O/T since no one else is around 2018-01-21T01:33:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-21T01:34:34Z damke_ joined #lisp 2018-01-21T01:34:46Z dddddd quit (Remote host closed the connection) 2018-01-21T01:34:50Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-21T01:36:21Z damke quit (Ping timeout: 264 seconds) 2018-01-21T01:36:21Z dieggsy quit (Remote host closed the connection) 2018-01-21T01:37:25Z dieggsy joined #lisp 2018-01-21T01:37:53Z fikka joined #lisp 2018-01-21T01:38:03Z proteanthread joined #lisp 2018-01-21T01:39:37Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T01:40:29Z FreeBirdLjj joined #lisp 2018-01-21T01:42:33Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T01:42:33Z dented42 joined #lisp 2018-01-21T01:43:50Z iqubic: I see. So, if want to learn Lisp, how should I start. 2018-01-21T01:43:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-21T01:44:17Z iqubic: I'm using Emacs as my development environment, so I think that'll help me. 2018-01-21T01:44:17Z turkja joined #lisp 2018-01-21T01:45:03Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-21T01:45:07Z jmercouris: Well, that's a tough question 2018-01-21T01:45:11Z jmercouris: what's your ultimate goal? 2018-01-21T01:45:20Z jmercouris: Simply learning lisp? or do you have some application in mind? 2018-01-21T01:45:27Z Bike: install slime if you haven't. write a bunch of programs 2018-01-21T01:45:54Z jmercouris: If you want to start with a "premade" emacs so you don't have to faff around with emacs in the beginning, you can look at portacle https://portacle.github.io 2018-01-21T01:46:37Z jmercouris: If you want to see a very simple lisp configuration, you can see mine: https://github.com/jmercouris/configuration/blob/master/.emacs.d/develop/_lisp.el 2018-01-21T01:46:47Z jmercouris: You can also see the hydra I use for lisp programming: https://github.com/jmercouris/configuration/blob/master/.emacs.d/hydra.el#L603 2018-01-21T01:47:52Z jmercouris: Here's the very very high level description, 1. Install a Lisp implementation of your choice 2. Install setup slime for emacs/your implementation 3. Install quicklisp 4. Install/setup Paredit 5. Install/setup Smartparens 6. Get started learning 2018-01-21T01:48:30Z jmercouris: Bike: I have a question for you if you have a moment 2018-01-21T01:48:36Z Bike: shoot 2018-01-21T01:48:57Z jmercouris: It's also kind of an opinion question 2018-01-21T01:49:09Z jmercouris: I have this macro I use: https://github.com/next-browser/next/blob/master/next/source/command.lisp#L25 2018-01-21T01:49:19Z jmercouris: that is effectively designed for "interactive" functions (using emacs terminology) 2018-01-21T01:49:25Z jmercouris: e.g. functions that are M-x invokable 2018-01-21T01:49:39Z Bike: you don't need that make-condition call 2018-01-21T01:50:06Z jmercouris: before we go off on that tangent let me finish this thought 2018-01-21T01:50:11Z jmercouris: otherwise I will forget what I was going to ask 2018-01-21T01:50:15Z Bike: yeah sure, just a small note 2018-01-21T01:50:37Z jmercouris: so I was thinking wouldn't it be cool to combine some sort of ability to embed a (with-buffer) macro inside? 2018-01-21T01:50:44Z jmercouris: Imagine the syntax could look liek this 2018-01-21T01:51:14Z jmercouris: (defcommand some-command-name "Some-docstring of sorts" \n :with-active-buffer \n (body...)) 2018-01-21T01:51:19Z jmercouris: What do you think? is this a stupid looking syntax? 2018-01-21T01:51:39Z jmercouris: I just don't want to have people needing to manually form closures every time they wish to work with a buffer for the duration of a function 2018-01-21T01:51:40Z plll[m]: Anyone running lisp on the beaglebone black? Couldn't find sbcl in the Debian repos 2018-01-21T01:51:48Z jmercouris: because the *active-buffer* may change during the execution of the function 2018-01-21T01:52:16Z Bike: well, i'm not sure i understand what this active buffer thing is, but i'd say if you're going to add options you should have a dedicated list for it in the syntax, rather than picking them out of the body 2018-01-21T01:52:21Z iqubic: So what's the best way to set up emacs for Lisp coding? 2018-01-21T01:52:37Z jmercouris: iqubic: Did you read any of what I wrote? 2018-01-21T01:52:43Z iqubic: Not yet. 2018-01-21T01:52:51Z Bike: install slime (from melpa, or there's quicklisp-slime-helper), and that's it 2018-01-21T01:52:52Z jmercouris: GO ahead and read it, you'll find the solution there :) 2018-01-21T01:53:16Z jmercouris: Bike: What do you mean by a dedicated list? 2018-01-21T01:53:19Z jmercouris: where would this list reside? 2018-01-21T01:53:29Z iqubic: What is paredit, and smartparens? 2018-01-21T01:53:29Z jmercouris: Something like (defcommand (special-list) (normal-args-list))? 2018-01-21T01:53:34Z Bike: yeah. 2018-01-21T01:53:42Z iqubic: I have smartparens set-up, I think. 2018-01-21T01:53:52Z jmercouris: iqubic: Smartparens highlights parens 2018-01-21T01:53:59Z Bike: so you'd have (:with-active-buffer). or just () 2018-01-21T01:54:03Z jmercouris: iqubic: Paredit lets you do nice functions, you'll need it later 2018-01-21T01:54:03Z iqubic: Yeah, I have that set-up. 2018-01-21T01:54:14Z jmercouris: Ignore paredit for now 2018-01-21T01:54:19Z eivarv quit (Quit: Sleep) 2018-01-21T01:54:20Z jmercouris: just install an implementation and slime on your machine 2018-01-21T01:54:20Z iqubic: does paredit work with evil? 2018-01-21T01:54:21Z jmercouris: then M-x slime 2018-01-21T01:54:29Z jmercouris: iqubic: probably 2018-01-21T01:54:34Z jmercouris: I don't see why not 2018-01-21T01:54:58Z jmercouris: Bike: Ok, thanks for the advice, I'll think about it 2018-01-21T01:55:11Z jmercouris: I think I should use the defcommand a lot, and see what kind of patterns emerge, and then write a macro to handle these common patterns 2018-01-21T01:55:13Z FreeBirdLjj joined #lisp 2018-01-21T01:55:22Z Bike: sorry i don't get the buffer thing, i don't have much context for your program and i don't do that much emacs programming 2018-01-21T01:55:24Z jmercouris: e.g. do I find myself always forming closures around the active buffer, if so, make it one of those options 2018-01-21T01:55:35Z jmercouris: Bike: No, it's fine, it's just a detail 2018-01-21T01:55:38Z iqubic: I now have sbcl installed. What next? 2018-01-21T01:55:41Z iqubic: Quicklisp? 2018-01-21T01:55:49Z Bike: sure. 2018-01-21T01:55:51Z jmercouris: Bike: The whole point is that I'll have repetitive code within defcommands 2018-01-21T01:56:01Z jmercouris: and I was thinking of how to structure that for the end user 2018-01-21T01:56:04Z Bike: the other option is of course defining another macro 2018-01-21T01:56:10Z Bike: defcommand-with-active-buffer or somethin 2018-01-21T01:56:13Z iqubic: How do I install quicklisp? 2018-01-21T01:56:23Z iqubic: with this: 2018-01-21T01:56:24Z jmercouris: Yeah, but idk, not a huge fan of that 2018-01-21T01:56:25Z iqubic: https://www.quicklisp.org/beta/ 2018-01-21T01:56:30Z Bike: yep, follow those directions 2018-01-21T01:56:35Z jmercouris: iqubic: Please read the directions 2018-01-21T01:57:04Z iqubic: How do I load a .lisp file with sbcl? 2018-01-21T01:57:13Z jmercouris: iqubic: C-c C-l I think 2018-01-21T01:57:18Z Bike: that's in slime. 2018-01-21T01:57:27Z jmercouris: Ah yeah, shit, I assume he had it running 2018-01-21T01:57:30Z jmercouris: It should just be load 2018-01-21T01:57:30Z Bike: if you haven't got slime set up, just start up sbcl and (load "whatever.lisp") 2018-01-21T01:57:33Z jmercouris: clhs load 2018-01-21T01:57:33Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_load.htm 2018-01-21T01:57:56Z fikka joined #lisp 2018-01-21T01:58:07Z orivej joined #lisp 2018-01-21T01:58:24Z jmercouris: Bike: Did I ask this many questions when I first started :D? 2018-01-21T01:58:26Z jmercouris: I honestly can't remember 2018-01-21T01:58:31Z jmercouris: I'll have to go through the IRC logs lol 2018-01-21T01:58:33Z Bike: beats me 2018-01-21T01:59:04Z iqubic: Now to get slime going. 2018-01-21T01:59:21Z jmercouris: M-x slime 2018-01-21T01:59:34Z jmercouris: Set it up in the same way that I setup mine 2018-01-21T02:00:30Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-21T02:00:56Z iqubic: I'll try that. 2018-01-21T02:02:50Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T02:03:32Z Karl_Dscc joined #lisp 2018-01-21T02:04:09Z iqubic: Do I also want to get slime-company? 2018-01-21T02:04:22Z pransmonkey joined #lisp 2018-01-21T02:04:25Z pransmonkey: Hello 2018-01-21T02:04:28Z Bike: no idea what that is 2018-01-21T02:04:44Z Bike: doesn't seem necessary 2018-01-21T02:04:47Z pransmonkey: How the hell does `(set (getf *some-nil-list* :wtf) "yeah wtf")` works? 2018-01-21T02:04:48Z iqubic: Bike: It's another melpa package. 2018-01-21T02:05:05Z jmercouris: iqubic: Do you use company-mode? 2018-01-21T02:05:09Z iqubic: I do. 2018-01-21T02:05:09Z jmercouris: if so, use slime-company 2018-01-21T02:05:13Z Bike: pransmonkey: what is the content of *some-nil-list*? 2018-01-21T02:05:17Z milanj joined #lisp 2018-01-21T02:05:21Z pransmonkey: In other words, how does `(getf *some-nil-list* :random-sym)` returns a setable location if the list is empty??? 2018-01-21T02:05:38Z Bike: pransmonkey: and do you mean set, or setf? 2018-01-21T02:05:45Z pransmonkey: Bike: (defparameter *some-nil-list* ()) 2018-01-21T02:05:50Z FreeBirdLjj joined #lisp 2018-01-21T02:06:08Z pransmonkey: setf, sir. 2018-01-21T02:06:18Z Bike: "sir"? 2018-01-21T02:06:27Z Bike: and, setf is a macro, the getf is not evaluated normally 2018-01-21T02:06:31Z pransmonkey: madam, whatever. 2018-01-21T02:06:35Z Bike: there is no "location" being returned 2018-01-21T02:06:47Z Bike: try macroexpanding the setf to see 2018-01-21T02:07:06Z iqubic: jmercouris: Why is it that slime-company can't be found on melpa.org? 2018-01-21T02:07:19Z hexfive joined #lisp 2018-01-21T02:07:21Z Bike: it might be an unstable package or something 2018-01-21T02:07:31Z Bike: but if you don't use company-mode it's irrelevant, so don't sweat it 2018-01-21T02:07:40Z hexfive quit (Client Quit) 2018-01-21T02:07:40Z iqubic: I do use company though. 2018-01-21T02:07:44Z Bike: oh, okay. 2018-01-21T02:07:51Z pransmonkey: Okay, how does `(setf (getf *some-ni-list* :wtf) 1)` makes `*some-nil-list* to be `(:A 1)`? 2018-01-21T02:08:02Z Bike: did you look at the macroexpansion? 2018-01-21T02:08:05Z pransmonkey: Bike: will, do! 2018-01-21T02:08:21Z iqubic: Also, melpa is the unstable archive, right? 2018-01-21T02:08:28Z fikka joined #lisp 2018-01-21T02:09:02Z iqubic: melpa.org is the unstable archive. stable.melpa.org is the stable one. 2018-01-21T02:09:23Z Bike: i don't use melpa enough, i'm just guessing 2018-01-21T02:09:30Z zazzerino: iqubic: slime-company is available on melpa. have you followed the instructions on https://www.emacswiki.org/emacs/MELPA to set it up? 2018-01-21T02:09:37Z iqubic: I have. 2018-01-21T02:10:00Z zazzerino: have you tried running M-x package-list-packages 2018-01-21T02:10:07Z iqubic: I have. 2018-01-21T02:10:24Z pransmonkey: Wait, is getf a macro? 2018-01-21T02:10:26Z zazzerino: What do you see after running that command? 2018-01-21T02:10:39Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-21T02:10:58Z Bike: getf is a function. 2018-01-21T02:11:01Z Bike: setf is a macro 2018-01-21T02:11:25Z pransmonkey: So how come getf disappears in the expans of `setf (getf ...))` ..... 2018-01-21T02:11:40Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T02:11:42Z Bike: because setf is a macro that does whatever it wants with the forms 2018-01-21T02:11:42Z pransmonkey: This is what I get: 2018-01-21T02:11:43Z pransmonkey: (LET* ((#:NEW592 1)) (LET ((#:NEW1 (SB-IMPL::%PUTF *PS* :A #:NEW592))) (SETQ *PS* #:NEW1) #:NEW592)) 2018-01-21T02:11:50Z pransmonkey: Grrr, formatting got screwed up. 2018-01-21T02:11:59Z Karl_Dscc quit (Remote host closed the connection) 2018-01-21T02:12:05Z Bike: like i said, the getf is not evaluated normally, or in fact at all 2018-01-21T02:12:06Z pransmonkey: Bike: Ah! that makes sense. 2018-01-21T02:12:11Z iqubic: M-x package-refresh-contents was what I needed. 2018-01-21T02:12:17Z pransmonkey: I can't trust trust my lisp forms anymore. :P 2018-01-21T02:12:23Z Bike: consider the basic case of (setf x 5). is the form 'x' evaluated? there's no reason to 2018-01-21T02:12:29Z Bike: the previous value of x is irrelevant, after all 2018-01-21T02:12:55Z pransmonkey: So the fact that it works has nothing to do with getf? 2018-01-21T02:13:05Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T02:13:22Z Bike: getf has a setf expansion, meaning that when the setf macro gets a getf form it knows what to do with it 2018-01-21T02:13:25Z Bike: namely, that %putf thing 2018-01-21T02:13:47Z Bike: you could also try macroexpanding e.g. (setf (car x) y), which will give you something with rplaca 2018-01-21T02:14:07Z pransmonkey: But can I do `(setf (getf *ps* :blah) bleh)` without getf? 2018-01-21T02:14:08Z jmercouris: Is there a good login shell based on lisp? 2018-01-21T02:14:09Z iqubic: Now that I have slime installed. What should I do now? 2018-01-21T02:14:11Z jmercouris: all I can come up with is lush 2018-01-21T02:14:17Z Bike: pransmonkey: i'm not sure what you mean. 2018-01-21T02:14:22Z jmercouris: iqubic: M-x slime... 2018-01-21T02:14:45Z pransmonkey: Bike: I mean, what is an alternative way of getting the `(setf (getf *ps* :blah) bleh)` result, without getf. 2018-01-21T02:14:52Z pransmonkey: Just so I can wrap my head around what is going on. 2018-01-21T02:14:58Z Bike: the macroexpansion 2018-01-21T02:15:03Z Bike: doesn't involve getf, if i'm not mistaken 2018-01-21T02:15:07Z FreeBirdLjj joined #lisp 2018-01-21T02:15:18Z Bike: %putf is an internal function, of course, which is less than ideal 2018-01-21T02:15:32Z pransmonkey: Yes, that is what I am getting at. 2018-01-21T02:15:38Z whoman: x_x;; 2018-01-21T02:15:50Z pierpa: same things happen if you want to 2018-01-21T02:15:52Z pransmonkey: To me, it seems as if setf requires that you use getf and work from there... 2018-01-21T02:15:53Z pierpa: oops 2018-01-21T02:15:54Z pransmonkey: which is kinda weird. 2018-01-21T02:16:01Z Bike: ...what? 2018-01-21T02:16:03Z pierpa: same thing happens if you want to set an array element 2018-01-21T02:16:07Z pransmonkey: Yeah, it doesn't make sense. 2018-01-21T02:16:12Z Bike: how does it require that you use getf? 2018-01-21T02:16:14Z dieggsy quit (Remote host closed the connection) 2018-01-21T02:16:19Z iqubic: Are there any slime customizations I'll want to make? 2018-01-21T02:16:23Z pransmonkey: So how do I do `(setf (getf *ps* :blah) bleh)` without getf? 2018-01-21T02:16:31Z Bike: well, you look at the behavior of setf getf 2018-01-21T02:16:34Z jmercouris: iqubic: Yes, they are in my repostiroy I linked 2018-01-21T02:16:36Z Bike: which is defined on the clhs page for getf 2018-01-21T02:16:37Z Bike: clhs getf 2018-01-21T02:16:37Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_getf.htm 2018-01-21T02:16:41Z pransmonkey: You're talking too meta. 2018-01-21T02:16:45Z pransmonkey: I am sorry, but that is not very helpful. 2018-01-21T02:16:50Z pransmonkey: If I could figure it out, I wouldn't have asked here. 2018-01-21T02:17:07Z pransmonkey: RTFM is cool, but useless. 2018-01-21T02:17:11Z antonv joined #lisp 2018-01-21T02:17:20Z Bike: basically it looks through the list to see if there's an existing keyword pair 2018-01-21T02:17:21Z pransmonkey: I fail to think of another way of doing `(setf (getf *ps* :blah) bleh)` which would help me understand the whole thing. 2018-01-21T02:17:23Z Bike: and if it's there, alters the value 2018-01-21T02:17:34Z Bike: if there is no existing keyword pair, it puts a new one at the front of the list 2018-01-21T02:17:38Z pierpa: pransmonkey: the answer is: you can't do what you are asking using standard CL. Standard CL uses macros which expand to implementation dependent things 2018-01-21T02:17:42Z pransmonkey: Bike: Thanks, after you have explained, and looking at the macro expension, I understand how it works. 2018-01-21T02:17:55Z Bike: it's perfectly possible to do the behavior of setf getf without using setf or getf, it's just list manipulation 2018-01-21T02:18:15Z pransmonkey: What I am trying to know is, whatever, that is the "standard" way of doing it, and it is often that macros map functions passed with completely different things. 2018-01-21T02:18:26Z Bike: setf is a pretty special case 2018-01-21T02:18:31Z fikka joined #lisp 2018-01-21T02:18:32Z Bike: but in principle any macro could do something like it, yeah 2018-01-21T02:18:57Z Bike: on sbcl there's a compare-and-swap macro that works similarly to setf, in that (cas form ...) is going to macroexpand into something different based on the cas expansion 2018-01-21T02:19:02Z oleo quit (Ping timeout: 255 seconds) 2018-01-21T02:19:20Z Bike: conceptually, in (setf (getf ...) ...) the getf form is not a function call, it is a "place" 2018-01-21T02:19:33Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-21T02:19:44Z pransmonkey: Aha. 2018-01-21T02:20:03Z warweasle joined #lisp 2018-01-21T02:20:10Z pransmonkey: So a place isn't necessarily a real memory location or list reference or anything. 2018-01-21T02:20:13Z iqubic: I don't have a .quicklisp directory. 2018-01-21T02:20:22Z iqubic: Is that bad? 2018-01-21T02:20:41Z Bike: pransmonkey: yeah, a place is just anything setf knows about, kinda 2018-01-21T02:20:59Z Bike: which is why places shouldn't be thought of like pointers 2018-01-21T02:21:08Z pransmonkey: That explains a lot. 2018-01-21T02:21:09Z pransmonkey: Thank you. 2018-01-21T02:21:11Z Bike: iqubic: have you loaded quicklisp? 2018-01-21T02:21:18Z sjl: http://malisper.me/getting-places/ is an intro to places if you want a longer explanation 2018-01-21T02:21:38Z Bike: iqubic: also, by default it's just 'quicklisp' without the ., i think. 2018-01-21T02:21:50Z pransmonkey: Bike: I was thinking of place as some kind of pointer or reference, and so `(setf (getf *ps* :non-existence-pointer-or-reference) bleh)` didn't make sense. 2018-01-21T02:21:55Z sjl: Common Lisp Recipes has a good section about them, but it's not free 2018-01-21T02:22:08Z Bike: i see, yeah. that's kind of a common confusion i think. 2018-01-21T02:22:18Z Bike: one place that falls apart is CLOS accessors, which are just generic functions 2018-01-21T02:22:25Z Bike: so you can define methods to do literally whatever you want 2018-01-21T02:22:30Z pransmonkey: interesting. 2018-01-21T02:22:53Z Bike: you can also define normal setf functions, which also do whatever you want 2018-01-21T02:23:17Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T02:23:47Z emacsomancer joined #lisp 2018-01-21T02:24:53Z iqubic: Bike: I have loaded and installed quicklisp. At least I think I did. 2018-01-21T02:25:46Z Bike: when you start up sbcl again, does (find-package "QL") get you anything, or just NIL? 2018-01-21T02:26:05Z dented42 joined #lisp 2018-01-21T02:26:06Z iqubic: I get nil. 2018-01-21T02:26:09Z iqubic: NIL 2018-01-21T02:26:19Z jmercouris: any mailing list software exist in common lisp? 2018-01-21T02:26:21Z Bike: okay, then you didn't. what happened when you loaded the quicklisp setup file? 2018-01-21T02:26:48Z jmercouris: iqubic: Did you do (ql:add-to-init-file)? or whatever it's called? 2018-01-21T02:27:10Z iqubic: No. 2018-01-21T02:27:30Z iqubic: Bike: If I run (quicklisp-quickstart:install) I get this: 2018-01-21T02:27:45Z iqubic: Quicklisp has already been installed. Load #P"/home/avi/quicklisp/setup.lisp" instead. 2018-01-21T02:27:51Z jmercouris: iqubic: within sbcl: (ql:add-to-init-file) 2018-01-21T02:27:56Z iqubic: Oh, wait... 2018-01-21T02:28:34Z fikka joined #lisp 2018-01-21T02:28:45Z iqubic: I got it working now 2018-01-21T02:29:55Z emma_ joined #lisp 2018-01-21T02:29:58Z emma_ quit (Changing host) 2018-01-21T02:29:58Z emma_ joined #lisp 2018-01-21T02:30:26Z antonv: have anyone ever received a multicast UDP packed in CL? I see no API for that. 2018-01-21T02:30:36Z iqubic: Alright, I still don't have a .quicklisp file. 2018-01-21T02:30:44Z iqubic: s/file/directory. 2018-01-21T02:30:50Z Bike: do you have a quicklisp directory? 2018-01-21T02:30:54Z iqubic: no. 2018-01-21T02:31:00Z jmercouris: Are you sure? 2018-01-21T02:31:03Z Bike: okay. when you start sbcl does the find-package get you anything? 2018-01-21T02:31:04Z iqubic: yes. 2018-01-21T02:31:06Z iqubic: Yes. 2018-01-21T02:31:19Z Bike: okay. did you specify a different install directory or anything? 2018-01-21T02:31:26Z jmercouris: iqubic: I'm very ready to say, give up, install portacle, and if you like common-lisp, go ahead and set this up later 2018-01-21T02:31:41Z jmercouris: iqubic: https://portacle.github.io 2018-01-21T02:31:59Z Bike: you should be able to get the directory name with ql:*quicklisp-home* 2018-01-21T02:32:29Z pransmonkey: How do I pretty print a tree? 2018-01-21T02:32:39Z Bike: pprint 2018-01-21T02:33:17Z pransmonkey: I was more thinking of a graphical representation. 2018-01-21T02:33:22Z pransmonkey: Boxes and arrows, and all that jazz. 2018-01-21T02:33:23Z iqubic: Oh, wait. For some reason the directory is not hidden. 2018-01-21T02:33:32Z Bike: that's why i mentioned the dot 2018-01-21T02:33:34Z iqubic: It's just standard "quicklisp" 2018-01-21T02:33:35Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T02:33:37Z Bike: pransmonkey: nothing built in 2018-01-21T02:33:46Z iqubic: So what should I do now. 2018-01-21T02:33:55Z Bike: well, now you have quicklisp and slime 2018-01-21T02:34:06Z Bike: you can start sbcl in slime, i guess, so now your environment's set up all right 2018-01-21T02:34:26Z iqubic: (find-package "QL") only works if I have loaded the right file though. 2018-01-21T02:34:33Z Bike: you didn't put it in your init file? 2018-01-21T02:34:41Z iqubic: How do I do that? 2018-01-21T02:34:53Z Bike: (ql:add-to-init-file) 2018-01-21T02:35:01Z Bike: i think the installer should have prompted you for this 2018-01-21T02:35:11Z iqubic: Yeah, that just hangs sbcl. 2018-01-21T02:35:11Z emma_ is now known as em 2018-01-21T02:35:20Z iqubic: I'm not sure that's actually doing anything. 2018-01-21T02:35:23Z Bike: uh... that's weird. 2018-01-21T02:35:31Z Bike: maybe your init file is write protected or something. 2018-01-21T02:35:33Z iqubic: How long should the command take to run? 2018-01-21T02:35:39Z Bike: it writes to a file. shouldn't take long. 2018-01-21T02:35:51Z Bike: well, forget it. 2018-01-21T02:35:56Z iqubic: Bike: I'm using Nix-os, which might be my issue here. 2018-01-21T02:36:00Z Bike: ah, maybe 2018-01-21T02:36:14Z Bike: well, just make an .sbclrc if it doesn't exist, and put (load "wherever/quicklisp/setup.lisp") in there 2018-01-21T02:36:15Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T02:36:24Z Bike: that's pretty much all add-to-init-file does 2018-01-21T02:36:39Z pransmonkey: And include `(load "/path/to/quicklisp/setup")`? 2018-01-21T02:36:46Z dented42 joined #lisp 2018-01-21T02:36:51Z Bike: what? 2018-01-21T02:37:52Z pransmonkey: In the sbclrc to make sure quicklisp is loaded? 2018-01-21T02:38:01Z iqubic: That works. 2018-01-21T02:38:20Z iqubic: Well, now I have a working lisp devel evironment. Thanks all. 2018-01-21T02:38:51Z iqubic: Also running (exit) hangs sbcl 2018-01-21T02:38:53Z Bike: pransmonkey: is that not what i said? 2018-01-21T02:39:01Z Bike: iqubic: i have no idea what's going on there, sorry 2018-01-21T02:39:23Z iqubic: Bike: I don't think I should be running sbcl in eshell. 2018-01-21T02:39:26Z iqubic: LOL. 2018-01-21T02:39:33Z Bike: that's... probably problematic, yeah 2018-01-21T02:39:34Z Bike: did slime not work? 2018-01-21T02:39:42Z Bike: like, M-x slime 2018-01-21T02:39:53Z iqubic: No, slime works. 2018-01-21T02:40:00Z Bike: then why eshell? 2018-01-21T02:40:04Z iqubic: IDK man. 2018-01-21T02:40:18Z Bike: i mean, slime provides a repl 2018-01-21T02:40:20Z pransmonkey: I use sbcl with vlime (vim). 2018-01-21T02:40:23Z pransmonkey: And quicklisp. 2018-01-21T02:40:24Z Bike: that not happening? 2018-01-21T02:40:26Z pransmonkey: So far so good. 2018-01-21T02:40:40Z pransmonkey: I don't have to jump ship into the evil that Emacs is. 2018-01-21T02:40:42Z SpikeMaster joined #lisp 2018-01-21T02:40:58Z iqubic: Bike: M-x slime works for me, and gives me a repl. 2018-01-21T02:41:05Z ebzzry joined #lisp 2018-01-21T02:41:13Z iqubic: I'm not sure why I was using eshell. 2018-01-21T02:41:17Z Bike: oh, okay. 2018-01-21T02:44:12Z openthesky quit (Quit: Page closed) 2018-01-21T02:44:26Z jmercouris: Syntax highlighting for macros? 2018-01-21T02:44:28Z whoman: o_O 2018-01-21T02:44:42Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T02:45:15Z whoman: lisp syntax highlighting should truly be contextual and depth-ual, rather than literal lettered identifiers 2018-01-21T02:45:34Z whoman: or even no highlighting at all. 2018-01-21T02:45:52Z jmercouris: whoman: so, no? 2018-01-21T02:46:15Z orivej quit (Ping timeout: 246 seconds) 2018-01-21T02:46:22Z Bike: by default slime just does some dumb shit like coloring operator names beginning with "def" 2018-01-21T02:46:26Z Bike: works pretty well for me in practice 2018-01-21T02:46:27Z pransmonkey: You can have at least some highlighting for s-expressions. 2018-01-21T02:46:33Z pransmonkey: With matching pran highlighter. 2018-01-21T02:46:56Z patche joined #lisp 2018-01-21T02:47:19Z damke joined #lisp 2018-01-21T02:47:33Z d4ryus1 joined #lisp 2018-01-21T02:47:56Z whoman: jmercouris, the question lacks an existential word ?? like "is" or "are" or query words like "when" or "how" .... 2018-01-21T02:48:23Z whoman: didnt feel it was a full question so i went on my own thing about stuff 2018-01-21T02:48:28Z whoman: sry 2018-01-21T02:48:45Z fikka joined #lisp 2018-01-21T02:48:50Z jmercouris: whoman: "How to enable syntax highlighting for macros" 2018-01-21T02:49:24Z jmercouris: Bike: Yet, it is not highlighting my "defcommand" 2018-01-21T02:49:32Z jmercouris: What is going on :( 2018-01-21T02:49:38Z jmercouris: The indentation is also all wrong 2018-01-21T02:49:45Z jmercouris: I am starting to wonder if these are CCL specific issues 2018-01-21T02:50:01Z iqubic: Are you the one working on the next browser thing? 2018-01-21T02:50:08Z jmercouris: Yes sir! 2018-01-21T02:50:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T02:50:25Z iqubic: Cool. How far are you in the project? 2018-01-21T02:50:36Z jmercouris: Well, pretty far :) 2018-01-21T02:50:41Z d4ryus quit (Ping timeout: 256 seconds) 2018-01-21T02:50:54Z jmercouris: trying to make it easier right now to write commands and to customize, then release a package manager, then some quality of life things to make it easier for noobs 2018-01-21T02:50:59Z jmercouris: like "hydra" and stuff like that 2018-01-21T02:51:04Z iqubic: I see. 2018-01-21T02:51:35Z makomo quit (Ping timeout: 240 seconds) 2018-01-21T02:51:41Z jmercouris: Anyways, gotta go for now, talk later! 2018-01-21T02:51:45Z jmercouris: Please email me if you have any questinos 2018-01-21T02:52:22Z SpikeMaster quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-21T02:52:26Z whoman: questinos ! 2018-01-21T02:52:34Z whoman: spanish [in]quests 2018-01-21T02:53:03Z whoman: jmercouris, How to complete sentence. 2018-01-21T02:53:26Z iqubic: Preguntas? 2018-01-21T02:53:27Z whoman: how to maximize our communicative duties here in the metaverse 2018-01-21T02:53:38Z iqubic: That's spanish for questions. 2018-01-21T02:53:45Z fikka quit (Ping timeout: 265 seconds) 2018-01-21T02:53:59Z pransmonkey quit (Ping timeout: 260 seconds) 2018-01-21T02:54:58Z whoman: i would have never guessed that. kotae[ru] is 'to answer' in japanese 2018-01-21T02:56:11Z asarch joined #lisp 2018-01-21T02:58:44Z wxie joined #lisp 2018-01-21T02:59:11Z pagnol quit (Ping timeout: 248 seconds) 2018-01-21T03:01:26Z damke_ joined #lisp 2018-01-21T03:02:52Z warweasle quit (Quit: Leaving) 2018-01-21T03:03:52Z ckonstanski quit (Remote host closed the connection) 2018-01-21T03:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-21T03:04:14Z dented42 joined #lisp 2018-01-21T03:04:30Z antonv: so, no-one used multicast upd? 2018-01-21T03:09:01Z fikka joined #lisp 2018-01-21T03:14:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T03:14:54Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T03:15:26Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-21T03:15:52Z DeadTrickster joined #lisp 2018-01-21T03:16:06Z pierpa: You should at least say which implementations you are interested in. I seem to remember thare was a library for this for lispworks, but I have not first-hand experience. 2018-01-21T03:16:29Z raynold joined #lisp 2018-01-21T03:19:13Z jmercouris quit (Ping timeout: 268 seconds) 2018-01-21T03:19:29Z fikka joined #lisp 2018-01-21T03:19:30Z wxie quit (Ping timeout: 246 seconds) 2018-01-21T03:24:03Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T03:26:25Z FreeBirdLjj joined #lisp 2018-01-21T03:29:52Z fikka joined #lisp 2018-01-21T03:31:33Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-21T03:32:44Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-21T03:32:57Z wheelsucker quit (Ping timeout: 240 seconds) 2018-01-21T03:33:23Z dented42 joined #lisp 2018-01-21T03:34:38Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T03:37:20Z dmiles: multcast udp is differnce than normal udp ? 2018-01-21T03:38:32Z xrash quit (Read error: Connection reset by peer) 2018-01-21T03:38:52Z dmiles: one would set up the broadcast streams each with its own destination? 2018-01-21T03:39:31Z fikka joined #lisp 2018-01-21T03:39:48Z antonv quit (Read error: Connection reset by peer) 2018-01-21T03:43:10Z beach: Good morning everyone! 2018-01-21T03:43:36Z iqubic: Morning Beach. 2018-01-21T03:44:00Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T03:47:45Z beach: iqubic: How is learning Common Lisp going? 2018-01-21T03:52:21Z iqubic: Slowly. 2018-01-21T03:52:44Z iqubic: I've taken a break from all coding because school was really hard. 2018-01-21T03:53:24Z iqubic: So the last time I've done any lisp coding was like, last October. 2018-01-21T03:55:01Z fikka joined #lisp 2018-01-21T03:55:18Z iqubic: Also, I haven't found any lisp tutorials that I actually like. So that's fun. 2018-01-21T03:56:28Z whoman: heh 2018-01-21T03:57:14Z whoman: marriage itself is the best tutorial for marriage. imagine reading a how-to for dummies on marriage, written by some dude having one marriage and knowing other dudes having marriages, but still not knowing how your marriage will go. just get married - life is the best teacher 2018-01-21T03:57:25Z whoman: also curious what you are focused on in school iqubic ? 2018-01-21T03:57:30Z asarch quit (Quit: Leaving) 2018-01-21T03:57:58Z whoman: also some1!!! please help me!!!!!!!!!!!! the topic is still SBCL 1.4.0 and we are a bit further than that 2018-01-21T03:58:55Z beach: iqubic: What is wrong with the ones you have found? 2018-01-21T04:01:53Z iqubic: beach: I haven't found any. 2018-01-21T04:02:09Z FreeBirdLjj joined #lisp 2018-01-21T04:02:13Z beach: You have been recommended PCL. 2018-01-21T04:03:40Z iqubic: whoman: I'm in American High School, so I'm learning a bit of everything at the moment. 2018-01-21T04:03:40Z pragmaticmonkey joined #lisp 2018-01-21T04:04:04Z iqubic: beach: I also don't know what I should make with Lisp. It all seems so hard. 2018-01-21T04:04:34Z pragmaticmonkey: iqubic: Make a lisp dialect, written in lisp, that makes lisp work the way you want to lisp. 2018-01-21T04:04:36Z pragmaticmonkey: I am kidding. 2018-01-21T04:05:07Z pragmaticmonkey: But PCL has some nice, well, practical, exercises: http://www.gigamonkeys.com/book/ 2018-01-21T04:05:41Z iqubic: Cool, I'll try that. 2018-01-21T04:07:07Z smasta joined #lisp 2018-01-21T04:08:05Z beach: iqubic: For the more long-term projects, here is a list of ideas: http://metamodular.com/Common-Lisp/suggested-projects.html 2018-01-21T04:08:54Z iqubic: Wow, those all seem complex and hard to write. 2018-01-21T04:09:14Z beach: Sure. Otherwise, I would write them myself. 2018-01-21T04:09:25Z iqubic: LOL. 2018-01-21T04:11:11Z damke joined #lisp 2018-01-21T04:11:55Z pragmaticmonkey: iqubic: Hahaha, if you follow the book, you can solve the exercise almost with no problem. 2018-01-21T04:12:10Z pragmaticmonkey: I was surprised how much lisp I had learned by the time I did the mp3 catalog thingy 2018-01-21T04:12:23Z pragmaticmonkey: With the test framework, I actually surprised myself. 2018-01-21T04:13:13Z pragmaticmonkey: I went way further than the book and have `testcat`, `testgroup`, Test-Table like testing. 2018-01-21T04:13:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T04:16:18Z pragmaticmonkey: What is a paste that has lisp syntax? 2018-01-21T04:17:09Z pragmaticmonkey: Please review my code https://codeshare.io/5v7EjL 2018-01-21T04:17:12Z pragmaticmonkey: It is Common Lisp. 2018-01-21T04:17:45Z pragmaticmonkey: Please don't change anything without a comment. 2018-01-21T04:17:46Z pragmaticmonkey: Thanks. 2018-01-21T04:19:40Z Bike: looks unfinished? 2018-01-21T04:20:30Z iqubic: Yeah, that with-gensyms macro looks incomplete. 2018-01-21T04:20:38Z pragmaticmonkey: it works.... 2018-01-21T04:20:40Z Bike: oh, now it's all there 2018-01-21T04:21:05Z zazzerino quit (Ping timeout: 260 seconds) 2018-01-21T04:21:12Z pragmaticmonkey: First time suing that website, maybe it is slow. 2018-01-21T04:21:19Z pragmaticmonkey: using* 2018-01-21T04:21:25Z pragmaticmonkey: But might sue them for being really slow. lol 2018-01-21T04:21:35Z iqubic: This looks almost identical to what PCL gives you. 2018-01-21T04:22:09Z pragmaticmonkey: it is based on it, for sure 2018-01-21T04:22:18Z pragmaticmonkey: But it is slightly different, see the last example. 2018-01-21T04:23:55Z pragmaticmonkey: For example, the tests are a simple cons cell ( to-be-test exception ) and doesn't need the check macro. 2018-01-21T04:24:26Z pragmaticmonkey: s/exception/expectation/g 2018-01-21T04:24:27Z pragmaticmonkey: grrrrr 2018-01-21T04:25:44Z iqubic: I could try my hand at an irc bot in Lisp. 2018-01-21T04:26:04Z emaczen quit (Remote host closed the connection) 2018-01-21T04:26:04Z pragmaticmonkey: How about creating a Neural Network Framework? 2018-01-21T04:26:09Z pragmaticmonkey: Sounds easy to me. 2018-01-21T04:26:22Z nowhere_man joined #lisp 2018-01-21T04:26:31Z pragmaticmonkey: ( *_* )/ 2018-01-21T04:29:15Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T04:30:32Z smurfrobot joined #lisp 2018-01-21T04:32:11Z Bike: (defun transfer (x) (if (plusp x) x 0)) (defun neuron (weights inputs) (transfer (apply #'+ (first weights) (mapcar #'* (rest weights) inputs)))) 2018-01-21T04:34:31Z iqubic: I know what I want to do in lisp now. 2018-01-21T04:34:42Z fikka joined #lisp 2018-01-21T04:35:04Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-21T04:35:17Z iqubic: I want to write a version of this game: 2018-01-21T04:35:37Z iqubic: https://gabrielecirulli.github.io/2048/ 2018-01-21T04:35:57Z Bike: ey, i remember that 2018-01-21T04:36:28Z iqubic: I figure it shouldn't be too hard to port to lisp. 2018-01-21T04:40:00Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T04:51:38Z Xal quit (Ping timeout: 256 seconds) 2018-01-21T04:52:13Z Xal joined #lisp 2018-01-21T04:53:34Z pragmaticmonkey quit (Ping timeout: 260 seconds) 2018-01-21T04:54:39Z fikka joined #lisp 2018-01-21T04:59:44Z schoppenhauer quit (Ping timeout: 268 seconds) 2018-01-21T05:01:09Z schoppenhauer joined #lisp 2018-01-21T05:02:23Z Pixel_Outlaw: iqubic, for what it's worth there is #lispgames where a bunch of weirdos hang out. 2018-01-21T05:02:45Z Pixel_Outlaw: A few game engine options for you to choose from for that kind of simple case. 2018-01-21T05:03:25Z Pixel_Outlaw: Sorry for the plug, I'm just one of the weirdos over there now. :) 2018-01-21T05:03:35Z sz0 joined #lisp 2018-01-21T05:04:52Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T05:05:09Z proteanthread quit (Ping timeout: 264 seconds) 2018-01-21T05:06:35Z Bike quit (Quit: Lost terminal) 2018-01-21T05:06:48Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T05:10:33Z patche quit (Quit: Lost terminal) 2018-01-21T05:10:35Z red-dot joined #lisp 2018-01-21T05:13:07Z wxie joined #lisp 2018-01-21T05:14:36Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-21T05:14:52Z aeth: a 2048 clone should be very easy to do in Lisp 2018-01-21T05:15:08Z aeth: Anything that's abstract, non-realtime 2D can be written many, many ways. Efficiency isn't really an issue 2018-01-21T05:18:37Z aeth: And if you don't really have physics, that's a major plus. That makes things much easier. 2018-01-21T05:18:51Z wxie quit (Remote host closed the connection) 2018-01-21T05:28:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-21T05:33:04Z fikka joined #lisp 2018-01-21T05:35:58Z aeth: Think of game design like a graph. The x axis is similarity to an MMOFPS. The y axis is similarity to Dwarf Fortress. Difficulty to implement is roughly how far that game is from 0. 2048 is pretty close to 0 on that graph. 2018-01-21T05:36:11Z FreeBirdLjj joined #lisp 2018-01-21T05:36:53Z aeth: (And DF-style complexity would be much easier to write in CL than MMOFPS-style complexity.) 2018-01-21T05:38:00Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-21T05:41:24Z aking joined #lisp 2018-01-21T05:41:37Z aking left #lisp 2018-01-21T05:47:23Z ineiros quit (Ping timeout: 255 seconds) 2018-01-21T05:51:27Z pierpa quit (Quit: Page closed) 2018-01-21T06:01:05Z iqubic: Does Lisp have support for global variable? 2018-01-21T06:01:12Z damke_ joined #lisp 2018-01-21T06:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-21T06:04:00Z aeth: iqubic: Yes, but Lisp's global variables are special 2018-01-21T06:04:43Z aeth: Lisp's local variables are (by default) lexically scoped. They behave like you expect in most programming languages. Lisp's global variables are dynamically scoped (unless constant or implementation-specific). This is rare in languages these days. 2018-01-21T06:05:12Z iqubic: I don't know what dynamic scope means? 2018-01-21T06:05:54Z iqubic: I don't the difference between dynamic and lexical scoping in lisp 2018-01-21T06:05:55Z aeth: Dynamic scoping basically means that the variable refers to the most recent binding. So if you do (let ((*standard-output* some-new-stream)) (format t "Hello, world!~%")) it will print to some-new-stream even though you told format to use t (i.e. *standard-output*) 2018-01-21T06:06:30Z aeth: That's because you don't have to pass the variable in, it checks the most recent binding 2018-01-21T06:06:35Z iqubic: So dynamic scoping let's you shadow existing variables? 2018-01-21T06:06:53Z iqubic: If that's a term you understand. 2018-01-21T06:07:22Z iqubic: What is lexical binding? 2018-01-21T06:07:26Z aeth: Here's the exact definition of dynamic scoping: https://en.wikipedia.org/wiki/Scope_(computer_science)#Dynamic_scoping 2018-01-21T06:09:01Z iqubic: What about lexical scoping? 2018-01-21T06:09:08Z aeth: The advantages of dynamic scoping are: (1) it's easy to implement, (2) you don't have to pass the variable deep down the call stack (so you could redefine *standard-output* at the start of your program and it will go to the right spot every time you say format t) 2018-01-21T06:09:38Z iqubic: Yeah. I get what you mean. 2018-01-21T06:09:47Z aeth: The disadvantages are: (1) it's slower (the compiler has less information because it's dynamic), (2) it often doesn't do what you want and it makes things harder to understand (you never actually know for sure where format t will print, especially in a multi-threaded application) 2018-01-21T06:10:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T06:11:05Z iqubic: So what is lexical scoping now? 2018-01-21T06:11:27Z red-dot joined #lisp 2018-01-21T06:11:33Z aeth: lexical scoping deals with the concept of environments 2018-01-21T06:11:57Z aeth: You essentially go backwards up a list of environments, looking for the first one that defines foo 2018-01-21T06:12:04Z aeth: up to the global environment 2018-01-21T06:12:20Z iqubic: How does that differ from dynamic scoping? 2018-01-21T06:12:36Z aeth: here's an example of lexical scoping: (let ((foo 42)) (let ((foo 7)) (print foo)) (print foo)) 2018-01-21T06:13:14Z iqubic: Let me guess. First 7 is printed, then 42? 2018-01-21T06:13:18Z aeth: right 2018-01-21T06:13:27Z aeth: here's another example of lexical scoping: (let ((foo 42)) (let ((bar 7)) (print foo)) (print foo)) 2018-01-21T06:13:45Z aeth: it doesn't see foo in the bar environment, so it uses foo in the outer environment this time 2018-01-21T06:13:55Z aeth: s/the bar environment/the environment that only contains bar/ 2018-01-21T06:14:00Z iqubic: So 7 is printed twice? 2018-01-21T06:14:04Z aeth: right 2018-01-21T06:14:13Z aeth: Actually, in this example, the same thing would happen with lexical and dynamic scoping 2018-01-21T06:14:17Z aeth: (I think) 2018-01-21T06:14:28Z iqubic: yeah. 2018-01-21T06:14:30Z aeth: But the way they look things up is different 2018-01-21T06:15:27Z aeth: (let ((foo 42)) (defun foobar () foo)) 2018-01-21T06:15:55Z aeth: This creates a closure. Because the only function retrieves the value and no function sets the value, the compiler can turn this into a function that constantly returns 42. 2018-01-21T06:16:12Z aeth: This is very nice to have. 2018-01-21T06:17:33Z aeth: Let's do the same thing with a local special variable (even though special variables in CL are normally global, and you'll see why): (let ((*foo* 42)) (declare (special *foo*)) (defun barfoo () *foo*)) 2018-01-21T06:17:47Z aeth: First note that barfoo cannot efficiently be compiled to return the constant 42 2018-01-21T06:17:52Z aeth: Now try to call barfoo 2018-01-21T06:19:24Z ebzzry quit (Ping timeout: 246 seconds) 2018-01-21T06:19:35Z aeth: (The *foo* convention is just so we know that they're special, btw. Your compiler might warn you if special variables do not have *s on either side.) 2018-01-21T06:20:46Z iqubic: I'm not sure what that will do. 2018-01-21T06:20:47Z ebzzry joined #lisp 2018-01-21T06:21:17Z aeth: Try it in a REPL. Lisp is best learned that way. 2018-01-21T06:21:23Z aeth: If you don't have a REPL available I can tell you what happens 2018-01-21T06:23:46Z iqubic: *foo* is unbound. I get an error trying to call that function. 2018-01-21T06:24:06Z arquebus joined #lisp 2018-01-21T06:24:19Z aeth: right 2018-01-21T06:24:20Z iqubic: Why the hell is that? 2018-01-21T06:24:35Z aeth: It bound *foo* to 42 but *foo* only existed within that dynamic scope and no longer exists 2018-01-21T06:24:50Z aeth: That's one reason why dynamic/special variables are probably not what you want most of the time. 2018-01-21T06:25:05Z aeth: You probably want something like foobar, that constantly returns 42. 2018-01-21T06:25:14Z iqubic: How can I tell if a variable is dynamic vs lexical? 2018-01-21T06:25:54Z aeth: Let's get rid of the error with a global: (defparameter *foo* 7) (let ((*foo* 42)) (declare (special *foo*)) (print *foo*) (defun barfoo () *foo*)) ; I added a side effect print statement so you can see that *foo* is 42 inside the let 2018-01-21T06:26:26Z aeth: iqubic: By convention (and your compiler might warn if it violates the convention) special variables (the CL term for dynamic variables) always have the earmuffs 2018-01-21T06:26:33Z aeth: That's how *foo* differs from foo 2018-01-21T06:26:45Z aeth: If you don't do this, you're going to be surprised one day. 2018-01-21T06:27:08Z aeth: iqubic: Do you think the second (barfoo) will return 7 or 42? 2018-01-21T06:27:52Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-21T06:28:25Z iqubic: I thought it was going to be 42. 2018-01-21T06:28:29Z iqubic: But it returns 7 2018-01-21T06:28:46Z iqubic: The print statement and the barfoo return value are different. 2018-01-21T06:29:28Z aeth: the print statement is within the let. If you did a (print (barfoo)) after you define barfoo, it will also be 42. 2018-01-21T06:29:55Z aeth: But once you're outside of the let, (barfoo) is looking at the global *foo*, it doesn't remember the environment it was defined in. It looks at a dynamic environment. 2018-01-21T06:29:57Z iqubic: But the defun is also inside the let. 2018-01-21T06:30:07Z aeth: You almost always want lexical variables. 2018-01-21T06:30:25Z iqubic: Is the defun inside the let too? 2018-01-21T06:30:53Z aeth: iqubic: Here, let me help you. Closures are what we're talking about. Another name for "closure" is "lexical closure". 2018-01-21T06:31:16Z iqubic: I don't know what a closure is. 2018-01-21T06:31:20Z aeth: The alternative name might help explain why foobar works as expected. It's using a lexical variable. 2018-01-21T06:31:47Z aeth: iqubic: This is a closure: (let ((foo 42)) (defun foobar () foo)) 2018-01-21T06:32:33Z aeth: If you really want to have fun, let's play with this version: (let ((foo 42)) (defun foobar () foo) (defun foobar+1 () (incf foo))) 2018-01-21T06:32:57Z aeth: This was a major selling point of Lisp for a long time until everyone started copying it. 2018-01-21T06:33:57Z aeth: Note, though, that closures require the lexical variables to work. The normal ones, without the earmuffs. 2018-01-21T06:34:54Z iqubic: How the heck does that closure thing work? 2018-01-21T06:35:17Z aeth: It remembers the environment in which the function was created. This works for all functions, even anonymous (lambda) ones. 2018-01-21T06:35:32Z iqubic: The foobar+1 function is what I'm talking about. 2018-01-21T06:35:42Z aeth: Both functions remember the same environment. 2018-01-21T06:36:00Z aeth: Both refer to the foo in that environment because there's no foo in the local environment of either function. 2018-01-21T06:36:07Z iqubic: So both functions are defined inside the same let environment? 2018-01-21T06:36:10Z aeth: So they refer to the same foo, which is remembered 2018-01-21T06:36:12Z aeth: Yes. 2018-01-21T06:36:25Z aeth: You can even do it with anonymous functions instead of globally 2018-01-21T06:36:54Z beach: iqubic: https://en.wikipedia.org/wiki/Closure_(computer_programming) 2018-01-21T06:37:08Z aeth: Lots of languages have this, but I never truly understood scope until I programmed in Lisp. 2018-01-21T06:37:36Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T06:37:36Z iqubic: Alright: This isn't working. 2018-01-21T06:37:58Z iqubic: (let ((foo 1)) foobar) 2018-01-21T06:38:15Z aeth: What are you trying to do? 2018-01-21T06:39:36Z iqubic: I was trying to have a varible foo defined inside the closure, and outside the closure too. 2018-01-21T06:39:55Z iqubic: Works as expected. I just needed parens around foobar. 2018-01-21T06:39:57Z arquebus quit (Quit: Konversation disconnected) 2018-01-21T06:40:30Z aeth: right, if you were working with barfoo: (let ((*foo* 1)) (barfoo)) ; 1 2018-01-21T06:40:46Z aeth: But you probably want the lexical version, the foobar version. Much more useful. 2018-01-21T06:40:53Z fikka joined #lisp 2018-01-21T06:40:59Z iqubic: (let ((foo 42)) (defun foobar () foo) (defun foobar+1 () (incf foo))) 2018-01-21T06:41:17Z iqubic: (let ((foo 1)) (foobar)) 2018-01-21T06:41:32Z aeth: yes, that should work as expected. 2018-01-21T06:41:57Z iqubic: slime even warns me that (foo 1) is never used. 2018-01-21T06:42:06Z aeth: Everything is nice and contained, and you shouldn't have any surprises when working with lexical variables. 2018-01-21T06:42:29Z aeth: I mean, it might be a bit surprising that foo increments, but not too surprising if you look at the whole environment 2018-01-21T06:42:38Z iqubic: Yeah, that does what I want. 2018-01-21T06:43:17Z iqubic: yeah. Calling foobar+1 a couple times, then calling foobar shows a number bigger than 42. 2018-01-21T06:43:29Z iqubic: 42 being the starting value of foo. 2018-01-21T06:43:54Z Oladon joined #lisp 2018-01-21T06:44:34Z aeth: So it has to be at least 42. 2018-01-21T06:45:29Z aeth: iqubic: What do you think would happen if you incremented foo 50 quintillion times? 2018-01-21T06:45:44Z iqubic: Stack overflow? 2018-01-21T06:46:46Z aeth: Try it yourself with this shortcut: (+ (* 50 (expt 10 18)) 42) 2018-01-21T06:48:00Z iqubic: What should I call? 2018-01-21T06:48:23Z aeth: That should work in the REPL by itself 2018-01-21T06:48:58Z aeth: If you're correct, that should similarly stack overflow, instead of producing fifty quintillion forty-two 2018-01-21T06:49:22Z aeth: (or, integer overflow, actually) 2018-01-21T06:49:37Z iqubic: Nope. I get fifty quintillion forty-two 2018-01-21T06:50:30Z iqubic: Now, how long would it take to call foobar+1 that many times? 2018-01-21T06:50:32Z aeth: You can do this if you want to verify that it will hold in our other case: (let ((foo 42)) (defun foobar () foo) (defun foobar-inc (x) (incf foo x))) (foobar-inc (* 50 (expt 10 18))) (foobar) 2018-01-21T06:50:36Z aeth: That will save you time. 2018-01-21T06:51:27Z iqubic: Yup. That works. 2018-01-21T06:51:38Z iqubic: Nothing confusing about that. 2018-01-21T06:52:04Z aeth: In Common Lisp, integers are the mathematical integer. The efficient representation is called a fixnum and the inefficient representation is called a bignum. You will be able to go as large as you have memory. 2018-01-21T06:52:36Z aeth: If the compiler knows that it will stay a fixnum, it will be just as efficient as C. If you forget to do this, at least you still have an integer of some sort. 2018-01-21T06:53:03Z iqubic: That's wild. 2018-01-21T06:53:09Z aeth: In the foobar example, you probably want an integer and not a fixnum. So that's what you get. 2018-01-21T06:53:18Z iqubic: Yeah. 2018-01-21T06:53:27Z iqubic: So closures are cool. 2018-01-21T06:53:51Z iqubic: Have any other cool closure demonstrations for me? Or was that it? 2018-01-21T06:54:14Z aeth: Most cool uses of closures use anonymous functions, called lambda. That way, you don't have to do everything globally. 2018-01-21T06:54:21Z aeth: Do you know about lambdas yet? 2018-01-21T06:54:39Z iqubic: I know what a lambda is. 2018-01-21T06:55:14Z iqubic: they show up in just about any modern programming language. 2018-01-21T06:56:23Z aeth: Let's make a foo factory: (defun foo (&optional (foo 42)) (values (lambda () foo) (lambda (&optional (x 1)) (incf foo x)))) 2018-01-21T06:56:34Z aeth: Now the starting value can change. 2018-01-21T06:56:55Z aeth: If you don't give it an argument, it will be 42 2018-01-21T06:57:25Z aeth: You can make it more robust like this: (defun foo (&optional (foo 42)) (check-type foo integer) (values (lambda () foo) (lambda (&optional (x 1)) (incf foo x)))) 2018-01-21T06:57:41Z aeth: Now you know it'll always be something incrementable 2018-01-21T06:58:52Z aeth: You can bind both functions with multiple-value-bind. You can call these functions with funcall. You can do something like this now: (multiple-value-bind (foobar foobar-inc) (foo 42) (funcall foobar-inc) (funcall foobar)) 2018-01-21T06:59:25Z aeth: I wish we still had lisp paste because line breaks probably would help here now that things are getting more complicated. 2018-01-21T06:59:55Z iqubic: So what did that first defun do. 2018-01-21T07:00:03Z iqubic: the one that defined foo. 2018-01-21T07:00:17Z aeth: The first defun is the same as the second, except the second also checks that foo is an integer, so the user doesn't give it a bogus value 2018-01-21T07:00:23Z Xal quit (Ping timeout: 256 seconds) 2018-01-21T07:00:32Z iqubic: How does that first thing work then? 2018-01-21T07:00:36Z smasta quit (Ping timeout: 268 seconds) 2018-01-21T07:00:39Z aeth: The defun creates an environment with foo, just like our let, except it lets you define it 2018-01-21T07:00:55Z iqubic: How do I call the functions in the environment? 2018-01-21T07:00:56Z aeth: You can say (foo 37) or (foo -2) 2018-01-21T07:01:09Z rippa joined #lisp 2018-01-21T07:01:42Z iqubic: but how do I increment that value? 2018-01-21T07:01:44Z aeth: Common Lisp has multiple namespaces. That's why both the function and the variable can use the name foo. That means, though, that to call the anonymous functions you just created, you need to use funcall to tell it to treat a variable namespaced thing like a function 2018-01-21T07:02:01Z aeth: So you now have to (funcall foobar-inc) instead of (foobar-inc) 2018-01-21T07:02:09Z aeth: You also have to define them somewhere. 2018-01-21T07:02:50Z aeth: That's what the multiple-value-bind is for. There are two return values because there are two functions. It's just like let, except it defines it from multiple return values, e.g. this foo will start at -1: (multiple-value-bind (foobar foobar-inc) (foo -1) (funcall foobar-inc) (funcall foobar)) 2018-01-21T07:03:42Z aeth: If you don't like multiple return values you can always put them in a list, vector, standard-object, struct, hash-table, etc. of course. 2018-01-21T07:03:48Z aeth: Functions are first class here. 2018-01-21T07:03:54Z iqubic: But it doesn't return the foo environment does it? 2018-01-21T07:04:08Z iqubic: the multiple-value-bind thing. 2018-01-21T07:04:34Z aeth: The foo environment is stored away in some place that foobar and foobar-inc (formerly anonymous functions, now named) can access 2018-01-21T07:04:51Z aeth: So you're emulating objects with functions. 2018-01-21T07:05:08Z aeth: (You don't have to do this. Common Lisp has an object system.) 2018-01-21T07:06:06Z aeth: The function foo should probably be called make-foo because it's making our foo. 2018-01-21T07:06:33Z iqubic: but once I make a foo thing, I can no longer seem to call the functions related to foo. 2018-01-21T07:06:46Z aeth: You need to bind them somehow in order to name them 2018-01-21T07:07:30Z iqubic: How can I do taht? 2018-01-21T07:07:32Z aeth: There are several ways to get multiple values. 2018-01-21T07:07:55Z iqubic: multiple-value-bind didn't seem to work. 2018-01-21T07:07:58Z aeth: One is multiple-value-bind. Another is multiple-value-list, e.g. (multiple-value-list (foo)) 2018-01-21T07:08:07Z aeth: Why isn't multiple-value-bind working? 2018-01-21T07:09:39Z aeth: iqubic: http://www.gigamonkeys.com/book/the-special-operators.html 2018-01-21T07:09:45Z aeth: iqubic: You probably want to read the section called "multiple values" here. 2018-01-21T07:11:05Z iqubic: So I ran your multiple-value-bind sexp. The one that create a foo starting at -1 2018-01-21T07:11:09Z iqubic: that works. 2018-01-21T07:11:38Z iqubic: I then try (funcall foobar-inc). 2018-01-21T07:11:52Z aeth: foobar-inc is local to the binding 2018-01-21T07:11:59Z iqubic: It fails because the type of foobar-inc is UNDEFINED VARIBLE 2018-01-21T07:13:03Z phoe: for correctness: there's no Common Lisp type called "undefined variable" 2018-01-21T07:13:53Z iqubic: Right. slime is complaining that foobar-inc is unbound. 2018-01-21T07:14:05Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-21T07:14:14Z aeth: If you want to use foobar-inc globally, you need to bind it globally 2018-01-21T07:14:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-21T07:15:14Z iqubic: So multiple-values-bind makes a new environment? 2018-01-21T07:15:28Z iqubic: That's what I was missing. 2018-01-21T07:15:39Z aeth: (multiple-value-bind (foobar foobar-inc) (foo -1) (setf (symbol-function 'foobar) foobar) (setf (symbol-function 'foobar-inc) foobar-inc)) 2018-01-21T07:15:54Z iqubic: I'm not going to do that right now. 2018-01-21T07:16:02Z iqubic: I get how this works. 2018-01-21T07:16:08Z aeth: You can use symbol-function to define them globally, and then you can use (foobar) and (foobar-inc) as if they were always there 2018-01-21T07:16:15Z aeth: You only need funcall when they're local like that. 2018-01-21T07:16:37Z iqubic: Any other cool things like this, or not? 2018-01-21T07:16:58Z aeth: Well, the essential pattern is putting a let over a lambda. 2018-01-21T07:17:07Z aeth: Someone wrote a book on that. https://letoverlambda.com/ 2018-01-21T07:17:39Z iqubic: Yeah, there's a book shop near me that specializes in technical books like this. 2018-01-21T07:18:00Z iqubic: I've seen that on their shelves before. 2018-01-21T07:18:15Z aeth: Afaik, it's very advanced. 2018-01-21T07:18:19Z iqubic: But there was no let in your foo maker though. 2018-01-21T07:18:38Z aeth: iqubic: The defun implicitly has a let 2018-01-21T07:18:47Z aeth: or at least, you can think of it that way 2018-01-21T07:18:53Z aeth: multiple-value-bind is the same way 2018-01-21T07:19:08Z aeth: They create environments just like let would. 2018-01-21T07:19:10Z iqubic: So your point is making a closure around a lambda/ 2018-01-21T07:19:22Z iqubic: That's the key point? 2018-01-21T07:19:29Z aeth: yes 2018-01-21T07:19:36Z aeth: let itself can be defined in terms of a lambda, actually! 2018-01-21T07:19:42Z iqubic: Closures are really cool. 2018-01-21T07:19:56Z iqubic: Is let a macro in lisp? 2018-01-21T07:20:02Z aeth: yes, I think 2018-01-21T07:20:29Z aeth: It's probably handled specially, but in some Schemes, let might be defined as a macro over lambda. 2018-01-21T07:21:37Z phoe: LET isn't a macro. 2018-01-21T07:21:40Z phoe: It's a special form. 2018-01-21T07:22:02Z phoe: But an implementation is permitted to implement it as a macro, AFAIK. 2018-01-21T07:22:09Z iqubic: For built in stuff I don't care whether a thing is a function, macro, or special form, because they all work mostly the same. 2018-01-21T07:22:12Z beach: phoe: Correct. 2018-01-21T07:22:29Z iqubic: However when writting I'll need to know the distiction. 2018-01-21T07:22:38Z beach: phoe: "special operator" is more accurate. A form like (LET ...) is a special form. 2018-01-21T07:22:39Z aeth: iqubic: Roughly: (funcall (lambda (x) (format t "~D~%" x)) 42) <=> (let ((x 42)) (format t "~D~%" x)) 2018-01-21T07:22:58Z aeth: iqubic: In some Schemes, the Scheme equivalent of that might be exactly true. I'm sure someone here can tell me why that's not exactly true in CL. 2018-01-21T07:23:03Z iqubic: Yeah, I get that. 2018-01-21T07:23:14Z aeth: Only one form is strictly necessary if you're into minimalism 2018-01-21T07:23:26Z aeth: CL people are more into efficiency than minimalism, though 2018-01-21T07:24:23Z fikka joined #lisp 2018-01-21T07:24:33Z phoe: beach: thanks. 2018-01-21T07:25:01Z aeth: iqubic: multiple-value-bind actually uses a very similar principle in its implementation, except with multiple-value-call instead of funcall. 2018-01-21T07:25:09Z aeth: At least in SBCL, it's implemented this way. 2018-01-21T07:25:27Z iqubic: I'm not too worried about the differences. 2018-01-21T07:25:40Z aeth: It multiple-value-calls a lambda to produce essentially the same result as a let 2018-01-21T07:29:45Z aeth: iqubic: A practical example of a let over a lambda is in the utility library alexandria. curry. https://gitlab.common-lisp.net/alexandria/alexandria/blob/e5c54bc30b0887c237bde2827036d17315f88737/functions.lisp#L114-155 2018-01-21T07:30:39Z aeth: It lets you do this to do partial function application: (mapcar (alexandria:curry #'+ 10) (list 1 2 3 4 5)) => (11 12 13 14 15) 2018-01-21T07:31:26Z iqubic: How could you do that without curry? 2018-01-21T07:31:40Z iqubic: Isn't that like partial function application? 2018-01-21T07:31:49Z aeth: It lets you do this to do partial function application: (mapcar (lambda (x) (+ x 10)) (list 1 2 3 4 5)) => (11 12 13 14 15) 2018-01-21T07:32:17Z iqubic: I see how that works. 2018-01-21T07:32:22Z aeth: curry just creates the lambda for you and makes it a lot more concise (especially if you import curry so you don't see the prefix) 2018-01-21T07:32:33Z iqubic: That's basically just a simple let over lambda. 2018-01-21T07:32:51Z smasta joined #lisp 2018-01-21T07:33:37Z phoe: yep 2018-01-21T07:34:01Z phoe: or rather, just lambda. no let required there. 2018-01-21T07:34:18Z phoe: since you are not closing over any variables. 10 is constant in there. 2018-01-21T07:34:24Z aeth: well, it's the implicit arguments again 2018-01-21T07:34:30Z aeth: a lot of the time the let is just not there 2018-01-21T07:34:36Z iqubic: Why is the function called mapcar, and not just map? 2018-01-21T07:34:38Z aeth: you can use the function arguments 2018-01-21T07:34:43Z phoe: iqubic: MAP is another function. 2018-01-21T07:34:46Z aeth: iqubic: map works on all sequences, mapcar only works on lists and returns a list 2018-01-21T07:34:56Z aeth: (map 'list ...) is roughly equivalent 2018-01-21T07:35:09Z aeth: Except you're able to use any sequence with map, even if the result type is a list 2018-01-21T07:35:11Z phoe: MAPCAR works on lists, applying the function to each CAR of the list. hence, MAP-CAR. 2018-01-21T07:36:35Z holycow joined #lisp 2018-01-21T07:37:06Z smasta quit (Ping timeout: 246 seconds) 2018-01-21T07:37:14Z aeth: The worst part about CL is the names. CL chose to be compatible with much older Lisps rather than break compatibility (Scheme broke compatibility). But, hey, I'll take ugly names over many other flaws a language could have. 2018-01-21T07:37:27Z aeth: And ugly names are probably better than not being compatible with older software, too. 2018-01-21T07:38:29Z aeth: Whenever there was a design decision CL chose the uglier, more practical decision. It's designed for industrial use. 2018-01-21T07:39:46Z aeth: Most of the names are fine, but some older things (including mapcar) don't really follow the language's idiomatic naming style because they predate it. 2018-01-21T07:41:46Z makomo joined #lisp 2018-01-21T07:50:01Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T07:55:29Z Shinmera: CL didn't choose to be compatible. Compatibility is the reason it exists. 2018-01-21T07:56:47Z phoe: so it chose to exist 2018-01-21T07:57:01Z beach: A wise choice. 2018-01-21T07:58:43Z damke joined #lisp 2018-01-21T07:58:53Z phoe: ...for some reason, I wanted to google "a wise choice". 2018-01-21T07:59:01Z kushal joined #lisp 2018-01-21T07:59:04Z phoe: The result was... dissatisfying. https://kek.gg/i/35_WXQ.png 2018-01-21T07:59:24Z beach: Heh. 2018-01-21T07:59:25Z kushal is now known as Guest23123 2018-01-21T07:59:51Z Shinmera: Sign me right up 2018-01-21T08:00:47Z holycow: heh 2018-01-21T08:00:55Z damke__ joined #lisp 2018-01-21T08:01:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T08:03:16Z aeth: Shinmera: Wait, are you telling me that the point of Common Lisp is to be the common Lisp? 2018-01-21T08:04:02Z Shinmera: It's common between the implementations that funded it, yeah. 2018-01-21T08:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-21T08:04:43Z Guest23123 left #lisp 2018-01-21T08:05:26Z damke joined #lisp 2018-01-21T08:07:23Z dddddd joined #lisp 2018-01-21T08:07:29Z mitc0185 quit (Ping timeout: 255 seconds) 2018-01-21T08:08:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-21T08:11:55Z damke_ joined #lisp 2018-01-21T08:14:45Z damke quit (Ping timeout: 264 seconds) 2018-01-21T08:17:45Z damke joined #lisp 2018-01-21T08:20:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T08:22:46Z mishoo joined #lisp 2018-01-21T08:27:08Z smasta joined #lisp 2018-01-21T08:31:52Z smasta quit (Ping timeout: 268 seconds) 2018-01-21T08:49:12Z knobo3 joined #lisp 2018-01-21T08:52:54Z Karl_Dscc joined #lisp 2018-01-21T08:53:53Z holycow quit (Quit: Lost terminal) 2018-01-21T08:54:08Z nullman quit (Remote host closed the connection) 2018-01-21T08:54:17Z nullman joined #lisp 2018-01-21T08:56:29Z orivej joined #lisp 2018-01-21T09:00:24Z damke_ joined #lisp 2018-01-21T09:02:01Z Oladon quit (Quit: Leaving.) 2018-01-21T09:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-21T09:03:49Z oleo joined #lisp 2018-01-21T09:09:23Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-21T09:10:54Z knicklux joined #lisp 2018-01-21T09:14:25Z cess11 joined #lisp 2018-01-21T09:28:28Z shifty joined #lisp 2018-01-21T09:31:04Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T09:33:48Z fikka joined #lisp 2018-01-21T09:36:18Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-21T09:36:28Z BitPuffin joined #lisp 2018-01-21T09:37:03Z orivej quit (Ping timeout: 248 seconds) 2018-01-21T09:37:24Z DeadTrickster joined #lisp 2018-01-21T09:37:35Z knicklux quit (Quit: Leaving) 2018-01-21T09:40:03Z FreeBirdLjj joined #lisp 2018-01-21T09:46:14Z ym joined #lisp 2018-01-21T09:47:24Z Folkol joined #lisp 2018-01-21T09:49:33Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-21T09:50:23Z schoppenhauer quit (Ping timeout: 256 seconds) 2018-01-21T09:52:23Z schoppenhauer joined #lisp 2018-01-21T09:56:58Z lnostdal quit (Ping timeout: 268 seconds) 2018-01-21T09:57:21Z Guest17 joined #lisp 2018-01-21T09:58:08Z Guest17 quit (Client Quit) 2018-01-21T09:58:31Z solyd joined #lisp 2018-01-21T10:06:37Z beach: How can I implement the standard method combination if I have no evaluator (no compiler, no interpreter)? 2018-01-21T10:06:54Z beach: I have some ideas, but I would like to hear other suggestions. 2018-01-21T10:07:27Z beach: You can assume that the methods themselves exist and have been loaded as binary code from (say) a file. 2018-01-21T10:09:39Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T10:10:00Z lnostdal joined #lisp 2018-01-21T10:14:07Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T10:15:27Z fikka joined #lisp 2018-01-21T10:15:37Z FreeBirdLjj joined #lisp 2018-01-21T10:17:03Z lnostdal quit (Ping timeout: 248 seconds) 2018-01-21T10:17:06Z phoe: You can funcall the methods, correct? 2018-01-21T10:17:33Z beach: Yes. 2018-01-21T10:17:42Z beach: The METHOD-FUNCTIONs to be precise. 2018-01-21T10:17:53Z phoe: Yes, that is what I meant. 2018-01-21T10:18:10Z Folkol quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-21T10:19:47Z phoe: Why would you need an evaluator/compiler/interpreter for that? 2018-01-21T10:19:51Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T10:19:53Z phoe: clhs 7.6.6.2 2018-01-21T10:19:53Z specbot: Standard Method Combination: http://www.lispworks.com/reference/HyperSpec/Body/07_ffb.htm 2018-01-21T10:19:55Z Folkol joined #lisp 2018-01-21T10:20:26Z beach: Well, typically you would create the CALL-NEXT-METHOD function on the fly. 2018-01-21T10:21:01Z beach: And you would turn the applicable methods into an effective method which is a function that needs to be created at runtime. 2018-01-21T10:21:08Z phoe: You need to build the lists of methods in most-specific order anyway, right? 2018-01-21T10:21:12Z beach: Right. 2018-01-21T10:21:26Z phoe: Your CALL-NEXT-METHOD may simply invoke a method that is found via some dynamic variable. 2018-01-21T10:21:36Z beach: Exactly my thinking. 2018-01-21T10:21:43Z beach: So call-next-method would be a global function. 2018-01-21T10:22:15Z phoe: If you have no compiler, then it would need to be. 2018-01-21T10:22:28Z phoe: Because I think that you need a compiler to create local functions in methods. 2018-01-21T10:22:30Z phoe: ...or do you? 2018-01-21T10:23:09Z beach: As long as the code is static, I don't need the compiler at runtime. 2018-01-21T10:23:11Z phoe: If you know that you will want to have a CALL-NEXT-METHOD local function, then you can take a step back and, whenever you compile the methods, simply force them to have an ignorable local function CALL-NEXT-METHOD that refers to some dynamic variable and expects it to be bound. 2018-01-21T10:23:24Z beach: So I can create a closure from some compiled code, no problem. 2018-01-21T10:23:35Z phoe: So CALL-NEXT-METHOD does not need to be a global function. 2018-01-21T10:23:44Z phoe: That's what I understand, at least. 2018-01-21T10:23:52Z beach: That might work, but it is OK if it is global. 2018-01-21T10:23:56Z phoe: Okay. 2018-01-21T10:23:57Z beach: It is only for bootstrapping. 2018-01-21T10:24:07Z phoe: Ooh. In this case, choose the simplest solution. 2018-01-21T10:24:09Z Karl_Dscc quit (Remote host closed the connection) 2018-01-21T10:24:36Z beach: Related question: Suppose I have a (possibly empty) list of :BEFORE methods, a (possibly empty) list of :AFTER methods, a (possibly empty) list of :AROUND methods, and a (possibly empty) list of primary method. Can I, without any other information, always know what to do when call-next-method is called? 2018-01-21T10:24:44Z beach: I am thinking this:... 2018-01-21T10:24:47Z phoe: If it's for bootstrapping, the end user will not be able to notice that they have a function that is global but should have been local. 2018-01-21T10:25:04Z phoe: beach: let's look at the algorithm,n. 2018-01-21T10:25:13Z beach: 1. If the list of :AROUND methods is not empty, pop the first one off and call it. 2018-01-21T10:25:47Z beach: 2. If the list of :AROUND methods is empty, but the list of :BEFORE methods is not, then call all the :BEFORE methods in that order, and then set the list to '(). 2018-01-21T10:25:51Z Folkol quit (Max SendQ exceeded) 2018-01-21T10:26:17Z beach: 3. If the list of :BEFORE methods is also empty, but the list of primary methods is not, then pop the first primary method off and call it. 2018-01-21T10:26:40Z phoe: The algorithm in CLHS seems well-defined. Your code should be able to always guess what to do next. 2018-01-21T10:27:03Z beach: Yes, but I am thinking about how to do it without remembering what I just did. 2018-01-21T10:27:16Z beach: 4. If the list of primary methods is also empty, but the list of :AFTER methods is not, then call the methods on the list in that order. 2018-01-21T10:27:30Z beach: Ah, no, that's wrong. 2018-01-21T10:27:42Z Shinmera: c-n-m with no next method should error 2018-01-21T10:27:44Z phoe: You need to call the most specific primary method. 2018-01-21T10:27:49Z beach: Yes, yes. 2018-01-21T10:28:04Z phoe: If the list is empty, you need to call NO-NEXT-METHOD 2018-01-21T10:28:05Z beach: But I think I can find something that works. 2018-01-21T10:28:12Z phoe: I think so, too. 2018-01-21T10:28:13Z Shinmera: You need to call after once the primary method returns. 2018-01-21T10:28:13Z beach: Yes, absolutely. 2018-01-21T10:28:22Z beach: Right. 2018-01-21T10:28:23Z Shinmera: So call them in the same line as the :before s 2018-01-21T10:28:35Z Folkol joined #lisp 2018-01-21T10:28:36Z beach: I think it is doable. 2018-01-21T10:29:00Z phoe: Let's assume that you have *PRIMARY-METHODS* that holds the list of all primary methods for a function. 2018-01-21T10:29:13Z beach: Sounds good. 2018-01-21T10:29:23Z phoe: grab the CAR of this list, rebind the variable to the CDR, call the method-function of the CAR. 2018-01-21T10:29:41Z phoe: This way, CALL-NEXT-METHOD may refer to the next method by grabbing the CAR of *PRIMARY-METHODS*. 2018-01-21T10:29:46Z phoe: And so on, and so on. 2018-01-21T10:30:05Z beach: Yes, but you need to take the auxiliary methods into account as well. 2018-01-21T10:30:10Z beach: But I think I can do it. 2018-01-21T10:30:24Z phoe: Auxiliary? What do you mean? 2018-01-21T10:30:30Z beach: non-primary. 2018-01-21T10:30:34Z beach: Isn't that the term? 2018-01-21T10:30:36Z phoe: You don't need to care about the :BEFORE and :AFTER ones, they're called elsewhere. 2018-01-21T10:30:46Z phoe: You only need to care about :AROUND, I think. 2018-01-21T10:31:22Z phoe: CALL-NEXT-METHOD can check on *AROUND-METHODS* if the CAR of this list "matches" the CAR of *PRIMARY-METHODS*. 2018-01-21T10:31:28Z phoe: "Matches", I mean, the specialization. 2018-01-21T10:31:38Z phoe: If yes, it calls the :AROUND method; if not, it calls the primary method. 2018-01-21T10:32:19Z phoe: I actually wonder if you can do a trick like that... 2018-01-21T10:32:23Z kajo joined #lisp 2018-01-21T10:32:32Z phoe: Let's assume you have methods FOO, BAR, BAZ, QUUX, in this order of specificness. 2018-01-21T10:32:37Z phoe: BAR and BAZ have :AROUND methods. 2018-01-21T10:32:49Z phoe: Can your *PRIMARY-METHODS* look like: 2018-01-21T10:33:00Z beach: phoe: You are speaking nonsense. 2018-01-21T10:33:04Z phoe: wait. 2018-01-21T10:33:08Z phoe: am I? 2018-01-21T10:33:16Z beach: phoe: Start with all the applicable methods. 2018-01-21T10:33:38Z beach: some of which are primary, some of which are auxiliary. No :AROUND method is attached to another method. 2018-01-21T10:34:19Z knicklux joined #lisp 2018-01-21T10:35:16Z fikka joined #lisp 2018-01-21T10:35:17Z beach: OK, let me see if I can get it right this time... 2018-01-21T10:35:18Z phoe: Yes. 2018-01-21T10:35:55Z phoe: Auxiliary methods in the standard method combination are :BEFORE, :AFTER, :AROUND. 2018-01-21T10:36:04Z beach: Given four lists *AROUND-METHODS* *BEFORE-METHODS* *PRIMARY-METHODS* and *AFTER-METHODS*... 2018-01-21T10:36:40Z beach: To invoke the effective method, I actually call the global function CALL-NEXT-METHOD, and that one does the following... 2018-01-21T10:37:05Z beach: 1. If *AROUND-METHODS* is not empty, it pops off the first one and calls it. 2018-01-21T10:38:06Z beach: 2. If *AROUND-METHODS* is empty, it calls all the methods in *BEFORE-METHODS*, then sets that list to the empty list, pops the first primary method off and calls it. 2018-01-21T10:38:35Z Shinmera: beach: You have to check whether there's a primary method at all first, and if not, error. 2018-01-21T10:38:42Z beach: Sure, fine. 2018-01-21T10:39:17Z phoe: Shinmera: s/error/call NO-NEXT-METHOD/ 2018-01-21T10:39:18Z beach: 3. If both *AROUND-METHODS* and *BEFORE-METHODS* are empty, then if *PRIMARY-METHODS* is empty, then error. 2018-01-21T10:39:20Z nirved joined #lisp 2018-01-21T10:39:38Z Shinmera: phoe: Right 2018-01-21T10:39:47Z phoe: beach: actually it's a bit more complicated. There can be :BEFORE and :AFTER methods. 2018-01-21T10:39:52Z beach: 4. If *PRIMARY-METHODS* has a single entry on it, then pop it off, call it, and then call all the methods in *AFTER-METHODS*. 2018-01-21T10:39:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T10:40:05Z beach: phoe: I just took that into account. 2018-01-21T10:40:07Z beach: I hope. 2018-01-21T10:40:12Z phoe: But if there is no primary method when there are after/or before methods, then it is an error. 2018-01-21T10:40:28Z phoe: (defmethod foo :before ()) (foo) is an error if there's no (defmethod foo ()). 2018-01-21T10:40:49Z beach: Since this is bootstrapping, we can assume that the code is correct, so that CALL-NEXT-METHOD is not called unless it is allowed. 2018-01-21T10:41:01Z phoe: Okay. Good. 2018-01-21T10:41:57Z beach: I think it works. 2018-01-21T10:42:15Z beach: It will be slow, but it will work. 2018-01-21T10:42:28Z phoe: > 4. If *PRIMARY-METHODS* has a single entry on it, 2018-01-21T10:42:33Z phoe: It doesn't need to have a single entry. 2018-01-21T10:42:38Z phoe: It must simply be non-empty. 2018-01-21T10:42:53Z beach: Correct, but if it has a single entry, it is the last one, so the after methods should be called. 2018-01-21T10:43:14Z beach: Hmm, yes, there is something fishy there. 2018-01-21T10:43:18Z phoe: You don't call *all* primary methods though. 2018-01-21T10:43:22Z phoe: Only the most specific one. 2018-01-21T10:43:34Z beach: Yes, yes. I need to think a bit more. 2018-01-21T10:43:35Z phoe: You only call the first one - it is the method itself that may call next methods if it wants to. 2018-01-21T10:43:51Z phoe: You pop the first element from *PRIMARY-METHODS* and call it. 2018-01-21T10:44:17Z phoe: If the method wants to call more, then it must invoke CALL-NEXT-METHOD inside its body. 2018-01-21T10:44:22Z beach: When it returns, call the after methods. 2018-01-21T10:44:24Z wxie joined #lisp 2018-01-21T10:44:25Z phoe: Yes. 2018-01-21T10:44:28Z beach: right. 2018-01-21T10:44:35Z beach: I think I can figure it out from here. 2018-01-21T10:44:47Z red-dot joined #lisp 2018-01-21T10:44:48Z beach: Thanks for the help phoe and Shinmera. 2018-01-21T10:45:03Z beach: Amusing little problem. 2018-01-21T10:45:05Z phoe: No problem! Hope that I helped more than I confused things. 2018-01-21T10:45:06Z phoe: Hm? 2018-01-21T10:45:24Z beach: It always helps to see more angles of the problem. 2018-01-21T10:45:47Z fikka joined #lisp 2018-01-21T10:45:57Z wigust joined #lisp 2018-01-21T10:46:11Z beach: Anyway, lunchtime. I'll be back later. 2018-01-21T10:46:28Z phoe: Bon appetit! 2018-01-21T10:47:31Z random-nick joined #lisp 2018-01-21T10:50:18Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T10:50:30Z shka joined #lisp 2018-01-21T10:50:31Z pjb: aeth: the best thing in CL are the names! If you're not happy with them, you can define your own in your own package! (:use "AETH-LISP") ! 2018-01-21T10:51:39Z aeth: pjb: I'd considering doing it, but just for the arithmetic. 2018-01-21T10:52:28Z aeth: pjb: thanks to specialization-store we now have a (semi-portable) way to easily define type-generic functions on numbers and sequences that behave like #'+ and #'map 2018-01-21T10:53:12Z aeth: Which means arithmetic functions could be defined to support inline sequence functions and hopefully have no performance penalty with the existing arithemtic functions! 2018-01-21T10:53:39Z aeth: stuff like (* scalar matrix) 2018-01-21T10:54:02Z aeth: or (* matrix vector) 2018-01-21T10:54:56Z quazimodo quit (Ping timeout: 265 seconds) 2018-01-21T10:54:57Z aeth: It might be very tricky to do that with more than two arguments, though 2018-01-21T10:55:15Z d4ryus1 is now known as d4ryus 2018-01-21T10:55:26Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-21T10:56:03Z pjb: Well arithmetic with more than two arguments has the inconvenient that the dispatch has to be done by analysing the whole argument list types. 2018-01-21T10:56:07Z fikka joined #lisp 2018-01-21T10:56:58Z aeth: I think another problem is that arithmetic with vectors/matrices would cons heavily unless there was something fancy going on. 2018-01-21T10:57:04Z pjb: Well, AFAIK the standard would allow (reduce op arguments), but you'll get more precise results by sorting out the arguments. 2018-01-21T10:57:15Z jfb4 joined #lisp 2018-01-21T10:58:26Z aeth: (Also, matrices would have to be represented with 2D arrays, not sequences, or else there's no way to tell them apart from vectors, at least as I just described things.) 2018-01-21T11:00:31Z damke joined #lisp 2018-01-21T11:01:06Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T11:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T11:02:59Z knicklux quit (Quit: Leaving) 2018-01-21T11:05:02Z knicklux joined #lisp 2018-01-21T11:05:43Z fikka joined #lisp 2018-01-21T11:06:42Z thijso joined #lisp 2018-01-21T11:08:17Z aeth: pjb: I think you just pointed out why this wouldn't work, though. Argument lists can be as close to infinite as 64-bits allows (probably the most positive 63-bit fixnum value) 2018-01-21T11:09:20Z aeth: reduce could work but it wouldn't be interesting/efficient. 2018-01-21T11:10:15Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T11:14:45Z damke quit (Ping timeout: 264 seconds) 2018-01-21T11:17:39Z damke joined #lisp 2018-01-21T11:20:06Z damke_ joined #lisp 2018-01-21T11:22:02Z quazimodo joined #lisp 2018-01-21T11:22:33Z damke quit (Ping timeout: 264 seconds) 2018-01-21T11:23:49Z lnostdal joined #lisp 2018-01-21T11:24:00Z damke joined #lisp 2018-01-21T11:25:24Z lnostdal quit (Max SendQ exceeded) 2018-01-21T11:25:44Z lnostdal joined #lisp 2018-01-21T11:26:03Z fikka joined #lisp 2018-01-21T11:26:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T11:27:23Z safe quit (Read error: Connection reset by peer) 2018-01-21T11:28:22Z lambda9 joined #lisp 2018-01-21T11:29:26Z varjag joined #lisp 2018-01-21T11:30:33Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T11:33:18Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T11:34:09Z Achylles joined #lisp 2018-01-21T11:34:32Z scymtym quit (Ping timeout: 256 seconds) 2018-01-21T11:42:35Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-21T11:44:38Z jfb4 joined #lisp 2018-01-21T11:45:25Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T11:46:01Z red-dot joined #lisp 2018-01-21T11:46:02Z markong joined #lisp 2018-01-21T11:46:26Z fikka joined #lisp 2018-01-21T11:48:17Z Lord_of_Life quit (Changing host) 2018-01-21T11:48:17Z Lord_of_Life joined #lisp 2018-01-21T11:48:17Z Lord_of_Life quit (Changing host) 2018-01-21T11:48:17Z Lord_of_Life joined #lisp 2018-01-21T11:49:40Z scymtym joined #lisp 2018-01-21T11:51:05Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T11:56:48Z fikka joined #lisp 2018-01-21T11:57:27Z lambda9 quit (Ping timeout: 240 seconds) 2018-01-21T12:01:21Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T12:08:51Z pagnol joined #lisp 2018-01-21T12:15:33Z EvW joined #lisp 2018-01-21T12:17:10Z fikka joined #lisp 2018-01-21T12:18:57Z Tobbi joined #lisp 2018-01-21T12:19:03Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-21T12:21:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T12:23:55Z FreeBirdLjj joined #lisp 2018-01-21T12:26:12Z wxie quit (Remote host closed the connection) 2018-01-21T12:27:10Z fikka joined #lisp 2018-01-21T12:27:32Z random-nick quit (Remote host closed the connection) 2018-01-21T12:28:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-21T12:31:21Z xfwduke joined #lisp 2018-01-21T12:32:22Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T12:32:41Z FreeBirdLjj joined #lisp 2018-01-21T12:33:01Z ebzzry quit (Ping timeout: 256 seconds) 2018-01-21T12:38:26Z void_pointer joined #lisp 2018-01-21T12:41:35Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-21T12:46:43Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T12:47:17Z fikka joined #lisp 2018-01-21T12:47:19Z red-dot joined #lisp 2018-01-21T12:51:45Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T12:55:06Z FreeBirdLjj joined #lisp 2018-01-21T12:57:43Z dddddd_ joined #lisp 2018-01-21T12:58:45Z random-nick joined #lisp 2018-01-21T12:59:27Z dddddd quit (Ping timeout: 240 seconds) 2018-01-21T12:59:43Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-21T13:00:20Z dddddd_ is now known as dddddd 2018-01-21T13:03:19Z FreeBirdLjj joined #lisp 2018-01-21T13:04:33Z xfwduke quit (Remote host closed the connection) 2018-01-21T13:06:27Z heurist quit (Ping timeout: 246 seconds) 2018-01-21T13:06:55Z solyd quit (Quit: solyd) 2018-01-21T13:07:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-21T13:07:34Z heurist joined #lisp 2018-01-21T13:07:38Z fikka joined #lisp 2018-01-21T13:09:21Z Oddity quit (Ping timeout: 248 seconds) 2018-01-21T13:10:52Z JuanDaugherty joined #lisp 2018-01-21T13:11:19Z ebzzry joined #lisp 2018-01-21T13:12:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T13:17:59Z fikka joined #lisp 2018-01-21T13:20:10Z FreeBirdLjj joined #lisp 2018-01-21T13:21:12Z Kevslinger joined #lisp 2018-01-21T13:21:57Z SAL9000 quit (Ping timeout: 240 seconds) 2018-01-21T13:22:19Z shifty quit (Ping timeout: 268 seconds) 2018-01-21T13:22:24Z dxtr quit (Quit: leaving) 2018-01-21T13:22:33Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T13:23:56Z SAL9000 joined #lisp 2018-01-21T13:24:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-21T13:25:11Z pagnol quit (Remote host closed the connection) 2018-01-21T13:29:01Z zazzerino joined #lisp 2018-01-21T13:29:12Z EvW quit (Ping timeout: 246 seconds) 2018-01-21T13:30:39Z SAL9000_ joined #lisp 2018-01-21T13:31:34Z SAL9000 quit (Ping timeout: 268 seconds) 2018-01-21T13:31:36Z zazzerino quit (Remote host closed the connection) 2018-01-21T13:33:34Z milanj quit (Quit: This computer has gone to sleep) 2018-01-21T13:38:03Z fikka joined #lisp 2018-01-21T13:39:04Z pedh joined #lisp 2018-01-21T13:39:52Z FreeBirdLjj joined #lisp 2018-01-21T13:40:01Z dieggsy joined #lisp 2018-01-21T13:41:50Z zazzerino joined #lisp 2018-01-21T13:42:43Z fikka quit (Ping timeout: 256 seconds) 2018-01-21T13:43:13Z Bike joined #lisp 2018-01-21T13:44:31Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-21T13:44:54Z dented42 joined #lisp 2018-01-21T13:47:59Z FreeBirdLjj joined #lisp 2018-01-21T13:48:30Z fikka joined #lisp 2018-01-21T13:52:18Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-21T13:53:00Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T13:57:16Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-21T14:00:52Z milanj joined #lisp 2018-01-21T14:06:20Z pedh quit (Quit: pedh) 2018-01-21T14:08:32Z fikka joined #lisp 2018-01-21T14:08:32Z pedh joined #lisp 2018-01-21T14:10:39Z flip214: using CLON for argument parsing I came upon this problem: a STROPT (say, "-l") has value NIL if the cmdline argument has a "-" in front. 2018-01-21T14:10:52Z flip214: Eg. "-l -1" means NIL, while "-l-1" works as expected. 2018-01-21T14:11:16Z flip214: Is that on purpose? Can I tell CLON that the string "option" isn't optional but required? 2018-01-21T14:11:38Z flip214: My use case is getting an integer from the command line - but negative values don't work so well, as you can see. 2018-01-21T14:13:45Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T14:14:25Z FreeBirdLjj joined #lisp 2018-01-21T14:18:57Z fikka joined #lisp 2018-01-21T14:18:59Z brendyn quit (Ping timeout: 256 seconds) 2018-01-21T14:20:18Z lnostdal quit (Ping timeout: 246 seconds) 2018-01-21T14:22:21Z pagnol joined #lisp 2018-01-21T14:23:40Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T14:28:33Z JuanDaugherty: funny that there are 3 clons 2018-01-21T14:28:37Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-21T14:29:01Z fikka joined #lisp 2018-01-21T14:29:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-21T14:29:20Z lanu joined #lisp 2018-01-21T14:29:21Z JuanDaugherty: (aware you mean the 'option nuker') 2018-01-21T14:31:22Z lanu quit (Client Quit) 2018-01-21T14:33:14Z jackdaniel: it should be just "l" for stropt, clon does recognize - convention 2018-01-21T14:33:36Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T14:34:10Z jackdaniel: so (getopt :short-name "l" :long-name "long-flag") 2018-01-21T14:34:16Z jackdaniel: will pick either -l or --long-flag 2018-01-21T14:34:19Z jackdaniel: flip214: ↑ 2018-01-21T14:34:28Z lnostdal joined #lisp 2018-01-21T14:36:09Z flip214: jackdaniel: no, the problem is that passing "-l -1" on the command line looks like the two options "-l" and "-1" to CLON 2018-01-21T14:36:19Z flip214: so I can't easily pass in negative numbers 2018-01-21T14:36:56Z jackdaniel: ah. what about --long-option=-3 ? 2018-01-21T14:37:21Z lnostdal quit (Max SendQ exceeded) 2018-01-21T14:37:39Z flip214: jackdaniel: yeah, of course, if the user is reading the documentation. 2018-01-21T14:37:39Z lnostdal joined #lisp 2018-01-21T14:37:58Z flip214: but I'm worried that "-l 1" works, "-l1" works, "-l-1" works, but "-l -1" doesn't. 2018-01-21T14:38:03Z flip214: that's too irregular for me. 2018-01-21T14:38:28Z jackdaniel: I'd have to dig the clon manual to check this up 2018-01-21T14:39:08Z jackdaniel: https://www.lrde.epita.fr/~didier/software/lisp/clon/enduser/Valued-Options.html#Valued-Options 2018-01-21T14:39:16Z jackdaniel: you have to make option argument value mandatory 2018-01-21T14:39:22Z jackdaniel: if you don't want to be forced to "stick it" 2018-01-21T14:39:23Z Bike quit (Ping timeout: 256 seconds) 2018-01-21T14:39:40Z jackdaniel: afk for a while (sorry) 2018-01-21T14:43:33Z FreeBirdLjj joined #lisp 2018-01-21T14:45:51Z lnostdal quit (Ping timeout: 248 seconds) 2018-01-21T14:46:43Z flip214: thanks for the pointer, found :ARGUMENT-TYPE :MANDATORY 2018-01-21T14:48:39Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-21T14:49:09Z fikka joined #lisp 2018-01-21T14:49:10Z makomo joined #lisp 2018-01-21T14:50:27Z wmannis joined #lisp 2018-01-21T14:51:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-21T14:51:28Z makomo quit (Client Quit) 2018-01-21T14:51:29Z ckonstanski joined #lisp 2018-01-21T14:51:44Z makomo joined #lisp 2018-01-21T14:52:01Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T14:54:00Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T14:54:42Z orivej joined #lisp 2018-01-21T14:55:22Z makomo quit (Client Quit) 2018-01-21T14:55:39Z makomo joined #lisp 2018-01-21T14:57:47Z lnostdal joined #lisp 2018-01-21T14:59:33Z fikka joined #lisp 2018-01-21T14:59:36Z makomo quit (Client Quit) 2018-01-21T15:00:01Z makomo joined #lisp 2018-01-21T15:00:31Z solyd joined #lisp 2018-01-21T15:00:32Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T15:04:41Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T15:06:25Z KZiemian joined #lisp 2018-01-21T15:07:27Z pedh quit (Quit: pedh) 2018-01-21T15:08:32Z KZiemian: hello world 2018-01-21T15:08:58Z KZiemian: in comments in one lisp file I find 2018-01-21T15:09:01Z KZiemian: "A STRING represents leaf data" 2018-01-21T15:09:05Z KZiemian: what is a leaf data? 2018-01-21T15:10:09Z phoe: KZiemian: which file? 2018-01-21T15:10:28Z KZiemian: ccldoc representantion.lisp 2018-01-21T15:11:07Z sonologico quit (Quit: WeeChat 1.9.1) 2018-01-21T15:11:25Z phoe: KZiemian: I think rme on #ccl will be able to answer better 2018-01-21T15:11:29Z phoe: he knows the ccldoc internals. 2018-01-21T15:11:52Z KZiemian: phoe: I just need to know what leaf data mean in general 2018-01-21T15:11:55Z KZiemian: basic data? 2018-01-21T15:12:02Z KZiemian: most primitive type? 2018-01-21T15:14:17Z phoe: KZiemian: I think it refers to data stored in a tree structure, where you have nodes that can point to other nodes without cycles, and leaves are the nodes that do not point to anything. 2018-01-21T15:14:38Z KZiemian: yes, that make perfect sens 2018-01-21T15:14:43Z KZiemian: thank you! 2018-01-21T15:19:35Z fikka joined #lisp 2018-01-21T15:23:45Z red-dot joined #lisp 2018-01-21T15:24:21Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T15:25:35Z pmetzger joined #lisp 2018-01-21T15:30:05Z antismap joined #lisp 2018-01-21T15:31:00Z lnostdal quit (Read error: Connection reset by peer) 2018-01-21T15:31:14Z asarch joined #lisp 2018-01-21T15:36:33Z pagnol: there's a library I would like to use (https://github.com/heegaiximephoomeeghahyaiseekh/lisp-binary) but for some reason ql:quickload gets stuck during compilation 2018-01-21T15:36:44Z solyd quit (Quit: solyd) 2018-01-21T15:36:58Z dented42 joined #lisp 2018-01-21T15:38:36Z michalisko quit (Ping timeout: 268 seconds) 2018-01-21T15:39:55Z fikka joined #lisp 2018-01-21T15:42:34Z phoe: pagnol: SBCL? 2018-01-21T15:42:42Z pagnol: phoe, oh yes, sorry 2018-01-21T15:42:43Z phoe: see the *inferior-lisp* buffer if you have run out of memory. 2018-01-21T15:42:54Z phoe: SBCL does not like this system and freaks out while compiling it. 2018-01-21T15:43:14Z pagnol: Heap exhausted during garbage collection.... 2018-01-21T15:43:22Z pagnol: hmm 2018-01-21T15:43:44Z pagnol: is this a problem specific to this library? 2018-01-21T15:43:55Z phoe: pagnol: yes. 2018-01-21T15:44:05Z phoe: ask #sbcl if they have been able to fix it. 2018-01-21T15:44:07Z phoe: just in case: 2018-01-21T15:44:10Z phoe: what is your SBCL version? 2018-01-21T15:44:13Z pagnol: 1.3.1 2018-01-21T15:44:17Z phoe: oh gods 2018-01-21T15:44:23Z phoe: upgrade 2018-01-21T15:44:27Z phoe: *really* upgrade 2018-01-21T15:44:31Z pagnol: ok 2018-01-21T15:44:39Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T15:44:46Z pagnol: it's the one I got by running apt-get install.. 2018-01-21T15:44:53Z michalisko joined #lisp 2018-01-21T15:45:02Z phoe: pagnol: debian stable? 2018-01-21T15:45:05Z pagnol: yes 2018-01-21T15:45:10Z EvW1 joined #lisp 2018-01-21T15:45:12Z phoe: geez, it really serves ancient packages at times. 2018-01-21T15:45:28Z phoe: AFAIK you can pull single packages out of unstable. 2018-01-21T15:45:36Z phoe: you can use this to pull SBCL. 2018-01-21T15:45:43Z pagnol: alright, I'll upgrade and see if it works 2018-01-21T15:46:03Z zazzerino: pagnol: I'm also on debian stable, and would recommend https://github.com/roswell/roswell for this task 2018-01-21T15:46:12Z phoe: I actually use roswell, too. 2018-01-21T15:46:35Z phoe: i do not require much from it though, to me, it's a pretty nice SBCL installer. (: 2018-01-21T15:46:46Z pagnol: zazzerino, ah thanks! 2018-01-21T15:47:29Z pedh joined #lisp 2018-01-21T15:47:29Z pedh quit (Client Quit) 2018-01-21T15:49:39Z solyd joined #lisp 2018-01-21T15:50:43Z mepian joined #lisp 2018-01-21T15:51:42Z solyd quit (Client Quit) 2018-01-21T15:52:20Z pagnol: phoe, so apparently you used this library yourself in the past? 2018-01-21T15:54:35Z phoe: pagnol: (: 2018-01-21T15:54:43Z phoe: I *tried* using it. 2018-01-21T15:55:07Z pagnol: ah, so this issue actually prevented you from using it? 2018-01-21T15:55:35Z whoman quit (Ping timeout: 240 seconds) 2018-01-21T15:56:00Z phoe: yep. AFAIK there are workarounds, look on the github page of the project, in the issues. 2018-01-21T15:57:59Z zazzerino: Looks like an interesting library. I tried loading it in quicklisp and have the exact same issue (quickload hanging while loading [package lisp-binary]. Sorry, I don't have a solution, but it's not just your machine! 2018-01-21T15:58:12Z lnostdal joined #lisp 2018-01-21T15:58:34Z zazzerino: Also, looks like the main dev opened an issue about a month ago with the title "Dependencies are fucked" lol 2018-01-21T15:59:20Z pagnol: I saw this issue too 2018-01-21T15:59:26Z phoe: zazzerino: it's not QL hanging. It's SBCL running out of heap space while compiling it. 2018-01-21T15:59:32Z phoe: (AFAIK) 2018-01-21T15:59:49Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-21T15:59:50Z pagnol: and apparently it was removed from quicklisp 2018-01-21T16:00:05Z phoe: yes, because of this. 2018-01-21T16:00:08Z pagnol: ah 2018-01-21T16:00:14Z fikka joined #lisp 2018-01-21T16:00:18Z pagnol: duh 2018-01-21T16:00:55Z zazzerino: phoe: yeah, I think you're right. I just meant "ql:quickload" was the function I was running to load the library (which was in my local-projects dir) 2018-01-21T16:01:50Z phoe: yep. 2018-01-21T16:04:09Z nika joined #lisp 2018-01-21T16:04:25Z milanj quit (Quit: This computer has gone to sleep) 2018-01-21T16:05:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-21T16:08:27Z nika quit (Ping timeout: 246 seconds) 2018-01-21T16:10:07Z xristos joined #lisp 2018-01-21T16:10:09Z iqubic: What's going on here guys? 2018-01-21T16:10:31Z xristos is now known as Guest36652 2018-01-21T16:10:42Z warweasle joined #lisp 2018-01-21T16:10:47Z Guest36652 is now known as xristos` 2018-01-21T16:11:18Z xristos` is now known as xristos 2018-01-21T16:11:22Z xristos quit (Changing host) 2018-01-21T16:11:22Z xristos joined #lisp 2018-01-21T16:11:53Z milanj joined #lisp 2018-01-21T16:12:35Z pagnol: nice... with sbcl 1.4.3 I get the exact same error 2018-01-21T16:15:00Z zazzerino: maybe try ccl? if you've installed roswell it should be as easy as "ros install ccl" and I think "ros use ccl" 2018-01-21T16:17:33Z beach: iqubic: What do you mean? 2018-01-21T16:20:32Z fikka joined #lisp 2018-01-21T16:22:29Z wmannis quit (Quit: wmannis) 2018-01-21T16:23:05Z Achylles quit (Ping timeout: 256 seconds) 2018-01-21T16:23:54Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T16:24:29Z dieggsy quit (Remote host closed the connection) 2018-01-21T16:24:48Z solyd joined #lisp 2018-01-21T16:25:05Z ebzzry: I’m curious, do people actually use COMPLEMENT? 2018-01-21T16:25:06Z red-dot joined #lisp 2018-01-21T16:25:15Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T16:25:25Z beach: No. :) 2018-01-21T16:26:37Z whoman joined #lisp 2018-01-21T16:26:42Z beach: ebzzry: When it looked like the xxx-if-not family was going to be removed (because of being deprecated) complement would have been more useful. But then, most people now agree that they are undeprecated. 2018-01-21T16:27:45Z ebzzry: Hm. I thought the same. I got reminded by it because of :test and :test-not. 2018-01-21T16:31:42Z Oddity joined #lisp 2018-01-21T16:33:39Z nika joined #lisp 2018-01-21T16:34:35Z knicklux quit (Quit: Leaving) 2018-01-21T16:36:10Z gargaml joined #lisp 2018-01-21T16:38:50Z Arcaelyx joined #lisp 2018-01-21T16:39:40Z Karl_Dscc joined #lisp 2018-01-21T16:40:08Z ebzzry: Why is #'defmacro permitted in SBCL? 2018-01-21T16:40:35Z phoe: ebzzry: implementation-dependent 2018-01-21T16:40:38Z phoe: it is undefined. 2018-01-21T16:40:45Z phoe: so the implementation may do whatever it feels like. 2018-01-21T16:40:52Z fikka joined #lisp 2018-01-21T16:40:57Z phoe: but #'foo where FOO is a macro is not standard Common Lisp. 2018-01-21T16:40:57Z Xach: phoe: not exactly! 2018-01-21T16:41:01Z phoe: Xach: gasp 2018-01-21T16:41:03Z Xach: An implementation may choose not to signal this error for performance reasons, but implementations are forbidden from defining the failure to signal an error as a useful behavior. 2018-01-21T16:41:07Z Xach: (quoting the spec) 2018-01-21T16:41:20Z phoe: oh, right. this one. 2018-01-21T16:41:36Z ebzzry: hm 2018-01-21T16:42:15Z Ven`` joined #lisp 2018-01-21T16:43:38Z ebzzry: gcl segfaults with #'defmacro 2018-01-21T16:43:49Z phoe: don't use gcl 2018-01-21T16:43:55Z phoe: it's not even fully conformant. 2018-01-21T16:45:51Z fikka quit (Ping timeout: 248 seconds) 2018-01-21T16:46:36Z EvW1 quit (Ping timeout: 246 seconds) 2018-01-21T16:47:49Z ebzzry: what can you say about clasp? 2018-01-21T16:48:13Z beach: ebzzry: Ask drmeister. 2018-01-21T16:48:21Z phoe: or #clasp 2018-01-21T16:48:22Z beach: He would be the first one to know. 2018-01-21T16:48:31Z lnostdal quit (Ping timeout: 248 seconds) 2018-01-21T16:49:02Z ebzzry: ok 2018-01-21T16:50:20Z lnostdal joined #lisp 2018-01-21T16:52:16Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T16:52:21Z Achylles joined #lisp 2018-01-21T16:52:31Z Ven`` joined #lisp 2018-01-21T16:58:31Z DeadTrickster joined #lisp 2018-01-21T16:59:12Z iqubic: What is clasp? 2018-01-21T16:59:30Z phoe: Common Lisp implementation that aims for C++ interoperability. 2018-01-21T16:59:38Z phoe: #clasp will tell you more. 2018-01-21T16:59:42Z ssake quit (Remote host closed the connection) 2018-01-21T17:00:17Z pjb: ebzzry: you have to distinguish two cases: #'foo where foo is a symbol exported from CL and #'foo where foo is not exported from CL. 2018-01-21T17:01:07Z fikka joined #lisp 2018-01-21T17:01:18Z gargaml quit (Ping timeout: 246 seconds) 2018-01-21T17:03:27Z knobo3 quit (Ping timeout: 248 seconds) 2018-01-21T17:03:29Z ebzzry: pjb: where is that explained? 2018-01-21T17:03:41Z Bike joined #lisp 2018-01-21T17:03:42Z pjb: ebzzry: sections 11.1.2 2018-01-21T17:03:49Z ebzzry: pjb: ok 2018-01-21T17:04:02Z phoe: clhs 11.1.2 2018-01-21T17:04:02Z specbot: Standardized Packages: http://www.lispworks.com/reference/HyperSpec/Body/11_ab.htm 2018-01-21T17:04:59Z pjb: 11.1.2.1.2 points 2 and 3 (the exceptions deal only with flet/labels), mean that the implementation is free to fbind symbols exported from CL. 2018-01-21T17:05:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T17:06:18Z ebzzry: 11.1.2.1.2 yes 2018-01-21T17:06:45Z pagnol: phoe, zazzerino, jackdaniel on #sbcl suggested I run sbcl with --dynamic-space-size=8192, and it worked 2018-01-21T17:07:06Z gargaml joined #lisp 2018-01-21T17:07:16Z phoe: oh! 2018-01-21T17:07:17Z jackdaniel: actually it was nyef's idea 2018-01-21T17:07:22Z zazzerino: nice 2018-01-21T17:07:25Z phoe: so that's the workaround. good! 2018-01-21T17:07:26Z pagnol: it compiles and the 'quick demo' in the project's readme.md runs 2018-01-21T17:07:39Z pagnol: and does the right thing 2018-01-21T17:08:24Z pagnol: jackdaniel, oh, thanks for correcting me 2018-01-21T17:08:43Z pagnol: you folks are really helpful! 2018-01-21T17:09:59Z jackdaniel: 3:42 for lisp friendly community vs lisp smug weenies ;-) 2018-01-21T17:10:09Z jackdaniel: (↑ joke of course) 2018-01-21T17:11:02Z phoe: I heard a gossip that everyone is helpful compared to ##c 2018-01-21T17:11:07Z phoe: but that's just a gossip 2018-01-21T17:11:16Z KZiemian: see you 2018-01-21T17:11:20Z KZiemian quit (Quit: Page closed) 2018-01-21T17:11:38Z fikka joined #lisp 2018-01-21T17:13:41Z makomo joined #lisp 2018-01-21T17:13:54Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T17:14:18Z pagnol: being new to lisp I had to google to find out what this refers too and am reading http://wiki.c2.com/?SmugLispWeenie 2018-01-21T17:14:24Z pagnol: hilarious 2018-01-21T17:14:45Z phoe: oooh, c2wiki 2018-01-21T17:16:39Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T17:17:37Z gargaml quit (Quit: WeeChat 1.9.1) 2018-01-21T17:20:40Z Walex joined #lisp 2018-01-21T17:21:58Z fikka joined #lisp 2018-01-21T17:25:16Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T17:26:33Z red-dot joined #lisp 2018-01-21T17:27:52Z drmeister: I'm writing allocation profiling code for Clasp - is it better to keep track of the total memory allocated or the number of allocations? 2018-01-21T17:28:56Z drmeister: It seems to me the number of allocations is more valuable - there's overhead associated with each allocation. 2018-01-21T17:30:03Z drmeister: I'll do them both. 2018-01-21T17:31:32Z Ven`` joined #lisp 2018-01-21T17:32:04Z turkja quit (Ping timeout: 268 seconds) 2018-01-21T17:33:50Z Bike: isn't the overhead pretty tiny? 2018-01-21T17:33:51Z Colleen: Bike: drmeister said 10 hours, 42 minutes ago: bclasp seems rock solid now - no more exception handling problems that I can see. 2018-01-21T17:33:51Z Colleen: Bike: drmeister said 10 hours, 40 minutes ago: It was a very, very longstanding problem in the WITH-TRY macro when an exception bubbles up the stack. 2018-01-21T17:33:58Z Bike: oh 2018-01-21T17:35:05Z drmeister: Hi Bike 2018-01-21T17:35:18Z GuilOooo joined #lisp 2018-01-21T17:39:12Z Bike: hi 2018-01-21T17:39:28Z nowhere_man quit (Ping timeout: 268 seconds) 2018-01-21T17:41:00Z nika quit (Quit: Leaving...) 2018-01-21T17:42:07Z drewc_ joined #lisp 2018-01-21T17:42:26Z knobo4 joined #lisp 2018-01-21T17:42:54Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T17:42:57Z DeadTrickster quit (Ping timeout: 264 seconds) 2018-01-21T17:45:35Z drewc quit (Ping timeout: 248 seconds) 2018-01-21T17:46:13Z Oladon joined #lisp 2018-01-21T17:49:45Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T17:52:18Z nowhere_man joined #lisp 2018-01-21T17:52:22Z DeadTrickster joined #lisp 2018-01-21T17:54:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T17:58:55Z varjag quit (Remote host closed the connection) 2018-01-21T17:59:06Z varjag joined #lisp 2018-01-21T17:59:57Z Achylles quit (Ping timeout: 240 seconds) 2018-01-21T18:01:18Z fikka joined #lisp 2018-01-21T18:03:35Z khisanth_ quit (Ping timeout: 260 seconds) 2018-01-21T18:05:00Z scymtym quit (Ping timeout: 246 seconds) 2018-01-21T18:06:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-21T18:11:33Z fikka joined #lisp 2018-01-21T18:13:45Z Achylles joined #lisp 2018-01-21T18:15:09Z pagnol: phoe, may I ask what you were planning to use lisp-binary for initially? 2018-01-21T18:15:09Z chens``` quit (Read error: Connection reset by peer) 2018-01-21T18:15:51Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T18:16:08Z chens``` joined #lisp 2018-01-21T18:16:40Z khisanth_ joined #lisp 2018-01-21T18:19:01Z dented42 joined #lisp 2018-01-21T18:19:02Z oisjdfoasidf joined #lisp 2018-01-21T18:19:19Z oisjdfoasidf: https://pastebin.com/61SjuyYV I get "*** - CONCATENATE: #\a is not a SEQUENCE", help? 2018-01-21T18:19:32Z pjb: (vector #\a) or (list #\a) instead of #\a 2018-01-21T18:19:36Z pjb: or even "a" 2018-01-21T18:19:38Z dented42 quit (Client Quit) 2018-01-21T18:19:56Z beach: oisjdfoasidf: That code has several problems. 2018-01-21T18:20:09Z beach: oisjdfoasidf: What is result for instance? 2018-01-21T18:20:22Z oisjdfoasidf: I am brand new to lisp (coming from years of Python experience), and finding it very hard to get used to lisp. trying to write basic hangman game.. 2018-01-21T18:20:24Z beach: oisjdfoasidf: It looks like a non-existing variable, and that is not allowed. 2018-01-21T18:21:15Z pjb: oisjdfoasidf: http://cliki.net/com.informatimago.hangman 2018-01-21T18:21:26Z pjb: oisjdfoasidf: try LET 2018-01-21T18:21:28Z pjb: clhs let 2018-01-21T18:21:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_let_l.htm 2018-01-21T18:21:33Z oisjdfoasidf: pjb: thanks 2018-01-21T18:21:35Z beach: oisjdfoasidf: IF in Common Lisp is a form with a value, so you can write: (setq result (concatenate 'string result (if (find c guesses) x y))) 2018-01-21T18:21:53Z pjb: oisjdfoasidf: but more probably, you'd want to use a functional expression, not a procedural one! 2018-01-21T18:22:17Z beach: oisjdfoasidf: Only in languages where IF is a statement must you duplicate the (setq result (concatenate 'string result ....)) 2018-01-21T18:22:19Z pjb: oisjdfoasidf: also, your function doesn't do I/O, so don't include "PRINT-" in its name! 2018-01-21T18:22:44Z oisjdfoasidf: pjb: ok 2018-01-21T18:23:19Z pjb: (defun current-matches (word guess) (map 'string (lambda (word-char guess-char) (if (char= word-char guess-char) word-char #\-)) word guess)) (current-matches "apple" "ajkle") #| --> "a--le" |# 2018-01-21T18:23:42Z oisjdfoasidf: pjb: thanks I'll try that example 2018-01-21T18:23:51Z pjb: or s/current-matches/match-word/ 2018-01-21T18:24:14Z aene quit (Remote host closed the connection) 2018-01-21T18:25:08Z oisjdfoasidf quit (Quit: Page closed) 2018-01-21T18:25:12Z pjb: (defun revealed-word (word guesses) (map 'string (lambda (word-char) (if (find word-char guesses) word-char #\-)) word)) (revealed-word "apple" "ajklexyz") #| --> "a--le" |# 2018-01-21T18:25:35Z nowhere_man quit (Ping timeout: 248 seconds) 2018-01-21T18:25:43Z pjb: s/word-char/letter/ of course… 2018-01-21T18:26:46Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T18:27:34Z SpikeMaster joined #lisp 2018-01-21T18:27:51Z red-dot joined #lisp 2018-01-21T18:28:23Z scymtym joined #lisp 2018-01-21T18:31:12Z AeroNotix: Shinmera: trial is completely unrelated to cepl? 2018-01-21T18:31:18Z Shinmera: Yes 2018-01-21T18:31:21Z AeroNotix: ok 2018-01-21T18:31:25Z fikka joined #lisp 2018-01-21T18:31:29Z Shinmera: Why are you asking? 2018-01-21T18:32:02Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-21T18:32:03Z AeroNotix: Shinmera: Just asking. I see you and baggers chatting often (in his stream etc) and you are working on different but similar things. Just think it's interesting 2018-01-21T18:32:12Z Shinmera: Ah, sure. 2018-01-21T18:32:20Z Shinmera: Starting my gamedev stream in 30 minutes, by the way. 2018-01-21T18:32:31Z AeroNotix: Shinmera: oh I thought it already finished 2018-01-21T18:32:36Z Shinmera: https://events.tymoon.eu/1 2018-01-21T18:32:52Z AeroNotix: I usually don't watch streams because they're too slow and end up waiting til they're on youtube so I can put them on 2x or 3x speed 2018-01-21T18:32:55Z AeroNotix: but I'll definitely check it out 2018-01-21T18:33:01Z Shinmera: Alright. 2018-01-21T18:33:16Z AeroNotix: not that the content isn't interesting, https://www.youtube.com/watch?v=_DjEK3DMY_0 I'm watching this right now 2018-01-21T18:33:26Z AeroNotix: just meant that I prefer them to be a little faster 2018-01-21T18:33:33Z Shinmera: Sure, I can understand that. 2018-01-21T18:33:41Z AeroNotix: really making me want to write a little 2D game :) 2018-01-21T18:34:01Z AeroNotix: no experience with anything like this. I find CEPL tricky to just "get started" in it. 2018-01-21T18:34:03Z dented42 joined #lisp 2018-01-21T18:34:44Z AeroNotix: I'd love to make some wicked 2d game mixing CL+Erlang 2018-01-21T18:34:49Z AeroNotix: multiplate 2018-01-21T18:34:51Z AeroNotix: multiplayer 2018-01-21T18:35:34Z Shinmera: Getting into graphics stuff is tough. There's a lot of crap to learn up front before you can get anything done. 2018-01-21T18:36:00Z AeroNotix: yeah exactly. I'm a proficient programmer and have been programming for years but there's something about graphics libraries that seem so daunting 2018-01-21T18:36:09Z AeroNotix: lots of terminology and extremely baroque libraries 2018-01-21T18:36:15Z fikka quit (Ping timeout: 248 seconds) 2018-01-21T18:36:21Z AeroNotix: not that trial is, I'm more talking about the raw C libraries 2018-01-21T18:36:37Z Shinmera: Well, I'm sure Trial isn't easy to get into either 2018-01-21T18:36:52Z Shinmera: Mostly cause it's very unfinished and there's zero documentation 2018-01-21T18:36:52Z AeroNotix: haha, will check it out. 2018-01-21T18:37:17Z AeroNotix: It'd be good if for people's games libraries they literally made an example game which had you move a square inside a box. 2018-01-21T18:37:39Z AeroNotix: anyway, will check the stream and trial out tonight 2018-01-21T18:37:52Z aeth: They might have an examples directory 2018-01-21T18:38:29Z Shinmera: For Trial there's https://www.youtube.com/watch?v=0v6iv_3BLeo, but it is pretty detailed (and slightly out of date by now) 2018-01-21T18:38:48Z Shinmera: So I don't know how helpful that would be. Honestly can't recommend anyone to get into it right now that doesn't want to just do engine work. 2018-01-21T18:38:49Z AeroNotix: Shinmera: thanks. Will check that out 2018-01-21T18:39:03Z SpikeMaster quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-21T18:39:13Z aeth: My nowhere-near-complete engine has an examples directory. I'm done developing the API when the examples are elegant. Very useful for me to have. I'm sure more complete projects have the same idea. 2018-01-21T18:39:26Z AeroNotix: It's amazing watching these streams, going from drawing a ground/wall tile to having it appear in a game and then loading up sprites that then shoot seems so simple. But you're clearly familiar with the API. 2018-01-21T18:39:41Z AeroNotix: aeth: why so many game engines :) 2018-01-21T18:39:52Z Shinmera: When the tooling works making games can be amazing. 2018-01-21T18:39:53Z pjb: NIH 2018-01-21T18:40:10Z warweasle quit (Quit: Leaving) 2018-01-21T18:40:23Z aeth: AeroNotix: I started before anything existed. It just takes a very long time. 2018-01-21T18:40:32Z AeroNotix: aeth: understandable 2018-01-21T18:40:56Z aeth: Even now, maybe 2 or 3 are actually not under construction 2018-01-21T18:41:36Z aeth: (Probably 6 are unstable in their APIs) 2018-01-21T18:42:04Z AeroNotix: Shinmera: what are you streaming today? 2018-01-21T18:42:18Z Shinmera: AeroNotix: says so at the bottom of the event page 2018-01-21T18:42:20Z aeth: It's hard to tell what's out there because the line between library, framework, and engine is blurry 2018-01-21T18:42:22Z AeroNotix: Shinmera: my bad 2018-01-21T18:42:35Z aeth: Some engines are built on other engines, too 2018-01-21T18:42:53Z AeroNotix: aeth: it's not just a CL problem, there's TONNES of graphics libraries and related things to use. Kind of paralysing if you want to just jump into something 2018-01-21T18:43:03Z AeroNotix: idunno, just me citing other reasons for being lazy and not jumping in :) 2018-01-21T18:44:11Z pyx joined #lisp 2018-01-21T18:44:35Z pyx quit (Client Quit) 2018-01-21T18:44:58Z epony quit (Read error: Connection reset by peer) 2018-01-21T18:45:31Z Oladon quit (Quit: Leaving.) 2018-01-21T18:45:54Z aeth: AeroNotix: (1) It's complicated enough for many different abstractions to make sense but not complicated enough to seem impossible, (2) most things wind up being outdated and it's easier to NIH than to update an older library 2018-01-21T18:46:33Z Shinmera: I've always had the bad habit of writing more engine than application code, so here I am never getting any actual games out 2018-01-21T18:46:44Z aeth: But #2 mostly doesn't apply to Lisp. It only has a few heavily-outdated libraries. It explains a few things, though, like cl-glfw vs. cl-glfw3 2018-01-21T18:47:10Z aeth: (cl-glfw3 was probably easier for the author than updating the original) 2018-01-21T18:48:19Z attila_lendvai joined #lisp 2018-01-21T18:48:20Z EvW joined #lisp 2018-01-21T18:48:46Z AeroNotix: are there any popular games written in CL? E.g. something indie on steam 2018-01-21T18:49:25Z aeth: AeroNotix: dto has released many games on itch.io and ported at least one to Android 2018-01-21T18:49:49Z aeth: I'm not sure if any are on Steam 2018-01-21T18:50:02Z Shinmera: The closest to an actual game was Shirakumo's last LD entry: https://ldjam.com/events/ludum-dare/39/rush 2018-01-21T18:50:24Z aeth: https://dto.itch.io/ 2018-01-21T18:50:25Z Shinmera: Other than that all I've produced were prototypes that never got anywhere 2018-01-21T18:51:40Z fikka joined #lisp 2018-01-21T18:54:05Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T18:54:13Z aeth: I intentionally don't release things, although I'm getting closer to 70% or so of a basic game (ignoring some ignorable things like sound for now). Anything released would become a maintenance nightmare if the API isn't final. I suspect many others are in a similar situation. 2018-01-21T18:56:40Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T18:56:43Z malice joined #lisp 2018-01-21T18:58:24Z solyd quit (Quit: solyd) 2018-01-21T18:58:34Z aeth: itch.io hosts Lisp game jams regularly (where "Lisp" there means "the Lisp family", but it's mostly Common Lisp). e.g. https://itch.io/jam/lisp-game-jam-2017-easy-mode/entries 2018-01-21T19:02:12Z fikka joined #lisp 2018-01-21T19:03:41Z phoe: pagnol: parsing a binary format. 2018-01-21T19:03:53Z phoe: I ended up parsing it manually using fast-io instead. 2018-01-21T19:04:55Z solyd joined #lisp 2018-01-21T19:05:44Z dented42 joined #lisp 2018-01-21T19:06:36Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T19:06:54Z AeroNotix: phoe: there's a couple of libraries for parsing binary streams 2018-01-21T19:06:57Z AeroNotix: some are incredibly good 2018-01-21T19:07:34Z solyd quit (Client Quit) 2018-01-21T19:07:35Z phoe: AeroNotix: I have already managed to succeed with the parsing, thank you for the offer though. 2018-01-21T19:07:43Z knobo4 quit (Ping timeout: 248 seconds) 2018-01-21T19:08:08Z AeroNotix: phoe: http://www.cliki.net/Binary-types think this is the one I used in the past 2018-01-21T19:08:18Z Xach: Yowza 2018-01-21T19:08:24Z phoe: I tried using it, didn't succeed though. 2018-01-21T19:08:41Z jackdaniel used binary-types succesfully in the past 2018-01-21T19:09:13Z Xach: I had a macro IN-ANONYMOUS-DIRECTORY that would make a temporary random directory, set *d-p-d* to that directory, evaluate a body, and then clean up the directory. 2018-01-21T19:09:46Z AeroNotix: Xach: are you going to say you accidentally rm -rf /? 2018-01-21T19:09:48Z Xach: but I had a typo and had something like (in-anonymous-directoryk (write-report *default-pathname-defaults*) (upload-report *default-pathname-defaults*))) 2018-01-21T19:10:18Z phoe: did that compile? 2018-01-21T19:10:29Z Xach: yes, sure. no problem referencing undefined functions. 2018-01-21T19:10:37Z phoe: or did it overwrite your vanilla *default-pathname-defaults*? 2018-01-21T19:10:44Z phoe: since the arg is evaluated first 2018-01-21T19:10:48Z Xach: and evaluation rules meant that each part of the body ran. but it started publishing way more stuff than i wanted. 2018-01-21T19:10:51Z phoe: args* 2018-01-21T19:11:06Z Xach: the uploader expects the report to be the only contents 2018-01-21T19:11:13Z Xach: instead it was uploading my entire system, practically 2018-01-21T19:11:17Z phoe: but it was your whole homedir instead 2018-01-21T19:11:23Z phoe: Yowza 2018-01-21T19:11:41Z Xach: i actually lucked out because i had an encoded pathname and it broke the request signature 2018-01-21T19:11:47Z jackdaniel: sounds like a plan for transparency ;-) 2018-01-21T19:12:09Z dieggsy joined #lisp 2018-01-21T19:12:23Z Xach: Back in ye olden times, people sometimes did "touch ./-i" to force rm to be interactive. 2018-01-21T19:12:31Z Xach: I wonder about other poison pills for my mistake... 2018-01-21T19:13:08Z pjb: Well, I was bitten by: rm -rf ${DIR}/${SUBDIR} ; tested well under user accounts, but under root, DIR and SUBDIR were empty! 2018-01-21T19:13:31Z pjb: so touch ./-i woudn't be of use… 2018-01-21T19:13:54Z phoe: $ sudo rm /usr /lib/thunderbird/* 2018-01-21T19:14:01Z pjb: That's when I patched rm itself (and now gnu rm has a similar patch). 2018-01-21T19:14:38Z AeroNotix: something off topic but I hate how slack downloads snippets with the filename "-.txt" 2018-01-21T19:16:52Z yeticry quit (Read error: Connection reset by peer) 2018-01-21T19:22:10Z fikka joined #lisp 2018-01-21T19:26:54Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T19:27:14Z aeth: pjb: are you serious? That's bad. 2018-01-21T19:28:03Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T19:29:21Z red-dot joined #lisp 2018-01-21T19:31:19Z smasta joined #lisp 2018-01-21T19:31:55Z Bike: wait, doesn't the shell interpolation just give rm "/"? how could it detect that? 2018-01-21T19:33:12Z EvW quit (Ping timeout: 246 seconds) 2018-01-21T19:34:56Z EvW joined #lisp 2018-01-21T19:38:23Z jmercouris joined #lisp 2018-01-21T19:38:36Z jmercouris: good evening everyone 2018-01-21T19:38:51Z jmercouris: Shinmera: Just wondering, why is it called "Treehouse"? 2018-01-21T19:42:29Z fikka joined #lisp 2018-01-21T19:45:16Z Achylles quit (Ping timeout: 268 seconds) 2018-01-21T19:47:06Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-21T19:47:25Z fikka quit (Ping timeout: 260 seconds) 2018-01-21T19:49:23Z Murii is now known as webgl2 2018-01-21T19:49:34Z BitPuffin is now known as webgl 2018-01-21T19:49:41Z webgl2 is now known as BitPuffin 2018-01-21T19:49:49Z BitPuffin is now known as Murii 2018-01-21T19:50:07Z webgl is now known as Muresan 2018-01-21T19:50:16Z Murii is now known as BitPuffin 2018-01-21T19:50:20Z Muresan is now known as Murii 2018-01-21T19:52:54Z fikka joined #lisp 2018-01-21T19:53:00Z Murii is now known as Allah 2018-01-21T19:53:05Z Oladon joined #lisp 2018-01-21T19:53:09Z BitPuffin is now known as Ahbar 2018-01-21T19:53:14Z Allah is now known as BitPuffin 2018-01-21T19:53:48Z Ahbar is now known as TOFastForYa 2018-01-21T19:54:11Z TOFastForYa is now known as Murii 2018-01-21T19:56:10Z dilated_dinosaur quit (Remote host closed the connection) 2018-01-21T19:56:22Z jmercouris: Anyone have experience with: https://github.com/AlexCharlton/site-generator? 2018-01-21T19:56:56Z jmercouris: I see that you can name your own markup you like via :markup to any value supported by pandoc 2018-01-21T19:57:21Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T19:57:30Z jmercouris: The only question is, for things like images, how do you like them let's say if you are using emacs org mode, will it be smart enough to see a link to the static dir and make an appropriate link? 2018-01-21T19:57:38Z jmercouris: s/like/link 2018-01-21T19:57:41Z knobo joined #lisp 2018-01-21T19:57:46Z jmercouris: I guess I'll have to test it to find out 2018-01-21T19:57:47Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T19:59:41Z dilated_dinosaur joined #lisp 2018-01-21T19:59:56Z knobo: I'm using websocket-driver, and I need to keep som extra data in the websocket object. I could extend the class, and do a change-class after it is created. 2018-01-21T20:00:18Z fikka joined #lisp 2018-01-21T20:00:19Z knobo: But someone once warned me against using change-class. But I don't remember why. 2018-01-21T20:00:27Z phoe: knobo: can't you subclass it? 2018-01-21T20:00:45Z knobo: Yes, that's what I want. 2018-01-21T20:00:51Z phoe: so what is preventing you? 2018-01-21T20:01:07Z knobo: I could do that. And that is what i was planning. 2018-01-21T20:01:15Z damke_ joined #lisp 2018-01-21T20:01:19Z knobo: The reason I need to do change-class after it is initiated 2018-01-21T20:01:19Z phoe: how are the instances constructed? 2018-01-21T20:01:40Z knobo: Is that the library has it's own make-websocket-class function that does some initiation. 2018-01-21T20:01:48Z knobo: And I don't want to duplicate that code. 2018-01-21T20:01:50Z josemanuel joined #lisp 2018-01-21T20:01:54Z phoe: so not using make-instance. 2018-01-21T20:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-21T20:04:01Z knobo: the wsd:make-server does some things to the object that is returned to me.. (apply #'make-instance 'server .......) 2018-01-21T20:05:08Z knobo: https://github.com/fukamachi/websocket-driver/blob/master/src/server.lisp 2018-01-21T20:05:17Z knobo: I just did not want to duplicate that code. 2018-01-21T20:06:11Z knobo: Even though it's not much code, it makes it dificult to maintain. 2018-01-21T20:07:13Z payphone joined #lisp 2018-01-21T20:08:31Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-21T20:09:03Z mepian quit (Ping timeout: 248 seconds) 2018-01-21T20:09:54Z knobo: So, no obvious resons to not use change-class.. 2018-01-21T20:11:18Z igemnace joined #lisp 2018-01-21T20:13:04Z phoe: sounds like change-class would be the necessary evil in this case. 2018-01-21T20:14:42Z malice: knobo: Why do you need to keep the data in the websocket object, and why couldn't you for example wrap the object in other object? 2018-01-21T20:15:20Z knobo: I don't know how to wrap objects. 2018-01-21T20:15:26Z knobo: :P 2018-01-21T20:15:38Z _death: knobo: I think change-class is acceptable in this scenario 2018-01-21T20:16:13Z knobo: I can not keep it in the session object, because a user can be connected with several browser windows, and multiple connections in same window. 2018-01-21T20:16:45Z knobo: Thank you guys for the support :) 2018-01-21T20:17:42Z Karl_Dscc quit (Remote host closed the connection) 2018-01-21T20:17:43Z Pixel_Outlaw joined #lisp 2018-01-21T20:23:35Z ebzzry quit (Ping timeout: 260 seconds) 2018-01-21T20:26:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-21T20:29:33Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T20:29:44Z Bike quit (Remote host closed the connection) 2018-01-21T20:30:22Z red-dot joined #lisp 2018-01-21T20:32:08Z xrash joined #lisp 2018-01-21T20:33:40Z smurfrobot joined #lisp 2018-01-21T20:33:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T20:35:04Z fikka joined #lisp 2018-01-21T20:36:49Z dxtr joined #lisp 2018-01-21T20:40:38Z dmiles quit (Ping timeout: 255 seconds) 2018-01-21T20:41:15Z Bike joined #lisp 2018-01-21T20:43:41Z eminhi joined #lisp 2018-01-21T20:44:54Z dmiles joined #lisp 2018-01-21T20:47:32Z dxtr quit (Ping timeout: 276 seconds) 2018-01-21T20:48:25Z mepian joined #lisp 2018-01-21T20:48:30Z mepian quit (Changing host) 2018-01-21T20:48:30Z mepian joined #lisp 2018-01-21T20:51:19Z smasta joined #lisp 2018-01-21T20:52:15Z zazzerino quit (Ping timeout: 256 seconds) 2018-01-21T20:55:24Z epony joined #lisp 2018-01-21T20:55:59Z smasta quit (Ping timeout: 248 seconds) 2018-01-21T20:56:11Z BitPuffin quit (Remote host closed the connection) 2018-01-21T20:56:45Z dtornabene joined #lisp 2018-01-21T21:01:53Z dxtr joined #lisp 2018-01-21T21:08:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-21T21:13:07Z smasta joined #lisp 2018-01-21T21:14:11Z fikka joined #lisp 2018-01-21T21:16:43Z pmetzger quit 2018-01-21T21:18:37Z smurfrobot quit (Remote host closed the connection) 2018-01-21T21:18:54Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T21:20:36Z nowhere_man joined #lisp 2018-01-21T21:26:20Z random-nick quit (Remote host closed the connection) 2018-01-21T21:29:44Z eudoxia joined #lisp 2018-01-21T21:30:35Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T21:31:09Z Murii quit (Quit: WeeChat 1.4) 2018-01-21T21:31:55Z red-dot joined #lisp 2018-01-21T21:33:46Z fikka joined #lisp 2018-01-21T21:35:15Z zazzerino joined #lisp 2018-01-21T21:35:29Z eivarv joined #lisp 2018-01-21T21:36:12Z shifty joined #lisp 2018-01-21T21:41:52Z DeadTrickster_ joined #lisp 2018-01-21T21:42:26Z DeadTrickster quit (Ping timeout: 268 seconds) 2018-01-21T21:42:49Z drewc_ is now known as drewc 2018-01-21T21:43:17Z dxtr quit (Quit: leaving) 2018-01-21T21:43:23Z eivarv quit (Quit: Quit) 2018-01-21T21:43:25Z dxtr joined #lisp 2018-01-21T21:44:22Z warweasle joined #lisp 2018-01-21T21:58:41Z eivarv joined #lisp 2018-01-21T22:01:35Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-01-21T22:02:49Z quazimodo joined #lisp 2018-01-21T22:03:26Z wxie joined #lisp 2018-01-21T22:04:57Z brendyn joined #lisp 2018-01-21T22:05:40Z lnostdal quit (Ping timeout: 260 seconds) 2018-01-21T22:08:02Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-21T22:10:39Z shka quit (Ping timeout: 248 seconds) 2018-01-21T22:11:26Z eivarv quit (Quit: Sleep) 2018-01-21T22:12:04Z Shinmera: ::notify jmercouris Cause it's a place to hang out with friends and chill on the weekend. 2018-01-21T22:12:04Z Colleen: Shinmera: Got it. I'll let jmercouris know as soon as possible. 2018-01-21T22:12:14Z lnostdal joined #lisp 2018-01-21T22:12:46Z eivarv joined #lisp 2018-01-21T22:15:49Z DeadTrickster joined #lisp 2018-01-21T22:15:57Z DeadTrickster_ quit (Ping timeout: 246 seconds) 2018-01-21T22:16:27Z warweasle quit (Ping timeout: 240 seconds) 2018-01-21T22:21:39Z wxie quit (Remote host closed the connection) 2018-01-21T22:21:48Z eivarv quit (Quit: Sleep) 2018-01-21T22:25:16Z pagnol: Shinmera, hey, how you are doing? :) 2018-01-21T22:25:46Z dented42 joined #lisp 2018-01-21T22:26:00Z Shinmera: Tired because it's late, stressed due to upcoming exams, and salty as I had a losing streak in Splatoon a while ago. 2018-01-21T22:26:06Z Shinmera: Otherwise fine though 2018-01-21T22:26:33Z earl-ducaine joined #lisp 2018-01-21T22:26:33Z warweasle joined #lisp 2018-01-21T22:26:38Z pagnol: Have you been working on the kanji thing? 2018-01-21T22:26:49Z iqubic: So lisp only supports prefix notation? 2018-01-21T22:26:54Z Shinmera: No, I'm currently working on hardly anything. 2018-01-21T22:27:01Z pagnol: How so? 2018-01-21T22:27:08Z Shinmera: The exams I just mentioned? 2018-01-21T22:27:12Z pagnol: Ah right 2018-01-21T22:27:28Z antoszka: iqubic: lisp supports any notation you tell it to use, but usually you'll use the built-in one, which is mostly prefixy 2018-01-21T22:27:28Z pagnol: What are they about? 2018-01-21T22:27:29Z iqubic: Even for mathematical operators? You only get prefix notation? Like how do you compare numbers? 2018-01-21T22:27:52Z Shinmera: pagnol: Nothing lispy, that's for sure. 2018-01-21T22:28:02Z antoszka: iqubic: (< 4 5) => T 2018-01-21T22:28:19Z knobo: hmmm. It's like asking permission from my parents, "May I please use the change-class, mom? Please.. Just once. Ahhh... come on! That's not fair.. Ok, then. thanx" :P 2018-01-21T22:28:34Z antoszka: iqubic: also (< 4 5 7 10) => T, try that in infix notation :) 2018-01-21T22:28:52Z dented42 quit (Client Quit) 2018-01-21T22:29:59Z iqubic: "4 < 5 && 5 < 7 && 7 < 10" 2018-01-21T22:30:10Z iqubic: Wow, that is ugly. 2018-01-21T22:30:10Z Shinmera: antoszka: (< 7) => T, try THAT in infix :^) 2018-01-21T22:30:25Z iqubic: How does that work Shinmera? 2018-01-21T22:30:27Z antoszka: Yeah, or those (*) and (+). 2018-01-21T22:30:30Z ikki joined #lisp 2018-01-21T22:30:50Z pagnol: antoszka, ICON supports that 2018-01-21T22:30:59Z eivarv joined #lisp 2018-01-21T22:31:14Z Shinmera: iqubic: By being specified to work 2018-01-21T22:31:29Z iqubic: Wait, (+ foo) returns the value of foo? 2018-01-21T22:31:41Z antoszka: I'm totally not suggesting lisps are the only languages that support zero-argument arithmetic functions. 2018-01-21T22:32:02Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T22:32:20Z iqubic: Yes, but with zero argument arithmetic operations you get the identity. 2018-01-21T22:32:40Z iqubic: So I assume (+) and (*) are defined as folds? 2018-01-21T22:32:50Z aeth: iqubic: (+ foo) returns the value of foo if foo is a number, (- foo) negates the value of foo. (* foo) also returns the value of the number. (/ foo) gives the same result as (/ 1 foo) 2018-01-21T22:32:56Z antoszka: Exactly, that's why (+) returns 0 and (*) returns 1, identity. 2018-01-21T22:33:10Z red-dot joined #lisp 2018-01-21T22:33:21Z iqubic: Does lisp have a map function? 2018-01-21T22:33:29Z antoszka: As Shinmera said it's a matter of specification (and convention, too). 2018-01-21T22:33:32Z iqubic: Yeah, it's called mapcar. 2018-01-21T22:33:33Z antoszka: iqubic: Many. 2018-01-21T22:33:36Z aeth: - and / are trickier because they don't have a 0-value form and their 1-value form is less expected than + and * 2018-01-21T22:33:42Z antoszka: Including mapcar. 2018-01-21T22:33:55Z iqubic: Does lisp have any way to fold over a list of values? 2018-01-21T22:34:00Z aeth: reduce 2018-01-21T22:34:36Z iqubic: I don't understand what the rest and key args do there though. 2018-01-21T22:35:09Z antoszka: iqubic: The lambda list specification is rather rich in Common Lisp it might take a while to sink into. 2018-01-21T22:35:30Z iqubic: What is the lambda list specification? 2018-01-21T22:35:56Z iqubic: I'm talking about not understanding the &rest and &key args of reduce. 2018-01-21T22:36:13Z antoszka: Ah, those. 2018-01-21T22:36:17Z antoszka: In particular. 2018-01-21T22:36:20Z aeth: iqubic: map is probably more useful than mapcar because it works on any sequence and can return any sequence, e.g.: (map 'string (lambda (c) (code-char (- (char-code c) 1))) "Ifmmp-!xpsme\"") 2018-01-21T22:36:41Z _death: iqubic: what &rest args 2018-01-21T22:36:42Z iqubic: That's cool 2018-01-21T22:37:33Z iqubic: The &rest args in reduce. 2018-01-21T22:37:42Z _death: clhs reduce 2018-01-21T22:37:42Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_reduce.htm 2018-01-21T22:37:43Z aeth: Oh and people who are using EBCDIC-based Lisps will forever wonder what message I was trying to send. 2018-01-21T22:37:57Z _death: don't see any &rest there 2018-01-21T22:38:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-21T22:38:31Z iqubic: _death: slime is telling me that reduce has &rest. 2018-01-21T22:38:34Z antoszka: iqubic: there's no &rest in reduce's standard implementation. 2018-01-21T22:38:46Z attila_lendvai quit (Quit: Leaving.) 2018-01-21T22:38:49Z _death: iqubic: so the first step to understand is to move from slime to clhs 2018-01-21T22:38:54Z antoszka: iqubic: there are just some keyword arguments that specify which part of the list to extract for processing. 2018-01-21T22:39:07Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-21T22:39:08Z iqubic: I see. 2018-01-21T22:39:33Z iqubic: is slime not the right way to interact with lisp? 2018-01-21T22:40:33Z zazzerino: it is, but for learning how a function works you want to look at the hyperspec 2018-01-21T22:40:43Z iqubic: Can one define their own sequence for use with map? 2018-01-21T22:41:02Z smasta joined #lisp 2018-01-21T22:41:05Z dented42 joined #lisp 2018-01-21T22:41:25Z _death: some implementations provide a way 2018-01-21T22:41:27Z Shinmera: If the implementation supports the extensible sequences protocol, probably. 2018-01-21T22:41:31Z iqubic: Or is there a default set of sequences I have to pick from. 2018-01-21T22:41:39Z Shinmera: clhs sequence 2018-01-21T22:41:39Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_seq.htm 2018-01-21T22:42:11Z stux|RC-only quit (Remote host closed the connection) 2018-01-21T22:43:07Z aeth: sequences are, by default, 1D arrays or lists made from conses 2018-01-21T22:43:18Z Ven`` joined #lisp 2018-01-21T22:43:20Z aeth: this does eliminate a lot of interesting options, particularly with lists 2018-01-21T22:43:32Z aeth: (strings are just 1D arrays that only hold type character) 2018-01-21T22:44:05Z iqubic: I really need to find a good lisp tutorial to work from. 2018-01-21T22:44:19Z aeth: (characters are a type that can be converted to/from a number with char-code/code-char; that's implementation-specific, but the ASCII range is probably portable over every currently-alive implementation) 2018-01-21T22:44:50Z zazzerino: iqubic: read 'Practical Common Lisp' http://www.gigamonkeys.com/book/ 2018-01-21T22:45:24Z aeth: The weaknesses here are different character encodings (fortunately, Unicode has mostly won) and different types of sequences (e.g. doubly linked lists, typed lists, lazy lists, etc.) 2018-01-21T22:45:34Z dented42 quit (Client Quit) 2018-01-21T22:46:12Z iqubic: What kind of sequence does sbcl use as the default? 2018-01-21T22:46:34Z aeth: there is no default for make-sequence, you have to give the result type, like with map 2018-01-21T22:46:50Z aeth: 1D arrays (vectors) and lists are just too different 2018-01-21T22:47:14Z dented42 joined #lisp 2018-01-21T22:47:33Z josemanuel quit (Quit: leaving) 2018-01-21T22:48:14Z aeth: You'd use vector or make-array for the first category and list or make-list for the second, with string and make-string as unnecessary but useful (you can just make-array with a :element-type 'character instead) 2018-01-21T22:48:27Z ikki quit (Ping timeout: 240 seconds) 2018-01-21T22:49:01Z antoszka: iqubic: The “typical” sequences you'll get to deal with in CL would probably be lists (obviously), strings and 1-or-more dimensional arrays. 2018-01-21T22:49:02Z aeth: Code that works on all sequences will probably have two completely different implementations, one for vectors and one for lists. It might have more than two if it wants to be very efficient, e.g. implementations of map probably have many versions 2018-01-21T22:49:59Z aeth: With sequences and numbers, type information can make your code very efficient because if the compiler knows the type, it can skip runtime dispatch based on type. 2018-01-21T22:51:25Z aeth: antoszka: Unfortunately, multi-dimensional arrays aren't sequences. A lot of the time treating them as sequences would actually be useful. 2018-01-21T22:51:41Z pagnol: phoe, I'm pretty stoked about the lisp-binary library currently 2018-01-21T22:52:54Z antoszka: aeth: True. 2018-01-21T22:53:03Z antoszka: I made a mental shortcut here. 2018-01-21T22:53:15Z aeth: Multidimensional arrays and multiple return values are neglected in the standard. Any code that uses either heavily is probably going to reinvent a lot of the same macros and functions. 2018-01-21T22:53:24Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T22:53:40Z _death: aeth: you can use displaced arrays 2018-01-21T22:55:16Z aeth: _death: (map 'matrix (lambda (x) (* x 1)) some-matrix) would have been so much better than the many ways you can currently work around that limitation. Although the actual flat order is possibly implementation-dependent, so it would mostly be useful for pure functions on one 2D array. 2018-01-21T22:56:14Z _death: if you want array operations, there are libraries for that already 2018-01-21T22:56:33Z cgay joined #lisp 2018-01-21T22:56:35Z mishoo quit (Ping timeout: 240 seconds) 2018-01-21T22:56:45Z aeth: I know. About half of my utility library is making 2D arrays easier to work with. 2018-01-21T22:57:32Z _death: lisp is raw material, the job of a programmer is to work with that 2018-01-21T22:58:07Z wigust- joined #lisp 2018-01-21T22:58:22Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T22:58:39Z wigust quit (Ping timeout: 246 seconds) 2018-01-21T23:00:48Z milanj_ joined #lisp 2018-01-21T23:01:56Z warweasle quit (Quit: Leaving) 2018-01-21T23:02:23Z milanj quit (Ping timeout: 248 seconds) 2018-01-21T23:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-21T23:04:08Z __main__ quit (Read error: Connection reset by peer) 2018-01-21T23:05:32Z damke_ joined #lisp 2018-01-21T23:06:24Z _main_ joined #lisp 2018-01-21T23:06:50Z _main_ quit (Read error: Connection reset by peer) 2018-01-21T23:08:15Z wigust- quit (Ping timeout: 248 seconds) 2018-01-21T23:08:26Z _main_ joined #lisp 2018-01-21T23:08:35Z shifty quit (Ping timeout: 240 seconds) 2018-01-21T23:08:59Z fikka joined #lisp 2018-01-21T23:12:29Z _main_ quit (Read error: Connection reset by peer) 2018-01-21T23:14:19Z fikka quit (Ping timeout: 268 seconds) 2018-01-21T23:17:27Z knobo quit (Ping timeout: 240 seconds) 2018-01-21T23:21:01Z epony quit (Quit: QUIT) 2018-01-21T23:21:26Z eminhi quit (Quit: leaving) 2018-01-21T23:22:08Z epony joined #lisp 2018-01-21T23:22:26Z __main__ joined #lisp 2018-01-21T23:23:28Z pagnol: I have a byte vector and would like to get a stream as though I had used with-open-file and (unsigned-byte 8) as element-type 2018-01-21T23:23:44Z pagnol: is there something I can use? 2018-01-21T23:25:01Z Xach: pagnol: flexi-streams can do it. 2018-01-21T23:25:02Z _death: flexi-streams has a with-input-from-sequence 2018-01-21T23:25:31Z pjb: pagnol: notice that it is much much faster to use aref… 2018-01-21T23:25:41Z Shinmera: Flexi-streams is kinda slow 2018-01-21T23:25:57Z pjb: I can't understand how people who use sbcl and specialized vectors "for speed" are the same who use flexi-streams… 2018-01-21T23:26:53Z _death: 80-20 rule? 2018-01-21T23:27:34Z pagnol: I'm messing around with the lisp-binary library and unless I missed something, then the function read-binary only takes streams 2018-01-21T23:27:57Z pagnol: my data doesn't arrive as a stream though 2018-01-21T23:29:14Z fikka joined #lisp 2018-01-21T23:29:28Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T23:29:43Z moei quit (Quit: Leaving...) 2018-01-21T23:29:54Z aeth: pagnol: You can define a custom stream with trivial-gray-streams. All you would need to do is inherit from fundamental-binary-output-stream and/or fundamental-binary-input-stream and define the proper methods 2018-01-21T23:30:05Z Kaisyu joined #lisp 2018-01-21T23:30:08Z pagnol: aha 2018-01-21T23:30:25Z aeth: Just store your array in a slot in the new class 2018-01-21T23:30:29Z pjb: what about lisp-binary:wrap-in-bit-stream ? 2018-01-21T23:30:35Z pagnol: I encountered 'gray stream' somewhere today... 2018-01-21T23:30:40Z _death: you could hack flexi-streams to support sharing so it doesn't need to subseq.. if it's still as according to my notes from years ago 2018-01-21T23:31:31Z epony quit (Quit: re-installing os.) 2018-01-21T23:32:06Z dented42 joined #lisp 2018-01-21T23:32:33Z pagnol: ah, wrap-in-bit-stream might do it? 2018-01-21T23:32:40Z pagnol: I'll give it a shot 2018-01-21T23:32:42Z pjb: Well, no. It only takes streams. 2018-01-21T23:33:06Z aeth: Making a stream with trivial-gray-streams is very concise. Your implementation will probably be < 30 lines. 2018-01-21T23:33:17Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-21T23:33:26Z pagnol: I was using with-wrapped-in-bit-stream for byte-streams before 2018-01-21T23:33:28Z aeth: binary streams are the easier ones (character streams are the harder ones) 2018-01-21T23:33:40Z Achylles joined #lisp 2018-01-21T23:33:52Z pjb: Perhaps you can extend lisp-binary::bit-stream ? 2018-01-21T23:33:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-21T23:34:09Z pagnol: I'll try to get it to work with flex-stream and worry about performance later 2018-01-21T23:34:27Z red-dot joined #lisp 2018-01-21T23:35:44Z warweasle joined #lisp 2018-01-21T23:37:11Z pagnol: now I get an error from flexi-streams saying my sequence can't be decoded using utf-8... why the heck is it even trying to do that? 2018-01-21T23:37:27Z pierpa joined #lisp 2018-01-21T23:37:55Z _death: pagnol: you didn't read the manual? 2018-01-21T23:38:44Z eivarv quit (Quit: Sleep) 2018-01-21T23:39:31Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-21T23:39:45Z fikka joined #lisp 2018-01-21T23:40:12Z dented42 joined #lisp 2018-01-21T23:41:59Z iqubic quit (Remote host closed the connection) 2018-01-21T23:44:09Z fikka quit (Ping timeout: 246 seconds) 2018-01-21T23:45:18Z epony joined #lisp 2018-01-21T23:49:05Z igemnace quit (Read error: Connection reset by peer) 2018-01-21T23:49:29Z ikki joined #lisp 2018-01-21T23:49:39Z igemnace joined #lisp 2018-01-21T23:53:36Z oleo quit (Ping timeout: 246 seconds) 2018-01-21T23:55:14Z fikka joined #lisp 2018-01-21T23:59:05Z nirved quit (Quit: Leaving) 2018-01-22T00:00:20Z DeadTrickster_ joined #lisp 2018-01-22T00:00:34Z DeadTrickster quit (Ping timeout: 268 seconds) 2018-01-22T00:03:48Z zazzerino quit (Remote host closed the connection) 2018-01-22T00:05:31Z zazzerino joined #lisp 2018-01-22T00:06:38Z __main__ quit (Read error: Connection reset by peer) 2018-01-22T00:07:25Z __main__ joined #lisp 2018-01-22T00:10:39Z lnostdal quit (Ping timeout: 248 seconds) 2018-01-22T00:12:17Z quazimodo quit (Ping timeout: 268 seconds) 2018-01-22T00:13:51Z babalua joined #lisp 2018-01-22T00:15:41Z malice quit (Remote host closed the connection) 2018-01-22T00:16:55Z markong quit (Ping timeout: 260 seconds) 2018-01-22T00:17:37Z lnostdal joined #lisp 2018-01-22T00:19:05Z smurfrobot joined #lisp 2018-01-22T00:20:00Z Pixel_Outlaw joined #lisp 2018-01-22T00:20:23Z smurfrobot quit (Remote host closed the connection) 2018-01-22T00:21:08Z EvW quit (Ping timeout: 265 seconds) 2018-01-22T00:21:32Z eudoxia quit (Quit: Leaving) 2018-01-22T00:22:00Z zazzerino quit (Remote host closed the connection) 2018-01-22T00:22:33Z smasta quit (Ping timeout: 264 seconds) 2018-01-22T00:23:21Z zazzerino joined #lisp 2018-01-22T00:24:21Z heurist` joined #lisp 2018-01-22T00:24:57Z heurist quit (Ping timeout: 264 seconds) 2018-01-22T00:26:35Z dieggsy: Is there anything _like_ hy but that is a proper scheme/CL or scheme/CL compliant? That is, a scheme/cl for interacting with Python. Hy is neat, but some of its syntax is... odd 2018-01-22T00:27:39Z smasta joined #lisp 2018-01-22T00:27:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-22T00:28:56Z Shinmera: Implementing Common Lisp is a gargantuan task. 2018-01-22T00:29:30Z Shinmera: You can go the other way though with CLPython 2018-01-22T00:30:22Z Xach: burgled-batteries seemed to be something kind of like that? 2018-01-22T00:30:51Z Shinmera: That's another thing to run Python on CL, not the other way around. 2018-01-22T00:31:51Z knobo joined #lisp 2018-01-22T00:33:14Z dieggsy: Shinmera: heh, cool nonetheless! (and yeah, i kinda would expect it to be a scheme for some reason, but to my knowledge no such thing exists) 2018-01-22T00:33:20Z dieggsy: besides hy, but hy's syntax makes me twitch a bit 2018-01-22T00:33:42Z fikka joined #lisp 2018-01-22T00:35:37Z dieggsy: er, and it's not either really 2018-01-22T00:38:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-22T00:42:58Z smurfrobot joined #lisp 2018-01-22T00:43:42Z fikka joined #lisp 2018-01-22T00:45:27Z tessier quit (Quit: leaving) 2018-01-22T00:45:29Z smurfrobot quit (Remote host closed the connection) 2018-01-22T00:45:49Z erikc joined #lisp 2018-01-22T00:48:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T00:50:01Z igemnace quit (Read error: Connection reset by peer) 2018-01-22T00:50:58Z igemnace joined #lisp 2018-01-22T00:52:37Z jmercouris joined #lisp 2018-01-22T00:53:52Z fikka joined #lisp 2018-01-22T00:56:19Z warweasle quit (Quit: Leaving) 2018-01-22T00:56:23Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T00:58:48Z fiddlerwoaroof_: pagnol: is this what you want? https://github.com/fiddlerwoaroof/vector-update-stream 2018-01-22T00:59:45Z jmercouris quit (Ping timeout: 264 seconds) 2018-01-22T00:59:51Z pagnol: fiddlerwoaroof_, I think so, yes, thank you 2018-01-22T01:00:09Z jmercouris joined #lisp 2018-01-22T01:00:21Z fiddlerwoaroof_: These tests are the closest thing to documentation :) 2018-01-22T01:00:21Z fiddlerwoaroof_: https://github.com/fiddlerwoaroof/vector-update-stream/blob/master/stream-to-vector.lisp#L103 2018-01-22T01:00:53Z dented42 joined #lisp 2018-01-22T01:01:35Z fiddlerwoaroof_: It's under the same license as flexi-streams (BSD-2-clause), so you should be able to use it with anything 2018-01-22T01:01:53Z holycow joined #lisp 2018-01-22T01:02:09Z Achylles quit (Ping timeout: 256 seconds) 2018-01-22T01:02:35Z fiddlerwoaroof_: I think I wrote it by taking some code from flexi-streams and modifying it a bit, because flexi-streams didn't really expose this kind of functionality: it generally assumes that the stream "owns" the underlying vector. 2018-01-22T01:05:47Z fiddlerwoaroof_: I'll submit it as a quicklisp project to make it easier to user 2018-01-22T01:06:25Z jmercouris: fiddlerwoaroof_: for a second I thought you were referencing me 2018-01-22T01:06:25Z Colleen: jmercouris: Shinmera said 2 hours, 54 minutes ago: Cause it's a place to hang out with friends and chill on the weekend. 2018-01-22T01:06:35Z jmercouris: my old IRC username was user_ 2018-01-22T01:07:03Z jmercouris: Shinmera: interesting, it makes sense, i like it! 2018-01-22T01:07:21Z quazimodo joined #lisp 2018-01-22T01:09:34Z chens``` quit (Remote host closed the connection) 2018-01-22T01:10:04Z pagnol: fiddlerwoaroof_, I found out though that flexi-stream:with-input-from-sequence does the job too 2018-01-22T01:10:36Z jfb4 quit (Ping timeout: 246 seconds) 2018-01-22T01:10:41Z fiddlerwoaroof_: Hmm, I wonder why I missed that 2018-01-22T01:11:06Z pagnol: when I first used I got an error from flexi-stream, so that I assumed I had used it incorrectly... but it turned out that the error originated from somewhere deeper in the stack and I had used it correctly 2018-01-22T01:11:35Z pagnol: because the library I'm using (lisp-binary) also relies on flexi-stream for some of its functionality 2018-01-22T01:12:19Z fiddlerwoaroof_: I remember evaluating flexi-streams when I wrote that library and finding that something didn't work quite the way I wanted 2018-01-22T01:12:27Z jfb4 joined #lisp 2018-01-22T01:12:40Z fiddlerwoaroof_: But I forget the details now, I suppose I should have documented it in the readme \_(;/)_/ 2018-01-22T01:14:22Z mepian quit (Quit: Leaving) 2018-01-22T01:17:07Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T01:26:20Z dented42 joined #lisp 2018-01-22T01:27:44Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-22T01:31:20Z jmercouris: How do I make a nickname for a package I did not define? 2018-01-22T01:32:48Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T01:33:14Z shifty joined #lisp 2018-01-22T01:33:54Z chens joined #lisp 2018-01-22T01:34:19Z warweasle joined #lisp 2018-01-22T01:34:51Z dieggsy joined #lisp 2018-01-22T01:36:50Z jmercouris: It is not possible from what I gather? 2018-01-22T01:39:21Z orivej quit (Ping timeout: 264 seconds) 2018-01-22T01:40:06Z tessier joined #lisp 2018-01-22T01:40:06Z tessier quit (Changing host) 2018-01-22T01:40:06Z tessier joined #lisp 2018-01-22T01:40:27Z FreeBirdLjj joined #lisp 2018-01-22T01:41:09Z Achylles joined #lisp 2018-01-22T01:41:20Z Xach: jmercouris: you can with rename-package. 2018-01-22T01:44:10Z jmercouris quit (Ping timeout: 268 seconds) 2018-01-22T01:44:33Z jmercouris joined #lisp 2018-01-22T01:45:02Z ckonstanski quit (Remote host closed the connection) 2018-01-22T01:45:24Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-22T01:46:24Z jmercouris: Xach: Thank you 2018-01-22T01:50:37Z Xach: I vagely remember some utility that provides add-nickname but maybe it was a dream. 2018-01-22T01:50:55Z jmercouris: my whole life feels like some sort of third person reality these days 2018-01-22T01:51:09Z jmercouris: like I'm watching a movie 2018-01-22T01:51:17Z jmercouris: not sure if that's what you mean as well, but, yeah 2018-01-22T01:52:08Z Bike: that sounds like derealization. 2018-01-22T01:52:25Z babalua quit (Quit: babalua) 2018-01-22T01:53:57Z jmercouris: sure does 2018-01-22T01:54:48Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-22T01:55:10Z jmercouris: Xach: Do you still reccomend people use build-app? 2018-01-22T01:55:42Z Xach: jmercouris: I still use it. I like it. 2018-01-22T01:55:59Z jmercouris: Good enough for me, :) 2018-01-22T01:56:02Z Xach: I would recommend it to anyone who finds other options more difficult to understand. 2018-01-22T01:56:09Z Xach: (that is why I made it in the first place) 2018-01-22T01:56:12Z jmercouris: I was just thinking about ripping it out of a project 2018-01-22T01:56:17Z jmercouris: that is all, but if it still works, why change it 2018-01-22T01:56:32Z Xach: It has some problems. I wish the multiplatform support was better. I have a plan to improve it but not the time. 2018-01-22T01:56:42Z jmercouris: Man, I know 2018-01-22T01:56:46Z jmercouris: I wish we had more time 2018-01-22T01:56:57Z jmercouris: every company says "we care about open source" but I've not seen a dollar of their investment into it 2018-01-22T01:57:11Z jmercouris: they throw a couple of peanuts and pay lip service 2018-01-22T01:57:38Z jmercouris: I wish I could support the community more, monetarily at least, the skills I don't have 2018-01-22T01:58:45Z jmercouris: I really do care 2018-01-22T01:59:10Z jmercouris: I'll just throw this out there in general, if anyone in this community needs someone to talk to, I'm always happy to listen 2018-01-22T01:59:21Z jmercouris: and provide advice, if solicited 2018-01-22T01:59:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-22T02:02:04Z dddddd quit (Remote host closed the connection) 2018-01-22T02:05:56Z fikka joined #lisp 2018-01-22T02:07:06Z aeth: jmercouris: Software companies should require that any hours of developer work beyond 30 in a week go to open source projects. This could help prevent burnout. (This could include Creative Commons and cover some non-programming roles, too.) 2018-01-22T02:07:34Z jmercouris: aeth: Yeah, in a better world, it could be so 2018-01-22T02:07:57Z jmercouris: I'm hoping that nEXT can one day be an open source company that actually gives back to the community 2018-01-22T02:08:26Z aeth: jmercouris: Then you can comply with my proposed rule while overworking your developers with 90 hour weeks! Perfect! 2018-01-22T02:08:27Z jmercouris: I'll probably not succeed, but at least I'm trying 2018-01-22T02:08:43Z jmercouris: aeth: I don't plan on overworking anybody, I'm sorry to dissapoint 2018-01-22T02:08:50Z jmercouris: I've already experienced a terrible burnout myself 2018-01-22T02:09:24Z jmercouris: full time work as a professional engineer + 2x as many classes as a normal student + moving to a new country + research publications simultaneously + many family health issues = not a good time 2018-01-22T02:09:26Z jmercouris: ask me how I know 2018-01-22T02:09:59Z jmercouris: for now, I'm just focusing on relaxing, and finding good balance in my life 2018-01-22T02:10:16Z jmercouris: and I hope to help others as well, I want everyone to just feel happy, and safe, and relaxed 2018-01-22T02:17:47Z holycow quit (Quit: Lost terminal) 2018-01-22T02:20:27Z bgardner joined #lisp 2018-01-22T02:21:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T02:25:16Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T02:35:21Z zazzerino quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-01-22T02:37:09Z red-dot joined #lisp 2018-01-22T02:37:19Z dented42 joined #lisp 2018-01-22T02:37:30Z jmercouris: rme: I'm trying to use clon and I think CCL is eating my command line arguments 2018-01-22T02:37:37Z jmercouris: how can I get it to avoid doing that, is there a way? 2018-01-22T02:38:00Z jmercouris: "--"? 2018-01-22T02:38:17Z smurfrobot joined #lisp 2018-01-22T02:38:26Z fikka quit (Ping timeout: 268 seconds) 2018-01-22T02:39:02Z xrash quit (Read error: Connection reset by peer) 2018-01-22T02:43:48Z fikka joined #lisp 2018-01-22T02:44:00Z turkja joined #lisp 2018-01-22T02:45:37Z JonSmith joined #lisp 2018-01-22T02:46:46Z d4ryus1 joined #lisp 2018-01-22T02:47:57Z smurfrobot quit (Remote host closed the connection) 2018-01-22T02:48:08Z jmercouris: anyone compile site-generator? 2018-01-22T02:49:12Z damke joined #lisp 2018-01-22T02:49:39Z d4ryus quit (Ping timeout: 246 seconds) 2018-01-22T02:49:57Z JonSmith quit (Ping timeout: 240 seconds) 2018-01-22T02:50:55Z smurfrobot joined #lisp 2018-01-22T02:51:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-22T02:52:27Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-22T02:58:07Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-22T03:00:21Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-22T03:05:23Z Achylles quit (Remote host closed the connection) 2018-01-22T03:05:45Z iqubic joined #lisp 2018-01-22T03:08:27Z milanj_ quit (Ping timeout: 240 seconds) 2018-01-22T03:08:38Z jmercouris joined #lisp 2018-01-22T03:08:46Z jmercouris: I can't get it to accept command line arguments 2018-01-22T03:09:00Z jmercouris: I'm just going to strip clon 2018-01-22T03:09:22Z iqubic: What's wrong jmercouris? 2018-01-22T03:09:43Z jmercouris: iqubic: Are you able to get it to work or something? 2018-01-22T03:09:54Z jmercouris: site-generator doesn't seem to accept any args 2018-01-22T03:09:56Z nika joined #lisp 2018-01-22T03:10:15Z jmercouris: https://github.com/AlexCharlton/site-generator 2018-01-22T03:10:58Z jmercouris: Xach: Might I suggest in the build script not requiring a bin directory for buildapp 2018-01-22T03:11:13Z jmercouris: I keep having to make a /my/path/bin, then moving buildapp out of there to /my/path 2018-01-22T03:11:21Z jmercouris: your call of course, just my 2 cents 2018-01-22T03:15:14Z marusich joined #lisp 2018-01-22T03:17:17Z milanj_ joined #lisp 2018-01-22T03:18:23Z warweasle quit (Ping timeout: 248 seconds) 2018-01-22T03:21:32Z beach: Good morning everyone! 2018-01-22T03:24:06Z jmercouris: Hallo hallo guten morgen, hallo hallo, guten tag! 2018-01-22T03:24:41Z milanj_ quit (Ping timeout: 268 seconds) 2018-01-22T03:26:37Z warweasle joined #lisp 2018-01-22T03:27:17Z warweasle quit (Client Quit) 2018-01-22T03:30:15Z quazimodo quit (Ping timeout: 246 seconds) 2018-01-22T03:30:21Z pagnol quit (Ping timeout: 264 seconds) 2018-01-22T03:35:12Z dtornabene quit (Remote host closed the connection) 2018-01-22T03:35:14Z milanj_ joined #lisp 2018-01-22T03:40:46Z maxirater joined #lisp 2018-01-22T03:45:28Z Arcaelyx joined #lisp 2018-01-22T03:47:52Z loke: Hello beach 2018-01-22T03:47:56Z loke: and jmercouris 2018-01-22T03:48:06Z fikka quit (Ping timeout: 246 seconds) 2018-01-22T03:49:51Z milanj_ quit (Ping timeout: 248 seconds) 2018-01-22T03:51:56Z maxirater quit (Quit: konversation disconnects) 2018-01-22T03:55:37Z Arcaelyx_ joined #lisp 2018-01-22T03:56:45Z ebzzry joined #lisp 2018-01-22T03:58:09Z Arcaelyx quit (Ping timeout: 265 seconds) 2018-01-22T04:04:19Z fikka joined #lisp 2018-01-22T04:08:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-22T04:11:27Z chens` joined #lisp 2018-01-22T04:13:25Z iqubic: Morning Beach. 2018-01-22T04:13:30Z smurfrobot joined #lisp 2018-01-22T04:13:39Z iqubic: I'm actually about to leave for the night. 2018-01-22T04:13:45Z iqubic: so, night all. 2018-01-22T04:13:59Z beach: 'night iqubic. 2018-01-22T04:14:00Z chens quit (Ping timeout: 246 seconds) 2018-01-22T04:14:09Z iqubic: I'm just gonna idle while gone. 2018-01-22T04:14:46Z fikka joined #lisp 2018-01-22T04:19:35Z fikka quit (Ping timeout: 260 seconds) 2018-01-22T04:21:57Z ikki quit (Ping timeout: 240 seconds) 2018-01-22T04:24:26Z fikka joined #lisp 2018-01-22T04:25:25Z makomo quit (Ping timeout: 260 seconds) 2018-01-22T04:27:34Z milanj joined #lisp 2018-01-22T04:30:10Z smurfrobot quit (Remote host closed the connection) 2018-01-22T04:34:57Z MrBismuth quit (Read error: Connection reset by peer) 2018-01-22T04:36:41Z smurfrobot joined #lisp 2018-01-22T04:37:14Z smurfrobot quit (Remote host closed the connection) 2018-01-22T04:37:29Z smurfrobot joined #lisp 2018-01-22T04:39:10Z damke_ joined #lisp 2018-01-22T04:40:28Z oleo joined #lisp 2018-01-22T04:41:45Z damke quit (Ping timeout: 264 seconds) 2018-01-22T04:42:14Z MrBusiness joined #lisp 2018-01-22T04:44:51Z milanj quit (Ping timeout: 268 seconds) 2018-01-22T04:47:27Z JonSmith joined #lisp 2018-01-22T04:48:48Z smurfrobot quit (Remote host closed the connection) 2018-01-22T04:51:48Z JonSmith quit (Ping timeout: 246 seconds) 2018-01-22T04:52:24Z smurfrobot joined #lisp 2018-01-22T04:56:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-22T04:57:35Z smurfrobot joined #lisp 2018-01-22T05:00:12Z schoppenhauer quit (Ping timeout: 246 seconds) 2018-01-22T05:00:12Z shka joined #lisp 2018-01-22T05:00:26Z milanj joined #lisp 2018-01-22T05:00:27Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-22T05:01:13Z drmeister: #\nul - what's up with that character name? 2018-01-22T05:01:29Z drmeister: It's in the clasp source (inherited from ECL) but it's not standard. 2018-01-22T05:01:55Z smurfrobot quit (Remote host closed the connection) 2018-01-22T05:02:22Z schoppenhauer joined #lisp 2018-01-22T05:02:24Z drmeister: No - it's not inherited - never mind. 2018-01-22T05:03:08Z igemnace quit (Read error: Connection reset by peer) 2018-01-22T05:03:17Z igemnace_ joined #lisp 2018-01-22T05:05:24Z patche joined #lisp 2018-01-22T05:05:24Z patche is now known as _sebbot 2018-01-22T05:06:59Z igemnace_ is now known as igemnace 2018-01-22T05:10:54Z Bike quit (Quit: Lost terminal) 2018-01-22T05:13:02Z heurist` is now known as heurist 2018-01-22T05:15:46Z drmeister: beach: I'm getting this error: 2018-01-22T05:16:13Z drmeister: https://www.irccloud.com/pastebin/i0XPbKND/ 2018-01-22T05:16:26Z drmeister: When reading this... 2018-01-22T05:16:28Z drmeister: https://www.irccloud.com/pastebin/cCSKGFoz/ 2018-01-22T05:16:39Z drmeister: I'm thinking it's the nested #+(or) ? 2018-01-22T05:17:47Z beach: I'll investigate. Thanks. 2018-01-22T05:18:25Z drmeister: Here is a smaller test case that fails the same way... 2018-01-22T05:18:26Z drmeister: https://www.irccloud.com/pastebin/uXtvxN1i/ 2018-01-22T05:18:46Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T05:20:33Z beach: Thanks, that's helpful. 2018-01-22T05:21:50Z jmercouris: So I have a function like this (defun print-something () (print (get-value))) 2018-01-22T05:21:57Z jmercouris: This function will ALWAYS print-nil 2018-01-22T05:22:27Z jmercouris: but if I write instead (defun print-something () (print *some-parameter*)) it will print the value of that parameter 2018-01-22T05:22:37Z jmercouris: here's the tricky thing though, (get-value) just returns the value of that parameter 2018-01-22T05:22:54Z drmeister: Oh - sorry - I'm in #lisp. 2018-01-22T05:23:00Z drmeister: Right - that's it - I'm off to bed. 2018-01-22T05:23:18Z loke: jmercouris: Can you share code? 2018-01-22T05:23:37Z jmercouris: Let me try one more thing before sharing, just wish to verify 2018-01-22T05:23:49Z jmercouris: I figured it was some strange closure optimization, but it could be a stupid issue 2018-01-22T05:24:00Z jmercouris: I'll also restart my image 2018-01-22T05:24:13Z loke: Is the variabele defined by defconstant? 2018-01-22T05:24:22Z jmercouris: No, defparameter, and it is setf'd 2018-01-22T05:24:33Z loke: OK, create a test case. 2018-01-22T05:24:43Z jmercouris: You know what, restarting my image fixed it :\ 2018-01-22T05:24:54Z jmercouris: I must not be properly loading forms back into slime or something 2018-01-22T05:27:05Z dieggsy quit (Ping timeout: 265 seconds) 2018-01-22T05:29:03Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T05:30:27Z fikka joined #lisp 2018-01-22T05:31:02Z pransmonkey joined #lisp 2018-01-22T05:32:23Z jmercouris: Is there a way to jump to the line of code from a slime restart? 2018-01-22T05:32:30Z jmercouris: like in the backtrace 2018-01-22T05:32:33Z jmercouris: can I jump to that line? 2018-01-22T05:32:46Z beach: type `v' in front of the stack frame. 2018-01-22T05:32:59Z jmercouris: I wish I knew that months ago 2018-01-22T05:33:02Z jmercouris: thank you 2018-01-22T05:33:07Z beach: But you need to have compiled with a high value of the DEBUG quality. 2018-01-22T05:33:24Z jmercouris: Seems to work when loading normally in CCL 2018-01-22T05:33:26Z beach: It is worth reading the SLIME documentation. 2018-01-22T05:33:34Z jmercouris: I'll make a slime hydra for restarts 2018-01-22T05:33:46Z jmercouris: and then I don't have to remember esoteric and random keybindings :D 2018-01-22T05:34:11Z igemnace quit (Ping timeout: 268 seconds) 2018-01-22T05:37:33Z emacsomancer quit (Ping timeout: 264 seconds) 2018-01-22T05:37:54Z beach: drmeister: I am accumulating clues. I think I can fix it during the day. 2018-01-22T05:38:17Z Arcaelyx_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T05:40:22Z fortitude quit (Quit: Leaving) 2018-01-22T05:41:10Z chens`` joined #lisp 2018-01-22T05:43:44Z oleo quit (Quit: Leaving) 2018-01-22T05:44:01Z igemnace joined #lisp 2018-01-22T05:44:18Z chens` quit (Ping timeout: 246 seconds) 2018-01-22T05:44:55Z red-dot joined #lisp 2018-01-22T05:52:29Z smurfrobot joined #lisp 2018-01-22T05:57:19Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-22T06:01:51Z damke joined #lisp 2018-01-22T06:04:15Z fikka quit (Ping timeout: 246 seconds) 2018-01-22T06:04:27Z pierpa quit (Quit: Page closed) 2018-01-22T06:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-22T06:06:13Z Xal joined #lisp 2018-01-22T06:06:55Z milanj quit (Ping timeout: 248 seconds) 2018-01-22T06:07:54Z milanj joined #lisp 2018-01-22T06:08:05Z fikka joined #lisp 2018-01-22T06:16:05Z milanj quit (Ping timeout: 256 seconds) 2018-01-22T06:18:41Z milanj joined #lisp 2018-01-22T06:22:48Z jmercouris quit (Ping timeout: 246 seconds) 2018-01-22T06:24:45Z erikc quit 2018-01-22T06:26:05Z milanj quit (Ping timeout: 240 seconds) 2018-01-22T06:27:04Z iqubic: Good morning everyone. 2018-01-22T06:27:50Z iqubic: I should really figure out what hydra is and use it to help me emacs better. 2018-01-22T06:29:19Z whoman: learn to drive and then get a supercharger with turbo 2018-01-22T06:29:55Z mishoo joined #lisp 2018-01-22T06:30:30Z iqubic: What's that mean? 2018-01-22T06:31:46Z whoman: if you do not know what something is, how are you going to use it to help you better ? 2018-01-22T06:31:49Z pransmonkey quit (Ping timeout: 260 seconds) 2018-01-22T06:32:09Z mathrick quit (Ping timeout: 268 seconds) 2018-01-22T06:32:35Z mathrick joined #lisp 2018-01-22T06:33:20Z iqubic: Oh, right. 2018-01-22T06:34:57Z smasta quit (Ping timeout: 240 seconds) 2018-01-22T06:35:08Z whoman: o_o 2018-01-22T06:39:38Z Karl_Dscc joined #lisp 2018-01-22T06:40:07Z milanj joined #lisp 2018-01-22T06:40:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-22T06:42:05Z knobo quit (Ping timeout: 240 seconds) 2018-01-22T06:42:19Z fikka joined #lisp 2018-01-22T06:44:20Z ksool quit (Ping timeout: 276 seconds) 2018-01-22T06:45:05Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T06:46:16Z red-dot joined #lisp 2018-01-22T06:53:44Z omilu quit (Ping timeout: 268 seconds) 2018-01-22T06:57:15Z Oladon quit (Quit: Leaving.) 2018-01-22T07:00:52Z asarch quit (Quit: Leaving) 2018-01-22T07:01:09Z vox` joined #lisp 2018-01-22T07:01:22Z quazimodo joined #lisp 2018-01-22T07:03:11Z vox` quit (Remote host closed the connection) 2018-01-22T07:04:35Z _sebbot quit (Ping timeout: 240 seconds) 2018-01-22T07:06:06Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T07:07:14Z solyd joined #lisp 2018-01-22T07:10:40Z flamebeard joined #lisp 2018-01-22T07:13:20Z dec0n joined #lisp 2018-01-22T07:14:19Z makomo joined #lisp 2018-01-22T07:14:38Z marusich quit (Quit: Leaving) 2018-01-22T07:15:49Z Karl_Dscc quit (Remote host closed the connection) 2018-01-22T07:18:24Z solyd quit (Quit: solyd) 2018-01-22T07:21:02Z kami joined #lisp 2018-01-22T07:22:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T07:23:18Z kami: Good morning. 2018-01-22T07:27:28Z fikka joined #lisp 2018-01-22T07:31:35Z smurfrobot joined #lisp 2018-01-22T07:32:35Z fikka quit (Ping timeout: 256 seconds) 2018-01-22T07:35:36Z scymtym quit (Ping timeout: 246 seconds) 2018-01-22T07:37:55Z fikka joined #lisp 2018-01-22T07:38:43Z damke quit (Quit: quit) 2018-01-22T07:40:08Z Riviera- quit (Remote host closed the connection) 2018-01-22T07:41:17Z knobo joined #lisp 2018-01-22T07:42:22Z damke joined #lisp 2018-01-22T07:42:36Z fikka quit (Ping timeout: 246 seconds) 2018-01-22T07:43:02Z dmiles: I wanted to confirm that this is not some syntax that is used by any lisp other than EusLisp right? https://github.com/euslisp/EusLisp/blob/master/lisp/l/hashtab.l#L28-L141 2018-01-22T07:43:13Z dmiles: (for defmethod) 2018-01-22T07:46:28Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T07:47:25Z smurfrobot quit (Remote host closed the connection) 2018-01-22T07:47:33Z red-dot joined #lisp 2018-01-22T07:56:29Z fikka joined #lisp 2018-01-22T07:57:45Z milanj quit (Ping timeout: 260 seconds) 2018-01-22T08:10:44Z solyd joined #lisp 2018-01-22T08:10:55Z milanj joined #lisp 2018-01-22T08:12:47Z shka quit (Ping timeout: 248 seconds) 2018-01-22T08:14:46Z beach: Hello kami. 2018-01-22T08:16:21Z smasta joined #lisp 2018-01-22T08:21:18Z smasta quit (Ping timeout: 268 seconds) 2018-01-22T08:23:09Z quazimodo quit (Ping timeout: 268 seconds) 2018-01-22T08:28:27Z murii joined #lisp 2018-01-22T08:34:29Z scymtym joined #lisp 2018-01-22T08:36:58Z smurfrobot joined #lisp 2018-01-22T08:40:57Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-22T08:42:09Z varjag joined #lisp 2018-01-22T08:47:45Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T08:47:59Z nullman quit (Ping timeout: 248 seconds) 2018-01-22T08:48:58Z red-dot joined #lisp 2018-01-22T08:52:45Z nullman joined #lisp 2018-01-22T08:52:58Z igemnace quit (Read error: Connection reset by peer) 2018-01-22T08:53:16Z igemnace joined #lisp 2018-01-22T08:55:13Z lambda9 joined #lisp 2018-01-22T09:00:28Z pjb: dmiles: it's very hard to confirm such a thing. The probability that someone derived such a defmethod macro in a variant of eulisp or some other lisp or scheme is very high. 2018-01-22T09:00:50Z pjb: dmiles: are you trying to load EuLisp code? 2018-01-22T09:01:29Z nika quit 2018-01-22T09:01:48Z dmiles: well i was asking in order to figure out if there was some older type type or a special stylized non standard defmethod syntax i had not seen 2018-01-22T09:01:58Z damke_ joined #lisp 2018-01-22T09:02:34Z dmiles: it really must be a Eulisp-only thing 2018-01-22T09:02:49Z dmiles: I am using it to get a few defclasses 2018-01-22T09:03:46Z dmiles: since of course people very rarely use defclass to define builtin classes.. except me and say EusLisp etc 2018-01-22T09:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-22T09:04:53Z dmiles: I was searching a few impls to see who defclassed hash-table that is.. and found EusLisp 2018-01-22T09:05:25Z makomo quit (Ping timeout: 260 seconds) 2018-01-22T09:05:52Z heurist quit (Read error: Connection reset by peer) 2018-01-22T09:06:17Z pjb: dmiles: again, it is most probablye there are other macro with different syntaxes used to define classes and methods out there. There are more OO systems than programming languages… 2018-01-22T09:07:11Z pjb: dmiles: basically, take a scheme teacher and 100 or 200 students, and you get 200 different OO systems. 2018-01-22T09:07:23Z dmiles: :) 2018-01-22T09:08:40Z heurist joined #lisp 2018-01-22T09:09:07Z beach: dmiles: You can count on SICL using DEFCLASS to define the HASH-TABLE class, as well as the classes for SYMBOL, PACKAGE, etc. 2018-01-22T09:14:07Z heurist quit (Ping timeout: 248 seconds) 2018-01-22T09:14:23Z dmiles: beach, right on, oh i now i see why i missed it on my last grep over impls.. it used defstruct.. (defstruct is just fine( 2018-01-22T09:14:52Z knobo quit (Quit: WeeChat 1.7) 2018-01-22T09:15:11Z heurist joined #lisp 2018-01-22T09:15:55Z beach: I keep forgetting about DEFSTRUCT since I have absolutely no intention of using it in SICL code. :) 2018-01-22T09:16:16Z orivej joined #lisp 2018-01-22T09:16:32Z beach: And even if I *did* use it, it would have the absolute same representation as if I had used DEFCLASS. 2018-01-22T09:17:28Z jasom quit (Quit: WeeChat 1.7.1) 2018-01-22T09:17:45Z dmiles: yeah in my impl DEFSTRUCT and DEFCLASS become the same representation .. jsut with DEFSTRUCT i create extra support of slot numbers 2018-01-22T09:23:23Z Cymew joined #lisp 2018-01-22T09:26:08Z _cosmonaut_ joined #lisp 2018-01-22T09:27:22Z dmiles: beach, you store symbol-plist's in env ? 2018-01-22T09:29:08Z wigust joined #lisp 2018-01-22T09:29:16Z beach: Yes. 2018-01-22T09:34:08Z scymtym_ joined #lisp 2018-01-22T09:37:30Z monad_ joined #lisp 2018-01-22T09:38:14Z scymtym quit (Ping timeout: 255 seconds) 2018-01-22T09:38:36Z monad_ quit (Client Quit) 2018-01-22T09:38:45Z igemnace quit (Read error: Connection reset by peer) 2018-01-22T09:39:33Z igemnace joined #lisp 2018-01-22T09:40:33Z dmiles: Nice, quite a bit is stored in the env 2018-01-22T09:40:42Z damke joined #lisp 2018-01-22T09:40:47Z lambda9 quit (Ping timeout: 248 seconds) 2018-01-22T09:42:18Z dmiles: rather than doing what i and many others do.. chekcing for environmental overrides and then going to symbol 2018-01-22T09:43:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-22T09:43:41Z dmiles: (like for symbol-functions and variable types) 2018-01-22T09:51:21Z damke quit (Ping timeout: 264 seconds) 2018-01-22T09:52:44Z milanj quit (Ping timeout: 276 seconds) 2018-01-22T09:53:57Z milanj joined #lisp 2018-01-22T09:56:14Z scymtym__ joined #lisp 2018-01-22T09:56:53Z heurist quit (Ping timeout: 268 seconds) 2018-01-22T09:57:07Z heurist joined #lisp 2018-01-22T10:00:44Z scymtym_ quit (Ping timeout: 255 seconds) 2018-01-22T10:04:30Z smasta joined #lisp 2018-01-22T10:04:47Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-22T10:04:54Z milanj quit (Ping timeout: 268 seconds) 2018-01-22T10:05:00Z igemnace joined #lisp 2018-01-22T10:06:15Z milanj joined #lisp 2018-01-22T10:07:32Z beach: In fact, I save some space that way, because very few symbols will have a non-empty property list, so no need to represent them in the environment. In a typical implementation, this cell is allocated in every symbol, whether needed or not. 2018-01-22T10:08:12Z beach: The same thing goes for the function cell, the value cell, etc. In SICL, a symbol has only a NAME and a PACKAGE. 2018-01-22T10:09:13Z smasta quit (Ping timeout: 268 seconds) 2018-01-22T10:10:08Z beach: I can even imagine some implementations having two function cells in every symbol, one for the name itself and one for (SETF ). 2018-01-22T10:10:58Z beach: Worse (in terms of maintainability), some implementations have a function cell for the name itself, but store the SETF name somewhere else. 2018-01-22T10:11:11Z chens`` quit (Remote host closed the connection) 2018-01-22T10:12:20Z nirved joined #lisp 2018-01-22T10:12:38Z damke joined #lisp 2018-01-22T10:16:50Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-22T10:19:38Z heurist quit (Ping timeout: 256 seconds) 2018-01-22T10:25:11Z markong joined #lisp 2018-01-22T10:30:43Z hhdave joined #lisp 2018-01-22T10:31:51Z heurist joined #lisp 2018-01-22T10:36:45Z kami quit (Ping timeout: 256 seconds) 2018-01-22T10:40:40Z heurist quit (Ping timeout: 268 seconds) 2018-01-22T10:44:59Z hhdave quit (Ping timeout: 268 seconds) 2018-01-22T10:45:08Z milanj quit (Ping timeout: 256 seconds) 2018-01-22T10:46:34Z heurist joined #lisp 2018-01-22T10:48:32Z makomo joined #lisp 2018-01-22T10:49:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T10:51:54Z red-dot joined #lisp 2018-01-22T10:58:53Z smasta joined #lisp 2018-01-22T11:00:07Z damke_ joined #lisp 2018-01-22T11:01:38Z razzy quit (Ping timeout: 255 seconds) 2018-01-22T11:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-22T11:03:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-22T11:08:22Z JuanDaugherty joined #lisp 2018-01-22T11:13:34Z sirkmatija joined #lisp 2018-01-22T11:16:01Z sirkmatija: Hello, I am building a small web game and I am wondering how to serve a file (not a string) by ningle. Thanks for your help. 2018-01-22T11:17:14Z vaporatorius__ joined #lisp 2018-01-22T11:17:33Z vap1 quit (Ping timeout: 256 seconds) 2018-01-22T11:17:49Z milanj joined #lisp 2018-01-22T11:17:57Z quazimodo joined #lisp 2018-01-22T11:20:24Z scymtym__ quit (Ping timeout: 265 seconds) 2018-01-22T11:21:00Z nowhereman_ joined #lisp 2018-01-22T11:21:23Z sirkmatija: I tried reading file into string and then serving it, but then it doesn't find js script file, even if I provide full (not relative) path 2018-01-22T11:23:05Z nowhere_man quit (Ping timeout: 260 seconds) 2018-01-22T11:51:40Z Tobbi joined #lisp 2018-01-22T11:51:56Z scymtym joined #lisp 2018-01-22T11:52:28Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T11:53:01Z smasta joined #lisp 2018-01-22T11:55:19Z dddddd joined #lisp 2018-01-22T11:57:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-22T11:58:48Z pjb: sirkmatija: I have no idea, but I guess it would involve reading ningle documentation… 2018-01-22T12:01:05Z scymtym_ joined #lisp 2018-01-22T12:02:51Z damke joined #lisp 2018-01-22T12:03:14Z sirkmatija: I went through ningle readme and examples, but I couldn't find any other docs 2018-01-22T12:03:57Z Shinmera: Welcome to fukamachiware 2018-01-22T12:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-22T12:05:23Z scymtym quit (Ping timeout: 255 seconds) 2018-01-22T12:14:20Z shrdlu68 joined #lisp 2018-01-22T12:17:33Z JuanDaugherty: sirkmatija, y u gotta use that no name thing when everybody wants you to use the lisp majors (hunchentoot, etc)? 2018-01-22T12:17:41Z heurist` joined #lisp 2018-01-22T12:17:51Z Shinmera: hunchentoot is not a web framework. 2018-01-22T12:18:09Z JuanDaugherty: and whosits is? 2018-01-22T12:18:22Z sirkmatija: I am using ningle, not just hunchentoot 2018-01-22T12:18:45Z heurist quit (Ping timeout: 246 seconds) 2018-01-22T12:24:31Z red-dot joined #lisp 2018-01-22T12:24:49Z damke quit (Read error: Connection reset by peer) 2018-01-22T12:25:21Z damke joined #lisp 2018-01-22T12:26:38Z smurfrobot joined #lisp 2018-01-22T12:27:08Z jackdaniel: sirkmatija: try putting there an actual pathname 2018-01-22T12:27:15Z jackdaniel: like #P"/foo/bar/file.txt" 2018-01-22T12:27:15Z heurist` quit (Ping timeout: 260 seconds) 2018-01-22T12:28:36Z jackdaniel: if you are more interested in shipping whole directory of files consider using (:static :path "/public/" :root #P"/my/dir/") as parameter to lack:builder (instead of just making ningle: instance) 2018-01-22T12:28:51Z drcode joined #lisp 2018-01-22T12:29:33Z sz0 joined #lisp 2018-01-22T12:30:35Z alexmlw joined #lisp 2018-01-22T12:31:00Z smurfrobot quit (Ping timeout: 246 seconds) 2018-01-22T12:31:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-22T12:32:28Z fikka joined #lisp 2018-01-22T12:33:36Z sirkmatija: thank you, it serves the file now, but the script isn't found - when i inspect source it say URL /script.js was not found on this server. 2018-01-22T12:34:35Z jackdaniel: are you sure it is under /script.js ? not for instance my-host:8080/my-app/script.js ? 2018-01-22T12:34:47Z jackdaniel: port is important, host is important, absolute path is important 2018-01-22T12:35:37Z sirkmatija: oh I figured it out, thanks 2018-01-22T12:35:40Z jackdaniel: computers are not magic, usually they do exactly what you tell them to do (and when they *do* magic for you, then it is usually a game over [opinionated]) 2018-01-22T12:36:29Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-22T12:36:38Z sirkmatija: I thought I don't have to serve the files separately if they are in same dir, a stupid mistake 2018-01-22T12:37:06Z heurist` joined #lisp 2018-01-22T12:37:33Z kushal joined #lisp 2018-01-22T12:48:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-22T12:53:12Z mepian joined #lisp 2018-01-22T12:53:15Z fikka joined #lisp 2018-01-22T12:54:06Z pagnol joined #lisp 2018-01-22T13:00:50Z akash47 quit (Quit: EliteBNC - http://elitebnc.org (Auto-Removal: idle account/not being used)) 2018-01-22T13:03:03Z ksool joined #lisp 2018-01-22T13:03:04Z ksool quit (Read error: Connection reset by peer) 2018-01-22T13:03:27Z ksool joined #lisp 2018-01-22T13:10:37Z Shinmera: Just a quick announcement, the emacs package to interact with plaster.tymoon.eu is now on Melpa: https://melpa.org/#/plaster 2018-01-22T13:10:46Z wxie joined #lisp 2018-01-22T13:14:40Z EvW1 joined #lisp 2018-01-22T13:17:34Z zazzerino joined #lisp 2018-01-22T13:23:26Z jdz: Shinmera: Getting much spam yet? 2018-01-22T13:23:52Z Shinmera: Practically none so far 2018-01-22T13:24:42Z mepian quit (Ping timeout: 268 seconds) 2018-01-22T13:24:58Z Shinmera: But I'm sure the time will come when I have to add a captcha 2018-01-22T13:25:02Z mepian joined #lisp 2018-01-22T13:25:13Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T13:30:21Z beach: Shinmera: I don't use "fukamachiware", because it doesn't solve the problems I want to solve, but from what I hear, people are very impressed with it, so I assumed it was high-quality stuff. Not so? 2018-01-22T13:30:56Z Shinmera: beach: All of it has one fatal flaw: a severe lack of documentation 2018-01-22T13:31:33Z beach: Ah, I see. Maybe his English is not good enough. 2018-01-22T13:32:22Z makomo: hello 2018-01-22T13:32:27Z makomo: did fukamachi ever visit #lisp? 2018-01-22T13:32:32Z beach: Hello makomo. 2018-01-22T13:32:35Z Shinmera: Not to my knowledge 2018-01-22T13:32:46Z beach: But he did come to ELS at least once, right? 2018-01-22T13:32:53Z Shinmera: Yes, in London 2018-01-22T13:33:20Z igemnace joined #lisp 2018-01-22T13:33:33Z makomo: how big is ELS usually? (in the number of people that come) 2018-01-22T13:33:50Z beach: Slightly less than 100 usually. 2018-01-22T13:33:52Z Shinmera: I think last year we had just below a hundred people? 2018-01-22T13:34:08Z Shinmera: Above 50 usually though. 2018-01-22T13:34:18Z beach: For many years now, yes. 2018-01-22T13:34:36Z makomo: ah, quite small compared to other conferences, interesting 2018-01-22T13:35:17Z makomo: oh beach, i have a couple more typos to report (hopefully you won't mind me snooping around :-)) 2018-01-22T13:35:18Z beach: makomo: Compare to other Common Lisp conferences? I don't think so. 2018-01-22T13:35:22Z phoe: ^ 2018-01-22T13:35:36Z makomo: no, other programming languages conferences 2018-01-22T13:35:47Z Shinmera: I'm looking forward to meeting drmeister, beach, and snmsts again. 2018-01-22T13:36:01Z beach: makomo: Not at all. If stuff is freely available, it is there for you to read and comment on. 2018-01-22T13:36:04Z makomo: there's only one other lisp conference i know of and that's ILC 2018-01-22T13:36:19Z phoe: except ILC is American, AFAIK. 2018-01-22T13:36:24Z phoe: ELS is its European counterpart. 2018-01-22T13:36:31Z beach: And ILC appears to be dead. 2018-01-22T13:36:36Z Shinmera: phoe: The "I" is for "International" 2018-01-22T13:36:39Z makomo: ^ 2018-01-22T13:36:56Z makomo: are there any other lisp conferences? 2018-01-22T13:37:06Z makomo: beach: http://metamodular.com/Essays/psychology.html "about how compensate for it" 2018-01-22T13:37:13Z beach: Not just for Lisp, no. 2018-01-22T13:37:18Z makomo: beach: http://metamodular.com/Software-engineering/developer-productivity.html "First, let is" 2018-01-22T13:37:29Z beach: Thanks. 2018-01-22T13:37:30Z makomo: beach: http://metamodular.com/Psychology/continuous-improvement.html "I use computer every day" 2018-01-22T13:37:49Z beach: I could be Polish. 2018-01-22T13:38:06Z makomo: so ELS is the last of its kind :-) 2018-01-22T13:38:24Z phoe: beach: Polish? 2018-01-22T13:38:26Z makomo: hopefully one day i'll be able to visit, it sounds interesting 2018-01-22T13:38:37Z beach: phoe: Omitting articles on singular nouns. 2018-01-22T13:38:48Z phoe: Hah! 2018-01-22T13:38:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-22T13:39:02Z beach: makomo: Let's say it's currently the only one. But who knows, maybe loke and others will create ALS one day. 2018-01-22T13:39:05Z Firedancer quit (Ping timeout: 240 seconds) 2018-01-22T13:39:13Z phoe: ALS? 2018-01-22T13:39:20Z phoe: Arctic Lisp Symposium? (: 2018-01-22T13:39:32Z makomo: beach: http://metamodular.com/Essays/you-know-you-have.text "you use more then" (not sure why i read this one but there you go :-)) 2018-01-22T13:39:49Z zazzerino: Amyotrophic Lateral Sclerosis 2018-01-22T13:39:53Z zazzerino: might want a different name... 2018-01-22T13:40:17Z Firedancer joined #lisp 2018-01-22T13:40:27Z beach: makomo: Thanks. Fixing now... 2018-01-22T13:41:12Z smasta joined #lisp 2018-01-22T13:41:25Z makomo: beach: i agree very much with your essay on pyschology and people being inefficient at the stuff they do (talking about software specifically) 2018-01-22T13:41:32Z makomo: i've observed the same thing many times myself 2018-01-22T13:42:01Z phoe: LOSH: Lisp On Southern Hemisphere 2018-01-22T13:42:10Z phoe: but sjl might have something to say about it {: 2018-01-22T13:42:50Z makomo: however, i managed to get one of my uni friends to try out emacs and he's been actually using it for the last week or so 2018-01-22T13:43:08Z makomo: he also started learning CL. we'll see how far he gets 2018-01-22T13:43:52Z makomo: i've helped him install slime and he's reading pcl currently (started with land of lisp but then i intervened) 2018-01-22T13:44:45Z beach: makomo: Well done. I know how hard it is to get people to improve. 2018-01-22T13:45:05Z beach: phoe: Asian... 2018-01-22T13:45:16Z phoe: beach: I know, I'm being silly. 2018-01-22T13:45:30Z beach: phoe: Singapore is a bit far from the Arctic. 2018-01-22T13:45:33Z smasta quit (Ping timeout: 246 seconds) 2018-01-22T13:45:38Z beach: ... to say the least. 2018-01-22T13:45:43Z phoe: Oh, Antarctic then! :) 2018-01-22T13:45:53Z phoe goes quiet 2018-01-22T13:45:59Z schweers joined #lisp 2018-01-22T13:46:11Z beach: Yeah, that's it. 2018-01-22T13:48:03Z makomo: beach: yeah, true. i figured that it's good to try to spread the word and work on "recruiting" new people into the whole hacker culture 2018-01-22T13:48:45Z makomo: there's only so much you can do of course, but still spreading the word is part of "giving back" imo 2018-01-22T13:49:17Z beach: Sure, but my experience is that if you are too eager trying, then it can backfire. 2018-01-22T13:49:20Z makomo: sharing the knowledge you found, etc. 2018-01-22T13:49:23Z makomo: exactly! 2018-01-22T13:49:32Z makomo: that's why i'm trying to be helpful but also not too helpful 2018-01-22T13:49:42Z makomo: i.e. i want *them* to be inetersted, and not me doing all the work 2018-01-22T13:49:43Z beach: It's a delicate balance. 2018-01-22T13:49:47Z wxie quit (Quit: Bye.) 2018-01-22T13:49:48Z makomo: so i'm trying to stay on the side kind of 2018-01-22T13:49:55Z beach: Yeah, good plan. 2018-01-22T13:50:28Z makomo: yup, i've had it backfire a couple of times :-) 2018-01-22T13:50:36Z pedh joined #lisp 2018-01-22T13:51:19Z schweers quit (Remote host closed the connection) 2018-01-22T13:51:23Z makomo: as much as i'd like to share knowledge, you still have to pick people who you're sharing with carefully 2018-01-22T13:51:27Z makomo: otherwise it's just wasted effort 2018-01-22T13:52:33Z Shinmera feels like he's wasting his effort on this channel more often than he'd like to admit 2018-01-22T13:53:02Z makomo: :-) 2018-01-22T13:53:10Z makomo: maybe that's why fukamachi never visits 2018-01-22T13:54:37Z beach: makomo: Now if you could snoop around in my software documentation as well, that would be great! :) 2018-01-22T13:54:56Z shrdlu68: makomo: Why did you "intervene"? 2018-01-22T13:55:07Z beach: makomo: I just think it is far away, and the trip is expensive. 2018-01-22T13:55:15Z makomo: beach: i hope to do that in time :-). i'm still not at the level i want to be 2018-01-22T13:55:33Z makomo: i've only recently started with CL 2018-01-22T13:55:41Z red-dot joined #lisp 2018-01-22T13:56:00Z makomo: beach: but i do like your approach to documentation -- nicely written and formatted whitepapers, etc. 2018-01-22T13:56:09Z beach: Thanks. 2018-01-22T13:56:36Z makomo: shrdlu68: i feel like PCL is a much better book than LL 2018-01-22T13:57:10Z makomo: of course that's just my opinion, but i had a weird feeling when i was reading LL (i didn't finish it completely though) 2018-01-22T13:57:55Z heurist` quit (Ping timeout: 256 seconds) 2018-01-22T13:58:15Z heurist` joined #lisp 2018-01-22T13:59:12Z pedh quit (Ping timeout: 246 seconds) 2018-01-22T14:00:14Z jdz: makomo: Be careful with the acronyms – there's another LoL book. 2018-01-22T14:00:26Z makomo: jdz: yeah, that's why i didn't want to use the O :-) 2018-01-22T14:00:34Z makomo: so i used just LL instead 2018-01-22T14:00:46Z beach: So which one do you mean? 2018-01-22T14:00:49Z beach: by LL? 2018-01-22T14:00:59Z makomo: Land of Lisp 2018-01-22T14:01:07Z pjb: LoL because it's like, LOL… 2018-01-22T14:01:12Z makomo: Let Over Lambda has "LOL" spelled out on the front cover also 2018-01-22T14:01:30Z makomo: and also, words like "of", "and", "at", etc. usually aren't part of acronyms 2018-01-22T14:02:42Z pedh joined #lisp 2018-01-22T14:06:24Z heurist`_ joined #lisp 2018-01-22T14:07:52Z heurist` quit (Ping timeout: 268 seconds) 2018-01-22T14:08:10Z fikka quit (Ping timeout: 260 seconds) 2018-01-22T14:11:57Z pagnol quit (Ping timeout: 240 seconds) 2018-01-22T14:12:47Z dyelar joined #lisp 2018-01-22T14:15:21Z pedh quit (Ping timeout: 264 seconds) 2018-01-22T14:17:41Z attila_lendvai joined #lisp 2018-01-22T14:18:33Z mepian quit (Changing host) 2018-01-22T14:18:33Z mepian joined #lisp 2018-01-22T14:18:57Z zazzerino quit (Ping timeout: 240 seconds) 2018-01-22T14:19:50Z Bike joined #lisp 2018-01-22T14:26:52Z schweers joined #lisp 2018-01-22T14:31:21Z smasta joined #lisp 2018-01-22T14:31:52Z varjag joined #lisp 2018-01-22T14:33:34Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-22T14:34:07Z murii quit (Ping timeout: 248 seconds) 2018-01-22T14:36:39Z smasta quit (Ping timeout: 256 seconds) 2018-01-22T14:36:49Z smurfrobot joined #lisp 2018-01-22T14:37:37Z jstypo joined #lisp 2018-01-22T14:37:43Z smurfrobot quit (Remote host closed the connection) 2018-01-22T14:46:11Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-22T14:49:17Z EvW joined #lisp 2018-01-22T14:50:01Z dim: is CASE supposed to “work” on integers? 2018-01-22T14:50:12Z dim: or only with eq, maybe? 2018-01-22T14:50:25Z beach: EQL. 2018-01-22T14:50:29Z beach: So yes, integers are fine. 2018-01-22T14:50:41Z dim: then I can't understand the bug I am looking at 2018-01-22T14:51:04Z beach: Sorry to hear that. 2018-01-22T14:51:11Z dim: code is at https://github.com/qitab/qmynd/blob/master/src/mysql-protocol/response-result-set.lisp#L197 2018-01-22T14:51:42Z beach: The case labels aren't evaluated. 2018-01-22T14:51:59Z beach: You would have to precede them with #. for that to work. 2018-01-22T14:52:11Z dim: I have column-type 252, which should be eql to (defconstant +mysql-type-blob+ #xfc) I think, and (column-definition-v41-packet-cs-coll column-definition) is 63, which should be eql to (defconstant +mysql-cs-coll-binary+ 63), and, sorry what? 2018-01-22T14:52:15Z dim: ahah 2018-01-22T14:52:30Z beach: I guess you could do #.(list +...+ +...+) 2018-01-22T14:52:38Z beach: ... rather than doing each one. 2018-01-22T14:52:41Z dim: this code has been wrong for a long time then 2018-01-22T14:52:48Z dim: trying that 2018-01-22T14:52:54Z beach: I would have to take your word for it. 2018-01-22T14:54:10Z dim: since https://github.com/qitab/qmynd/commit/39e17d0fdcf111f7b081d8aff316af084476f198#diff-a7f8d7f40f13983046fa6d0c5bfb2272 2018-01-22T14:54:54Z dim: I though case would be much better than cond and member 2018-01-22T14:55:11Z dim: and the 'otherwise kept it ok in my testing 2018-01-22T14:55:13Z beach: I think SBCL CASE expands to COND. 2018-01-22T14:56:02Z beach: I suppose the logic behind how CASE works is that the compiler should be able to build a hash table, perhaps with perfect hashing, to make the choice real fast. 2018-01-22T14:56:12Z dim: (case (#. (list +mysql-type-string+ +mysql-type-var-string+ +mysql-type-tiny-blob+ +mysql-type-medium-blob+ +mysql-type-long-blob+ +mysql-type-blob+) ...)) doesn't seem to cut it 2018-01-22T14:56:13Z beach: But that assumes that there are A LOT of cases. 2018-01-22T14:56:22Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T14:56:44Z jackdaniel: or that the case is called MANY times 2018-01-22T14:56:44Z schweers: Does anyone use cl-launch with CCL? I’ve been using cl-launch with sbcl for a few months now and wanted to try my code on CCL too. When I start a repl, load and run my code from there it works. So thats a good start. When I use cl-launch I am dropped in a repl too (which doesn’t happen with sbcl). 2018-01-22T14:57:04Z red-dot joined #lisp 2018-01-22T14:57:06Z jackdaniel: alexandria has switch, but it doesn't allow specifying many elements (just one, but it is evaluated) 2018-01-22T14:57:08Z dim: jackdaniel: the case here is called MANY times 2018-01-22T14:57:25Z dim: should I build my own hash table?! 2018-01-22T14:57:28Z jackdaniel: dim: I know, that's why using case + #. is a better choice than cond + member 2018-01-22T14:57:30Z beach: jackdaniel: That is not enough if the CASE would take longer if a hash table were used. 2018-01-22T14:57:41Z schweers: also, when I try to run my code from this cl-launch induced repl CCL bails out because the heap is exhausted (which does not happen when I use a repl directly). 2018-01-22T14:57:47Z Shinmera: in some cases a jump table would also work 2018-01-22T14:58:09Z dim: but the #. (list +...+ ) doesn't seem to work, so either I tried it wrong again, or maybe I am testing the code I didn't edit 2018-01-22T14:58:25Z beach: It should work. 2018-01-22T14:58:34Z iqubic quit (Remote host closed the connection) 2018-01-22T14:58:49Z dim: ok the function was inlined, so recompiling it was not helping 2018-01-22T14:59:04Z dim: IOW, I wasn't tested the code I wrote 2018-01-22T14:59:44Z dim: I was about to say "and now it's pretty slow", jira.plugindata 0 45 343.8 MB 44.985s 2018-01-22T14:59:50Z dim: maybe not that slow 2018-01-22T15:00:29Z _death: beach: it may not work, because the value may not be available during read time 2018-01-22T15:00:31Z beach: I suppose if the labels are rational numbers, a technique similar to my fast generic dispatch could be used. That could be a big win. 2018-01-22T15:00:34Z jackdaniel: right, hash-table proves beneficial over linear search above some threshold 2018-01-22T15:00:46Z beach: _death: sure. 2018-01-22T15:00:56Z beach: _death: I guess dim will find out. 2018-01-22T15:01:12Z dim: there are 11 “cases” (entries) to check against, plus a catch-all 2018-01-22T15:01:26Z jackdaniel: sbcl makes constants available at read time (if defined at the same file), ccl doesn't - both behaviors are conforming 2018-01-22T15:01:29Z _death: beach: dim could eval-when his defconstants 2018-01-22T15:01:46Z jackdaniel: to make code portable (while having defconstant) using eval-when is the solution 2018-01-22T15:01:48Z warweasle joined #lisp 2018-01-22T15:02:04Z beach: _death: Yeah, I wasn't going to bring it up, because I saw no trace of the definitions in the same file, so I assumed they existed already. 2018-01-22T15:02:06Z LiamH joined #lisp 2018-01-22T15:02:18Z fikka joined #lisp 2018-01-22T15:03:02Z beach: With 11 cases, it could definitely benefit from a technique like my fast generic dispatch, provided the entries are numbers, of course. 2018-01-22T15:03:10Z sjl quit (Quit: WeeChat 1.9.1) 2018-01-22T15:03:13Z beach: er, real numbers. 2018-01-22T15:03:58Z _death: a tree case analysis or some perfect hash-table thingy may work, if it's even needed (profile first) 2018-01-22T15:05:01Z sjl joined #lisp 2018-01-22T15:05:21Z pjb: xb 2018-01-22T15:05:24Z pjb: Oops. 2018-01-22T15:05:31Z beach: _death: A tree (or rather binary search using constants) is what my fast generic dispatch uses, simply because it is faster than trying to store some data structure in memory. 2018-01-22T15:06:16Z rippa joined #lisp 2018-01-22T15:06:19Z _death: beach: yeah, with such a small number of cases it makes sense 2018-01-22T15:07:01Z beach: It makes sense even when the number of cases is large, because the number of comparisons only grows logarithmically. 2018-01-22T15:07:27Z beach: So you would need thousands of cases in order for it to be slower than a few memory accesses. 2018-01-22T15:07:52Z _death: beach: if memory is accessed then you've lost the benefit 2018-01-22T15:08:05Z smurfrobot joined #lisp 2018-01-22T15:08:18Z beach: That's what I am saying. My technique does not access memory, but a perfect hashing scheme would. 2018-01-22T15:08:33Z _death: beach: we are in agreement :) 2018-01-22T15:08:43Z beach: Good. 2018-01-22T15:08:51Z dim: patches welcome and appreciated guys! 2018-01-22T15:09:03Z dim: I just fixed with #. (list ...) for now 2018-01-22T15:09:10Z beach: Did it work? 2018-01-22T15:09:13Z _death: someone should port gperf to CL 2018-01-22T15:09:16Z dim: it did, thanks a lot! 2018-01-22T15:09:19Z beach: Sure. 2018-01-22T15:09:37Z dim: I don't think that code path is the most prominent to fix in qmynd btw, but it'd be nice to improve it some more 2018-01-22T15:10:40Z dim: 27.857s instead of 45s when using SBCL rather than CCL 2018-01-22T15:10:47Z beach: This discussion did give me the idea that I should implement CASE like that in SICL (for the case of real numbers). 2018-01-22T15:10:53Z dyelar quit (Quit: Leaving.) 2018-01-22T15:11:03Z dim: +1 ;-) 2018-01-22T15:11:12Z beach: [*sigh*] so much work, so little time. 2018-01-22T15:11:23Z dim: then how to we make such improvements reach through SBCL/CCL/others? 2018-01-22T15:11:31Z Shinmera: beach: real numbers and characters. 2018-01-22T15:11:38Z beach: Yes, that too. 2018-01-22T15:11:50Z beach: dim: You buy the maintainers a beer (or some wine) at ELS. 2018-01-22T15:12:11Z _death: beach: it reminds me of pkhuong's string-case.. and I wouldn't be surprised if I encountered more case operators like it in the past 2018-01-22T15:12:14Z dim: by the way with the fix the MySQL read now takes 2s while writing to PostgreSQL takes the 27s (in another thread) 2018-01-22T15:12:43Z beach: _death: Sure, that would be valuable. 2018-01-22T15:12:45Z dim: so my current performance problem is to do with format-vector-row if some of you guys want to play around 2018-01-22T15:12:49Z dim: low handing fruits there 2018-01-22T15:13:03Z dim: https://github.com/dimitri/pgloader/blob/master/src/pgsql/copy-format.lisp 2018-01-22T15:13:27Z dim: dead easy to improve, but last I tried I broke the whole of pgloader, for wanting to do too many optimizations at once 2018-01-22T15:18:14Z _death: should split it into several functions.. and btw you can (reduce ... :key ...) instead of (reduce ... (map ...)) 2018-01-22T15:19:41Z smurfrobot quit (Remote host closed the connection) 2018-01-22T15:20:28Z hhdave joined #lisp 2018-01-22T15:21:10Z Cymew quit (Remote host closed the connection) 2018-01-22T15:21:58Z Cymew joined #lisp 2018-01-22T15:21:58Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-22T15:22:17Z JonSmith joined #lisp 2018-01-22T15:22:38Z dim: want to send a patch? ;-) 2018-01-22T15:23:22Z dim: in (reduce '+ (map 'list #'col-length pgrow)), pgrow is a vector 2018-01-22T15:23:39Z dim: can I reduce :key on a vector? 2018-01-22T15:24:00Z attila_lendvai joined #lisp 2018-01-22T15:24:00Z attila_lendvai quit (Changing host) 2018-01-22T15:24:00Z attila_lendvai joined #lisp 2018-01-22T15:24:15Z _death: (reduce #'+ pgrow :key #'col-length) 2018-01-22T15:24:30Z flamebeard quit (Quit: Leaving) 2018-01-22T15:26:21Z Cymew quit (Ping timeout: 246 seconds) 2018-01-22T15:26:47Z phoe: clhs reduce 2018-01-22T15:26:47Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_reduce.htm 2018-01-22T15:27:00Z phoe: reduce accepts a sequence, therefore it can accept a vector. 2018-01-22T15:27:39Z sebastien_ quit (Ping timeout: 256 seconds) 2018-01-22T15:27:47Z sebastien_ joined #lisp 2018-01-22T15:28:04Z Cymew joined #lisp 2018-01-22T15:28:20Z dim: cool, thanks, I missed that I guess 2018-01-22T15:28:39Z clarkema joined #lisp 2018-01-22T15:29:06Z dim: I must have also considered :key for class/struct slot accesses, in my mind, but the API is way more generic than that 2018-01-22T15:29:35Z ebzzry quit (Ping timeout: 248 seconds) 2018-01-22T15:29:48Z papachan joined #lisp 2018-01-22T15:30:28Z dim: then there's a huge optimisation (I think) to be done here by only considering UTF-8 convertions for text based datatypes 2018-01-22T15:30:32Z smurfrobot joined #lisp 2018-01-22T15:31:09Z heurist`_ is now known as heurist 2018-01-22T15:31:28Z dim: and then another idea is to avoid batching altogether in the db-2-db case for pgloader, as error handling then should be taken care of at the source db rather than with a reject file 2018-01-22T15:31:31Z dim: oh my. 2018-01-22T15:32:33Z malice joined #lisp 2018-01-22T15:32:33Z Cymew quit (Ping timeout: 256 seconds) 2018-01-22T15:32:50Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-22T15:35:40Z smurfrobot quit (Remote host closed the connection) 2018-01-22T15:36:33Z Cymew joined #lisp 2018-01-22T15:37:26Z Xal quit (Read error: Connection reset by peer) 2018-01-22T15:37:48Z _death: hope you got automatic fixmind->bigmind transition or you're gonna overflow ;) 2018-01-22T15:39:23Z Xal joined #lisp 2018-01-22T15:39:27Z dim: what's that? 2018-01-22T15:39:36Z _death: a joke 2018-01-22T15:39:49Z dim: didn't get it 2018-01-22T15:40:21Z dim: is there any point in building a single vector of bytes compared to a vector of vector of bytes, on a pure performance standpoint? 2018-01-22T15:40:35Z kjeldahl quit (*.net *.split) 2018-01-22T15:40:36Z jurov quit (*.net *.split) 2018-01-22T15:40:37Z rann quit (*.net *.split) 2018-01-22T15:40:38Z jyc quit (*.net *.split) 2018-01-22T15:40:39Z cryptomarauder quit (*.net *.split) 2018-01-22T15:40:40Z p_l quit (*.net *.split) 2018-01-22T15:40:44Z kammd[m] quit (*.net *.split) 2018-01-22T15:40:44Z hdurer[m] quit (*.net *.split) 2018-01-22T15:40:45Z abbe quit (*.net *.split) 2018-01-22T15:40:46Z leo_song quit (*.net *.split) 2018-01-22T15:40:46Z norserob quit (*.net *.split) 2018-01-22T15:40:47Z whartung quit (*.net *.split) 2018-01-22T15:40:48Z drmeister quit (*.net *.split) 2018-01-22T15:40:48Z tobel quit (*.net *.split) 2018-01-22T15:40:48Z devlaf quit (*.net *.split) 2018-01-22T15:40:48Z gendl quit (*.net *.split) 2018-01-22T15:40:48Z splittist quit (*.net *.split) 2018-01-22T15:40:49Z d4gg4d_ quit (*.net *.split) 2018-01-22T15:40:49Z alphor quit (*.net *.split) 2018-01-22T15:40:50Z swflint quit (*.net *.split) 2018-01-22T15:40:53Z abbe joined #lisp 2018-01-22T15:40:53Z leo_song joined #lisp 2018-01-22T15:40:55Z swflint_away joined #lisp 2018-01-22T15:40:55Z jurov joined #lisp 2018-01-22T15:40:56Z alphor joined #lisp 2018-01-22T15:40:56Z norserob joined #lisp 2018-01-22T15:40:58Z whartung joined #lisp 2018-01-22T15:40:59Z Shinmera: Uh, well, you have to pass two indirections if you have two vectors nested. 2018-01-22T15:41:02Z kjeldahl joined #lisp 2018-01-22T15:41:03Z Cymew quit (Ping timeout: 246 seconds) 2018-01-22T15:41:05Z _death: such questions are best left to the profiler 2018-01-22T15:41:05Z d4gg4d_ joined #lisp 2018-01-22T15:41:11Z gendl joined #lisp 2018-01-22T15:41:12Z jyc joined #lisp 2018-01-22T15:41:12Z swflint_away is now known as swflint 2018-01-22T15:41:14Z tobel joined #lisp 2018-01-22T15:41:15Z splittist joined #lisp 2018-01-22T15:41:17Z drmeister joined #lisp 2018-01-22T15:41:33Z p_l joined #lisp 2018-01-22T15:41:38Z devlaf joined #lisp 2018-01-22T15:41:39Z rann joined #lisp 2018-01-22T15:42:03Z rumbler31 joined #lisp 2018-01-22T15:42:41Z Cymew joined #lisp 2018-01-22T15:44:45Z oleo joined #lisp 2018-01-22T15:44:54Z kammd[m] joined #lisp 2018-01-22T15:44:55Z hdurer[m] joined #lisp 2018-01-22T15:45:01Z fikka quit (Ping timeout: 256 seconds) 2018-01-22T15:45:45Z fikka joined #lisp 2018-01-22T15:45:57Z _cosmonaut_ quit (Ping timeout: 264 seconds) 2018-01-22T15:45:57Z cryptomarauder joined #lisp 2018-01-22T15:46:37Z clarkema quit (Quit: clarkema) 2018-01-22T15:47:11Z Cymew quit (Ping timeout: 248 seconds) 2018-01-22T15:49:18Z joast quit (Quit: Leaving.) 2018-01-22T15:49:56Z joast joined #lisp 2018-01-22T15:50:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T15:55:55Z dec0n quit (Read error: Connection reset by peer) 2018-01-22T15:57:42Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T15:58:28Z red-dot joined #lisp 2018-01-22T16:00:10Z FreeBirdLjj joined #lisp 2018-01-22T16:02:03Z fikka joined #lisp 2018-01-22T16:02:27Z shifty quit (Ping timeout: 240 seconds) 2018-01-22T16:06:59Z ikki joined #lisp 2018-01-22T16:09:11Z BitPuffin joined #lisp 2018-01-22T16:09:45Z brendyn quit (Read error: Connection reset by peer) 2018-01-22T16:10:54Z brendyn joined #lisp 2018-01-22T16:11:51Z nowhere_man joined #lisp 2018-01-22T16:11:53Z mepian quit (Read error: Connection reset by peer) 2018-01-22T16:14:05Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-22T16:14:10Z hhdave quit (Ping timeout: 260 seconds) 2018-01-22T16:15:14Z dieggsy joined #lisp 2018-01-22T16:15:50Z mepian joined #lisp 2018-01-22T16:15:55Z mepian quit (Changing host) 2018-01-22T16:15:55Z mepian joined #lisp 2018-01-22T16:18:05Z smasta joined #lisp 2018-01-22T16:18:36Z smurfrobot joined #lisp 2018-01-22T16:19:52Z _cosmonaut_ joined #lisp 2018-01-22T16:21:25Z gilez joined #lisp 2018-01-22T16:27:05Z smurfrobot quit (Remote host closed the connection) 2018-01-22T16:27:16Z pchrist joined #lisp 2018-01-22T16:27:29Z igemnace_ joined #lisp 2018-01-22T16:28:38Z clarkema joined #lisp 2018-01-22T16:32:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-22T16:33:59Z smurfrobot joined #lisp 2018-01-22T16:35:59Z fikka quit (Ping timeout: 255 seconds) 2018-01-22T16:37:03Z fikka joined #lisp 2018-01-22T16:37:21Z smasta joined #lisp 2018-01-22T16:38:54Z attila_lendvai left #lisp 2018-01-22T16:39:06Z attila_lendvai joined #lisp 2018-01-22T16:39:38Z knicklux joined #lisp 2018-01-22T16:41:57Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-22T16:42:10Z clarkema quit (Quit: clarkema) 2018-01-22T16:42:39Z EvW quit (Ping timeout: 246 seconds) 2018-01-22T16:43:46Z smurfrobot quit (Remote host closed the connection) 2018-01-22T16:44:31Z lambda9 joined #lisp 2018-01-22T16:45:11Z smurfrobot joined #lisp 2018-01-22T16:47:32Z nika joined #lisp 2018-01-22T16:47:44Z smurfrobot quit (Remote host closed the connection) 2018-01-22T16:53:58Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-22T16:54:40Z shrdlu68 joined #lisp 2018-01-22T16:55:56Z lambda9 quit (Quit: Leaving) 2018-01-22T16:59:06Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T16:59:41Z red-dot joined #lisp 2018-01-22T16:59:43Z ikki quit (Ping timeout: 248 seconds) 2018-01-22T17:03:23Z FreeBirdLjj joined #lisp 2018-01-22T17:05:30Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-01-22T17:07:07Z shrdlu68 joined #lisp 2018-01-22T17:07:46Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-22T17:07:51Z rumbler31: with (setq *print-radix* t), (CCL:MAKE-SOCKET :REMOTE-HOST "beta.quicklisp.org" :REMOTE-PORT 80) fails with bt https://pastebin.com/1ZQK1qQu 2018-01-22T17:08:01Z rumbler31: is this a known bug? 2018-01-22T17:08:30Z rumbler31: derp wrong window 2018-01-22T17:08:33Z mepian_ joined #lisp 2018-01-22T17:09:39Z smurfrobot joined #lisp 2018-01-22T17:09:47Z mepian quit (Ping timeout: 268 seconds) 2018-01-22T17:09:54Z arbv quit (Ping timeout: 256 seconds) 2018-01-22T17:10:17Z mepian_ is now known as mepian 2018-01-22T17:10:20Z mepian quit (Changing host) 2018-01-22T17:10:20Z mepian joined #lisp 2018-01-22T17:10:36Z arbv joined #lisp 2018-01-22T17:12:51Z rumbler31: looking to run the fast-io tests. I'm not familiar with many testing frameworks yet, but it doesn't look like an asdf test-op is defined for fast-io. How do I go about... running the tests? 2018-01-22T17:14:15Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-22T17:17:52Z ebzzry joined #lisp 2018-01-22T17:18:39Z jasom joined #lisp 2018-01-22T17:22:51Z _sebbot joined #lisp 2018-01-22T17:24:37Z mepian quit (Read error: Connection reset by peer) 2018-01-22T17:24:57Z turkja quit (Ping timeout: 264 seconds) 2018-01-22T17:25:51Z fortitude_ is now known as fortitude 2018-01-22T17:26:42Z ikki joined #lisp 2018-01-22T17:28:05Z _sebbot quit (Ping timeout: 240 seconds) 2018-01-22T17:31:08Z knicklux quit (Quit: Leaving) 2018-01-22T17:33:35Z _cosmonaut_ quit (Ping timeout: 240 seconds) 2018-01-22T17:33:46Z zulu_inuoe joined #lisp 2018-01-22T17:33:53Z schweers quit (Ping timeout: 255 seconds) 2018-01-22T17:39:05Z smurfrobot joined #lisp 2018-01-22T17:39:57Z smasta quit (Ping timeout: 264 seconds) 2018-01-22T17:40:09Z dented42 joined #lisp 2018-01-22T17:43:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-22T17:44:57Z drewc_ joined #lisp 2018-01-22T17:46:20Z drewc quit (Ping timeout: 260 seconds) 2018-01-22T17:48:05Z nowhere_man quit (Ping timeout: 260 seconds) 2018-01-22T17:48:52Z Karl_Dscc joined #lisp 2018-01-22T17:50:04Z drewc_ is now known as drewc 2018-01-22T17:50:46Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-22T17:51:40Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-22T17:52:09Z smasta joined #lisp 2018-01-22T17:52:16Z dented42 joined #lisp 2018-01-22T17:52:30Z JuanitoJons joined #lisp 2018-01-22T17:53:12Z dented42 quit (Client Quit) 2018-01-22T17:53:21Z smurfrobot joined #lisp 2018-01-22T17:55:36Z zooey quit (Ping timeout: 255 seconds) 2018-01-22T17:57:16Z zooey joined #lisp 2018-01-22T17:57:51Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-22T17:59:54Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T18:01:11Z red-dot joined #lisp 2018-01-22T18:06:31Z micro quit (Ping timeout: 268 seconds) 2018-01-22T18:07:01Z micro joined #lisp 2018-01-22T18:10:32Z orivej quit (Ping timeout: 256 seconds) 2018-01-22T18:16:19Z karswell quit (Read error: Connection reset by peer) 2018-01-22T18:16:37Z zagura is now known as zagura__ 2018-01-22T18:16:53Z karswell joined #lisp 2018-01-22T18:19:06Z shka joined #lisp 2018-01-22T18:19:23Z zooey quit (Remote host closed the connection) 2018-01-22T18:19:49Z zooey joined #lisp 2018-01-22T18:20:39Z zagura__ is now known as zagura_ 2018-01-22T18:22:07Z rumbler31: everyone's quiet today 2018-01-22T18:23:18Z Xach: Busy! 2018-01-22T18:23:49Z zazzerino joined #lisp 2018-01-22T18:26:12Z smurfrobot joined #lisp 2018-01-22T18:26:53Z sjl: rumbler31: (asdf:test-system :fast-io) maybe 2018-01-22T18:28:47Z scymtym_ quit (Ping timeout: 255 seconds) 2018-01-22T18:30:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-22T18:31:02Z solyd quit (Quit: solyd) 2018-01-22T18:31:27Z karswell quit (Ping timeout: 240 seconds) 2018-01-22T18:35:18Z flip214: Can I pass multiple :long-name options to CLON:DEFSYNOPSIS, so that any one of the long names can be used? Ie. aliases? 2018-01-22T18:37:35Z karswell joined #lisp 2018-01-22T18:37:58Z rumbler31: sjl: no dice, tried a few versions of that. oh well 2018-01-22T18:38:38Z Bike quit (Quit: Page closed) 2018-01-22T18:38:45Z sjl: rumbler31: as far as I know that's the intended way to run tests for an ASDF system. if fast-io does it differently, they should document it. 2018-01-22T18:39:20Z rumbler31: so i've been looking for machinery for that, I expect that the test-op function to call would be explicitly defined in the .asd file right? 2018-01-22T18:40:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-22T18:41:47Z sjl: ah it looks like they do some... "interesting" things in the test definition 2018-01-22T18:42:49Z sjl: the define the tests in a separate system, like a lot of systems do, to avoid having to load the unit test framework to use the main system 2018-01-22T18:43:07Z sjl: usually when you do that, you add an :in-order-to to the main system like this https://github.com/sjl/cl-digraph/blob/master/cl-digraph.asd#L11 2018-01-22T18:43:38Z shka: good evening 2018-01-22T18:43:53Z sjl: they have https://github.com/rpav/fast-io/blob/master/fast-io-test.asd 2018-01-22T18:44:04Z smurfrobot joined #lisp 2018-01-22T18:44:10Z sjl: which eval-when's a couple load-system calls 2018-01-22T18:44:39Z sjl: which will break unless you've quickloaded them at least once 2018-01-22T18:44:45Z rumbler31: yea, ran right into that one 2018-01-22T18:45:01Z sjl: and then does (checkl:define-test-op :fast-io :fast-io-test) to I think add the in-order-to? 2018-01-22T18:45:46Z sjl: I dunno, it's weird and non-standard and won't work like most people expect -- (progn (ql:quickload :fast-io) (asdf:test-system :fast-io)) won't work without other stuff 2018-01-22T18:45:50Z sjl: I'd file a bug 2018-01-22T18:46:37Z Xach: asdf:test-system is a relatively recent thing. 2018-01-22T18:46:55Z Xach: I like that it exists, but it hasn't been the way to do it since forever. 2018-01-22T18:47:06Z sjl: or whatever it's a shortcut for 2018-01-22T18:47:13Z Bike joined #lisp 2018-01-22T18:47:21Z Xach: I also find the way to set it up a bit cumbersome. Kind of a throwback to the (asdf:oos 'asdf:load-op ...) days. 2018-01-22T18:47:33Z Xach: and the suggestion to embed uiop in the system file also rubs me the wrong way. 2018-01-22T18:48:07Z al-damiri joined #lisp 2018-01-22T18:48:28Z Xach: But, it is pretty ok 2018-01-22T18:49:04Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-22T18:50:08Z rumbler31: so the answer seems to be that the authors usage of checkl in the -test.asd means that the correct answer to run tests is to invoke (run-all). Although the output doesn't suggest success or failure on my system. Thanks all 2018-01-22T18:50:34Z nika quit (Quit: Leaving...) 2018-01-22T18:56:40Z rumbler31: sjl: great documentation on your digraph library btw 2018-01-22T18:57:35Z sjl: thanks 2018-01-22T18:59:23Z smasta quit (Ping timeout: 256 seconds) 2018-01-22T18:59:35Z _sebbot joined #lisp 2018-01-22T19:01:53Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T19:02:27Z zazzerino quit (Ping timeout: 240 seconds) 2018-01-22T19:02:39Z red-dot joined #lisp 2018-01-22T19:03:46Z fikka joined #lisp 2018-01-22T19:03:54Z rumbler31: minion: memo for antonv: theoretically, if you wish to send a udp packet to a multicast address, you shouldn't need any more os support. The magic comes when you try to tell the os that you care to receive packets from certain multicast addresses 2018-01-22T19:03:54Z minion: Remembered. I'll tell antonv when he/she/it next speaks. 2018-01-22T19:04:24Z lnostdal quit (Ping timeout: 246 seconds) 2018-01-22T19:05:32Z eivarv joined #lisp 2018-01-22T19:05:35Z rumbler31: minion: memo for antonv: there were some patches for ccl on the mailing list long ago that added support for multicast sockets. Sending to multicast addresses *may* *just work* though 2018-01-22T19:05:35Z minion: Remembered. I'll tell antonv when he/she/it next speaks. 2018-01-22T19:07:29Z lnostdal joined #lisp 2018-01-22T19:08:48Z fikka quit (Ping timeout: 268 seconds) 2018-01-22T19:11:51Z smasta joined #lisp 2018-01-22T19:12:59Z SpikeMaster joined #lisp 2018-01-22T19:13:31Z fikka joined #lisp 2018-01-22T19:16:20Z sirkmatija quit (Quit: Leaving) 2018-01-22T19:16:48Z dented42 joined #lisp 2018-01-22T19:17:20Z lnostdal quit (Ping timeout: 248 seconds) 2018-01-22T19:18:17Z lnostdal joined #lisp 2018-01-22T19:20:55Z ikki quit (Ping timeout: 256 seconds) 2018-01-22T19:25:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-22T19:27:26Z dented42 quit (Ping timeout: 255 seconds) 2018-01-22T19:30:39Z dented42 joined #lisp 2018-01-22T19:30:57Z Sauvin quit (Ping timeout: 240 seconds) 2018-01-22T19:31:03Z SpikeMaster left #lisp 2018-01-22T19:32:17Z malice quit (Remote host closed the connection) 2018-01-22T19:33:19Z BitPuffin quit (Remote host closed the connection) 2018-01-22T19:33:28Z fikka joined #lisp 2018-01-22T19:40:15Z fikka quit (Ping timeout: 268 seconds) 2018-01-22T19:40:22Z Murii joined #lisp 2018-01-22T19:42:12Z asarch joined #lisp 2018-01-22T19:43:38Z orivej joined #lisp 2018-01-22T19:44:45Z dmiles quit (Ping timeout: 260 seconds) 2018-01-22T19:48:40Z ikki joined #lisp 2018-01-22T19:53:35Z moei joined #lisp 2018-01-22T19:56:25Z jstypo quit (Ping timeout: 260 seconds) 2018-01-22T19:56:51Z jstypo joined #lisp 2018-01-22T19:58:30Z fikka joined #lisp 2018-01-22T20:00:59Z damke_ joined #lisp 2018-01-22T20:03:22Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T20:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-22T20:04:06Z red-dot joined #lisp 2018-01-22T20:05:24Z smurfrobot joined #lisp 2018-01-22T20:06:45Z nowhere_man joined #lisp 2018-01-22T20:10:15Z dmiles joined #lisp 2018-01-22T20:13:58Z pierpa joined #lisp 2018-01-22T20:14:14Z smurfrobot quit (Remote host closed the connection) 2018-01-22T20:19:51Z smurfrobot joined #lisp 2018-01-22T20:20:03Z stux|RC-only joined #lisp 2018-01-22T20:20:21Z paul0 joined #lisp 2018-01-22T20:25:27Z asarch quit (Ping timeout: 240 seconds) 2018-01-22T20:26:04Z asarch joined #lisp 2018-01-22T20:28:31Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-22T20:31:08Z smurfrobot quit (Remote host closed the connection) 2018-01-22T20:33:17Z mulk quit (Ping timeout: 268 seconds) 2018-01-22T20:33:32Z mulk joined #lisp 2018-01-22T20:33:48Z void_pointer joined #lisp 2018-01-22T20:34:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T20:34:32Z anaumov quit (Ping timeout: 268 seconds) 2018-01-22T20:35:17Z karswell quit (Remote host closed the connection) 2018-01-22T20:39:30Z dim: ok, I simplified https://github.com/dimitri/pgloader/blob/master/src/pgsql/copy-format.lisp a lot, made several simpler functions and all, and I won some low-% of perfs at that 2018-01-22T20:39:35Z omilu joined #lisp 2018-01-22T20:39:50Z dim: so now that it's easier to review, I hope some perfs guru will get interested into either giving advices or sending patches ;-) 2018-01-22T20:40:39Z warweasle quit (Quit: leaving!) 2018-01-22T20:42:32Z davsebamse quit (Ping timeout: 268 seconds) 2018-01-22T20:42:46Z davsebamse joined #lisp 2018-01-22T20:44:51Z AeroNotix: dim: do you have an example input set you're using? How are you benchmarking? 2018-01-22T20:45:00Z _sebbot quit (Ping timeout: 268 seconds) 2018-01-22T20:46:18Z AeroNotix: Wonder if simple application of type declarations and safety 0 would get anything. 2018-01-22T20:46:29Z ebzzry quit (Ping timeout: 256 seconds) 2018-01-22T20:47:27Z ikki quit (Ping timeout: 240 seconds) 2018-01-22T20:47:34Z AeroNotix: dim: why not just filter the list of funs prior to the loop? https://github.com/dimitri/pgloader/blob/master/src/pgsql/copy-format.lisp#L52 2018-01-22T20:47:45Z shrdlu68: Is (safety 0) ever used in production? 2018-01-22T20:48:01Z AeroNotix: shrdlu68: no idea, I've never used it I was asking a question 2018-01-22T20:48:42Z thijso quit (Ping timeout: 246 seconds) 2018-01-22T20:48:46Z fikka joined #lisp 2018-01-22T20:50:42Z dim: AeroNotix: bencmarking consists of using pgloader to load data into PostgreSQL or migrate a whole database from MySQL, the function format-vector-row is called with every single row that's loaded 2018-01-22T20:50:54Z dim: if you have a big'o'CSV file that'd be a nice use-case 2018-01-22T20:51:14Z dim: but anyway, some people had comments earlier on the previous version of the function, that I addressed, and it was good comments ;-) 2018-01-22T20:51:38Z AeroNotix: dim: Yes I know, i was reading before, thought I'd read through it now you've cleaned the code up. Before it was rather unwieldy to read. 2018-01-22T20:53:28Z dim: yeah, exactly ;-) 2018-01-22T20:53:36Z dim: (and to maintain, too) 2018-01-22T20:53:38Z fikka quit (Ping timeout: 268 seconds) 2018-01-22T20:54:23Z smasta quit (Ping timeout: 248 seconds) 2018-01-22T20:55:43Z pagnol joined #lisp 2018-01-22T20:55:56Z AeroNotix: dim: does it need to be modified in an in-memory vector rather than streaming directly to file? 2018-01-22T20:56:27Z dim: yes, although I'm wonderting about that again 2018-01-22T20:56:53Z dim: the idea is that we use the high performance COPY protocol of PostgreSQL, which allows streaming data (in and out of the database) 2018-01-22T20:57:09Z dim: the thing is that COPY is (of course) transactional, so any error aborts the whole transaction 2018-01-22T20:57:15Z AeroNotix: yes 2018-01-22T20:57:26Z AeroNotix: just thinking it might be possible to instead directly perform the COPY 2018-01-22T20:57:35Z dim: pgloader works around transaction rollback and replay the good input, rejecting the bad one, so that you can get your data in 2018-01-22T20:57:38Z AeroNotix: instead of creating and messing with in-memory vectors, then streaming it 2018-01-22T20:57:54Z dim: in-memory vectors are used to replay the batches that are rejected by PostgreSQL 2018-01-22T20:58:07Z AeroNotix: ohh, ok. So maybe to retain that feature you can't stream it directly. Might be a good option to provide though :) 2018-01-22T20:58:22Z dim: when that happens we have ready-to-go data in memory, and also we know that the COPY offset reported in the PostgreSQL is the array offset in the batch 2018-01-22T20:58:30Z dim: that's quite a nice property to have, for all it costs 2018-01-22T20:58:35Z AeroNotix: indeed it is 2018-01-22T20:58:46Z AeroNotix: I hate loading shit into pg for it to fail at some point. 2018-01-22T20:58:47Z smasta joined #lisp 2018-01-22T20:59:07Z dim: now I'm thinking that in the case when you migrate from a source database to PostgreSQL, you don't want any reject file, you'd rather --on-error-stop (the option exists) 2018-01-22T20:59:23Z AeroNotix: possibly 2018-01-22T20:59:28Z dim: and then you either fix your load command (casting rules, mostly), or fix the input database 2018-01-22T20:59:49Z dim: (get rid of bad data, or fix wrong data that you kept unnoticed) 2018-01-22T21:00:38Z dim: so I'm thinking that --on-error-stop should 1. be the default if the source of the data is a database server and 2. make it so that we don't use the in-memory batches at all but rather stream the data to PostgreSQL directly 2018-01-22T21:00:44Z dim: want to see about cooking a patch? ;-) 2018-01-22T21:00:58Z AeroNotix: I've been working all day, just armchair optimizing here :) 2018-01-22T21:01:05Z AeroNotix: tired as anything 2018-01-22T21:01:50Z dim: hehe, fair enough 2018-01-22T21:02:12Z AeroNotix: I've come across pgloader before a few times. Glad to see it's still being worked on. 2018-01-22T21:02:48Z dim: it's my side project... i 2018-01-22T21:02:57Z dim: I'd like for it to be more than a side project, but well 2018-01-22T21:03:36Z dim: well the White Paper has been downloaded some already, which proves interest, and also that's tooling for the Enterprise, not much use at home 2018-01-22T21:03:40Z AeroNotix: dim: you already have a good place to filter functions here: https://github.com/dimitri/pgloader/blob/3bb128c5db9fc7b8926586113aa1b97c59a7b457/src/pgsql/copy-from-queue.lisp#L124-L126 2018-01-22T21:03:58Z AeroNotix: I don't see why https://github.com/dimitri/pgloader/blob/3bb128c5db9fc7b8926586113aa1b97c59a7b457/src/pgsql/copy-format.lisp#L52 needs to be conditional 2018-01-22T21:04:11Z alexmlw quit (Quit: alexmlw) 2018-01-22T21:04:28Z dim: I'm thinking it's easier to have a function per column 2018-01-22T21:04:46Z dim: I could use #'identity I guess, but I'd be surprised if it came to a benefit in terms of performance 2018-01-22T21:04:49Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T21:05:30Z AeroNotix: I was going to mention #'identity. My thinking is that it's part of your inner loop, could be ran quite a lot on a huge input 2018-01-22T21:05:38Z red-dot joined #lisp 2018-01-22T21:06:43Z fikka joined #lisp 2018-01-22T21:08:01Z ikki joined #lisp 2018-01-22T21:09:00Z AeroNotix: depends if you want to micro-optimize :) 2018-01-22T21:09:34Z ihatepasswords joined #lisp 2018-01-22T21:11:05Z AeroNotix: didn't read the whole scrollback but is using a vector like this optimal? Even ignoring what i mentioned before about streaming directly to PG, is it not faster to stream bytes to an in memory buffer instead of writing bytes to vector offsets and incrementing an index? 2018-01-22T21:14:47Z shrdlu68: Sounds like the same thing to me... 2018-01-22T21:15:37Z AeroNotix: except one takes care of things for you regarding where you are in the stream etc. 2018-01-22T21:17:48Z dim: I followed the design of Postmodern here, because it looked good to me and the author looks like he knows what he's doing 2018-01-22T21:18:02Z smurfrobot joined #lisp 2018-01-22T21:18:33Z AeroNotix: fair enough, I'm more asking questions as well as offering what could help. I've never had to properly optimize a CL program just thinking what works in other languages 2018-01-22T21:19:02Z sveit quit (Ping timeout: 255 seconds) 2018-01-22T21:19:10Z dim: I also tried to apply PAIP wisdom, that's when I failed last time 2018-01-22T21:19:21Z dim: now that the code is easier to hack I might try again 2018-01-22T21:19:32Z AeroNotix: hmm, think I hate that book somewhere 2018-01-22T21:20:25Z sveit joined #lisp 2018-01-22T21:21:24Z karswell joined #lisp 2018-01-22T21:21:32Z scymtym joined #lisp 2018-01-22T21:21:34Z dim: next proper step is profiling anyway 2018-01-22T21:21:53Z AeroNotix: cool, will be interesting to see. 2018-01-22T21:25:23Z ante joined #lisp 2018-01-22T21:25:43Z smurfrobot quit (Remote host closed the connection) 2018-01-22T21:25:50Z ante is now known as Cymew 2018-01-22T21:28:06Z smurfrobot joined #lisp 2018-01-22T21:29:39Z dim: yeah, not tonight tho, AFK time I think 2018-01-22T21:30:57Z smasta quit (Ping timeout: 264 seconds) 2018-01-22T21:32:23Z smasta joined #lisp 2018-01-22T21:32:47Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-22T21:33:19Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T21:36:31Z shka quit (Ping timeout: 248 seconds) 2018-01-22T21:37:18Z paule32 joined #lisp 2018-01-22T21:37:36Z nullman quit (Ping timeout: 248 seconds) 2018-01-22T21:38:33Z paule32: hello 2018-01-22T21:39:10Z paule32: is it possible to get the (defparameter foo-bar (... 2018-01-22T21:39:14Z paule32: foo name? 2018-01-22T21:39:21Z eschatologist quit (Ping timeout: 264 seconds) 2018-01-22T21:39:39Z jasom: paule32: I don't understand the question 2018-01-22T21:39:51Z paule32: as example: 2018-01-22T21:40:09Z paule32: you have a stdin readin function 2018-01-22T21:40:25Z paule32: that can user type data like "this is foo" 2018-01-22T21:40:35Z paule32: now, the question is 2018-01-22T21:40:58Z eschatologist joined #lisp 2018-01-22T21:41:02Z fikka joined #lisp 2018-01-22T21:41:03Z wallyduchamp joined #lisp 2018-01-22T21:41:25Z paule32: is the name "foo" from the string supportable to get the name of a "defparameter" struct? 2018-01-22T21:41:34Z paule32: i type in "a foo" 2018-01-22T21:42:14Z paule32: and then get the content of (defparameter foo-bar (("1") ("2"))) 2018-01-22T21:42:43Z AeroNotix: seems like a mess 2018-01-22T21:42:58Z paule32: or in other words: 2018-01-22T21:43:02Z AeroNotix: paule32: what are you trying to do apart from make a weird stringly typed program 2018-01-22T21:43:21Z nullman joined #lisp 2018-01-22T21:43:34Z paule32: you have a string: "the car is red" 2018-01-22T21:43:55Z paule32: now, you have the defparameter list "car-table" 2018-01-22T21:44:05Z AeroNotix: where did "-table" come from? 2018-01-22T21:44:15Z AeroNotix: sounds like you want to write a parser/language 2018-01-22T21:44:25Z paule32: yes 2018-01-22T21:44:42Z AeroNotix: But why use defparameter? 2018-01-22T21:44:51Z paule32: better things? 2018-01-22T21:45:34Z AeroNotix: a better option if writing a language "vm" of sorts is have a datastructure to hold the mappings of sub language variables to implementation level objects 2018-01-22T21:45:39Z smurfrobot joined #lisp 2018-01-22T21:45:41Z AeroNotix: e.g. hash-table is a simple one to implement 2018-01-22T21:46:22Z AeroNotix: rather than trying to generate defparameters from user input, parse the user input and maintain a mapping in a different datastructure and do lookups at the runtime of your program. 2018-01-22T21:47:37Z Karl_Dscc quit (Remote host closed the connection) 2018-01-22T21:47:45Z Cymew quit (Quit: Konversation terminated!) 2018-01-22T21:48:27Z EvW joined #lisp 2018-01-22T21:52:02Z Chream joined #lisp 2018-01-22T21:52:06Z Chream quit (Remote host closed the connection) 2018-01-22T21:52:15Z Chream joined #lisp 2018-01-22T21:52:20Z AeroNotix: but to answer your question, you could write something horrible with FIND-SYMBOL or something. Have fun 2018-01-22T21:53:11Z smurfrobot quit (Remote host closed the connection) 2018-01-22T21:53:20Z paule32: hehe 2018-01-22T21:53:27Z gilez quit (Ping timeout: 268 seconds) 2018-01-22T21:53:31Z paule32: thank you 2018-01-22T21:54:09Z Chream quit (Client Quit) 2018-01-22T21:54:16Z Chream joined #lisp 2018-01-22T21:54:33Z Chream quit (Client Quit) 2018-01-22T21:54:51Z paule32: (mapcar #'abs '(1 -2 3) => (1 2 3) 2018-01-22T21:55:17Z Chream_ joined #lisp 2018-01-22T21:55:38Z paule32: ok 2018-01-22T21:55:42Z paule32: get it 2018-01-22T21:56:15Z Chream_ quit (Client Quit) 2018-01-22T21:56:23Z Chream_ joined #lisp 2018-01-22T21:56:36Z quazimodo joined #lisp 2018-01-22T21:57:28Z Chream_ quit (Client Quit) 2018-01-22T21:57:44Z dieggsy quit (Remote host closed the connection) 2018-01-22T21:57:47Z Chream_ joined #lisp 2018-01-22T21:57:58Z Chream_ quit (Client Quit) 2018-01-22T21:58:37Z Chream_ joined #lisp 2018-01-22T21:58:47Z Chream_ quit (Client Quit) 2018-01-22T21:59:14Z Chream_ joined #lisp 2018-01-22T22:00:03Z Chream_ quit (Client Quit) 2018-01-22T22:00:22Z Chream_ joined #lisp 2018-01-22T22:00:57Z dieggsy joined #lisp 2018-01-22T22:03:28Z wxie joined #lisp 2018-01-22T22:04:15Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-22T22:04:27Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-22T22:05:15Z Murii quit (Quit: WeeChat 1.4) 2018-01-22T22:05:45Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T22:06:31Z razzy joined #lisp 2018-01-22T22:06:39Z jfb4 joined #lisp 2018-01-22T22:07:08Z red-dot joined #lisp 2018-01-22T22:07:30Z smurfrobot joined #lisp 2018-01-22T22:07:50Z smurfrobot quit (Remote host closed the connection) 2018-01-22T22:08:05Z smurfrobot joined #lisp 2018-01-22T22:10:30Z mishoo: anyone else having trouble loading ironclad (via quicklisp) on latest SBCL? 2018-01-22T22:11:11Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-22T22:11:18Z mishoo: I get this: 2018-01-22T22:11:20Z mishoo: The value 2018-01-22T22:11:20Z mishoo: #() 2018-01-22T22:11:20Z mishoo: is not of type 2018-01-22T22:11:20Z mishoo: (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)) 2018-01-22T22:11:29Z mishoo: on this line: https://github.com/glv2/ironclad/blob/master/src/public-key/ed448.lisp#L48 2018-01-22T22:11:34Z mfiano: Is your Quicklisp dist up to date? 2018-01-22T22:11:35Z mishoo: I'd call it a compiler bug.. 2018-01-22T22:11:50Z jmercouris joined #lisp 2018-01-22T22:11:57Z mishoo: yeah, I ran (ql:update-all-dists) after recompiling SBCL 2018-01-22T22:12:01Z jmercouris: Is there way to do something like (read-line) and pre-fill a value in the user's terminal? 2018-01-22T22:12:15Z jmercouris: like (print "some prompt") (setf value (read-line)) 2018-01-22T22:12:18Z mishoo: and then removed ~/.cache/common-lisp 2018-01-22T22:12:28Z AeroNotix: mishoo: latest quicklisp -> (ql:quickload :ironclad) -> no issues. From "http://beta.quicklisp.org/archive/ironclad/2017-11-30/ironclad-v0.37.tgz 2018-01-22T22:12:30Z jmercouris: and the user would see "some prompt", then "default value" 2018-01-22T22:12:57Z Shinmera: jmercouris: Common Lisp has streams, not terminals. 2018-01-22T22:13:14Z Shinmera: If you want terminals, you'll need to use something else like a curses binding. 2018-01-22T22:13:22Z jfb4 joined #lisp 2018-01-22T22:13:45Z fikka quit (Ping timeout: 246 seconds) 2018-01-22T22:13:47Z jmercouris: Maybe I should just wrap the read-line with a default value 2018-01-22T22:14:47Z Shinmera: jmercouris: I use this https://github.com/Shirakumo/radiance-bootstrap/blob/master/boot.lisp#L39 2018-01-22T22:15:05Z jmercouris: yeah that looks good 2018-01-22T22:15:10Z jmercouris: I'll do something similar but simpler 2018-01-22T22:15:15Z jmercouris: thanks for sharing 2018-01-22T22:15:22Z mishoo: AeroNotix: maybe it depends on SBCL version? 2018-01-22T22:15:40Z mishoo: I'm on 1.4.3.290-c5db3dca7, but I tried 1.4.3 too — same results 2018-01-22T22:16:14Z mishoo: anywayz. late night here, will look more closely into it tomorrow.. 2018-01-22T22:16:17Z mfiano: I would not call it a compiler bug. 2018-01-22T22:16:22Z mfiano: It works fine here on 1.4.3 2018-01-22T22:16:55Z AeroNotix: mishoo: sbcl 1.4.0 here 2018-01-22T22:17:19Z AeroNotix: also ironclad takes years to quickload. Yikes 2018-01-22T22:17:21Z fikka joined #lisp 2018-01-22T22:17:47Z smurfrobot quit (Remote host closed the connection) 2018-01-22T22:18:10Z pagnol: I'm on sbcl 1.4.3 and didn't notice anything unusual 2018-01-22T22:18:11Z mishoo: yeah, it's the slowest lib to load.. even when it doesn't. :) 2018-01-22T22:18:43Z shrdlu68: Takes a while to _compile_ 2018-01-22T22:20:10Z mfiano: On older hardware it does. It's doing some expensive macro expansion before compile time. 2018-01-22T22:20:14Z mishoo: I thought it's a compiler bug because the compiler whines about #() not being a (simple-array (unsigned-byte 8) (*)) 2018-01-22T22:20:44Z mishoo: but that's an empty array.. I thought it should be as good as any simple-array with no defined length 2018-01-22T22:20:48Z ikki quit (Ping timeout: 248 seconds) 2018-01-22T22:21:21Z Bike: nope. 2018-01-22T22:21:35Z mfiano: An empty array can still have an element type 2018-01-22T22:21:36Z Bike: #() is a (simple-array t), which is a distinct thing from a (simple-array (unsigned-byte 8)) 2018-01-22T22:22:15Z mishoo: then the compiler is right and ironclad is wrong → https://github.com/glv2/ironclad/blob/master/src/public-key/ed448.lisp#L35-L48 2018-01-22T22:23:23Z shrdlu68: Bike: What about (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (0))? 2018-01-22T22:23:53Z Bike: what about it? 2018-01-22T22:24:28Z shrdlu68: (print (make-array 0 :element-type '(unsigned-byte 8))) -> #() 2018-01-22T22:24:41Z shrdlu68: Yet type-of says it's (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (0)) 2018-01-22T22:24:46Z Bike: try it with *print-readably* t 2018-01-22T22:24:56Z Bike: mishoo: yeah, looks like ironclad is wrong there. 2018-01-22T22:25:13Z mfiano: `type-of` is implementation-dependent 2018-01-22T22:25:15Z paule32: hello 2018-01-22T22:25:17Z paule32: https://pastebin.com/HSe4huTP 2018-01-22T22:25:29Z paule32: how can i check, if 2 lists the same? 2018-01-22T22:25:38Z mishoo: but that used to work fine before SBCL 1.4.x 2018-01-22T22:26:10Z mishoo: (I was on 1.3.x before the upgrade) 2018-01-22T22:26:35Z Bike: mfiano: yes, but in this case it's fine 2018-01-22T22:26:36Z dented42_ joined #lisp 2018-01-22T22:26:39Z mfiano: Aye 2018-01-22T22:27:11Z mfiano: Anyway, (let ((a (make-array 0 :element-type '(unsigned-byte 8)))) (list a (typep a '(simple-array (unsigned-byte 8) (*))))) #| => (#() T) |# 2018-01-22T22:28:10Z shrdlu68: That's consistent with my world-view. 2018-01-22T22:28:20Z pagnol: paule32, define 'same' 2018-01-22T22:29:13Z dented42 quit (Ping timeout: 268 seconds) 2018-01-22T22:29:21Z paule32: pagnol: pseudo code: IF content-listA = content-listB THEN result = true ELSE false 2018-01-22T22:30:03Z pagnol: paule32, there's object identity and equality 2018-01-22T22:30:21Z pagnol: paule32, for example (eq (list 1 2) (list 1 2)) => NIL 2018-01-22T22:30:32Z pagnol: because those lists are two distinct objects 2018-01-22T22:30:39Z dented42 joined #lisp 2018-01-22T22:30:42Z paule32: ok 2018-01-22T22:30:49Z pagnol: however (equalp (list 1 2) (list 1 2)) => T 2018-01-22T22:31:00Z pagnol: what's your language background? 2018-01-22T22:31:09Z paule32: c++, delphi 2018-01-22T22:31:24Z pagnol: then EQ compares the pointers 2018-01-22T22:31:58Z paule32: thank you 2018-01-22T22:32:45Z pagnol: when it comes to lists you may want to know that the LIST function always creates a new object 2018-01-22T22:33:00Z dented42_ quit (Ping timeout: 246 seconds) 2018-01-22T22:33:05Z Bike: mfiano: that's just because the writer is oversimplifying. two things having the same textual representation doesn't make them the same. 2018-01-22T22:33:20Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-01-22T22:33:30Z eivarv quit (Quit: Sleep) 2018-01-22T22:33:49Z dented42_ joined #lisp 2018-01-22T22:33:51Z Bike: mfiano: if you try (write (make-array 0 :element-type '(unsigned-byte 8)) :readably t) you'll get more specific output. 2018-01-22T22:35:06Z anaumov joined #lisp 2018-01-22T22:36:07Z warweasle joined #lisp 2018-01-22T22:36:29Z Bike: and (typep #() '(array (unsigned-byte 8))), straightforwardly enough 2018-01-22T22:36:35Z Bike: er, => NIL 2018-01-22T22:37:15Z Chream_ quit (Read error: Connection reset by peer) 2018-01-22T22:37:18Z shrdlu68: That, of course, depends on what the reader makes of #() 2018-01-22T22:37:33Z dented42 quit (Ping timeout: 264 seconds) 2018-01-22T22:37:38Z Chream_ joined #lisp 2018-01-22T22:38:07Z mishoo: Bike: I kinda agree, on an implementation standpoint, that sets must consider the types of their elements. but IMO an empty set should be the same as an empty set. 2018-01-22T22:38:31Z wxie quit (Quit: Bye.) 2018-01-22T22:38:33Z paule32: pagnol: https://pastebin.com/ngZMWBi7 2018-01-22T22:38:33Z Bike: they're arrays, not sets. 2018-01-22T22:38:41Z paule32: pagnol: i get nil 2018-01-22T22:38:45Z Bike: shrdlu68: it does not. #() is defined to return an array of element type T. 2018-01-22T22:38:47Z Bike: clhs #( 2018-01-22T22:38:47Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/02_dhc.htm 2018-01-22T22:39:04Z Bike: (click "simple vector") 2018-01-22T22:39:05Z dented42_ quit (Ping timeout: 276 seconds) 2018-01-22T22:39:09Z shrdlu68: The point, I think, was that Ironclad could not be faulting for receiving a zero-length octet vector where it expects an octet vector of any length. 2018-01-22T22:39:21Z mishoo: alright, arrays. an empty array of any type should pass type-checking for (array-of-certain-type) 2018-01-22T22:39:39Z shrdlu68: Bike: I see, in that case the results are unambiguous. 2018-01-22T22:39:43Z Bike: it's not receiving a zero length octet vector, it's receiving a zero length T vector, and these are distinct objects 2018-01-22T22:40:08Z pagnol: paule32, if you prepend an apostrophe ' to a form, the it's treated as data 2018-01-22T22:40:10Z xrash joined #lisp 2018-01-22T22:40:15Z dented42 joined #lisp 2018-01-22T22:40:25Z mishoo: Bike: you're pedantic :) can we agree that (EQ NIL NIL)? 2018-01-22T22:40:32Z pagnol: paule32, in your case you want to call the LIST function with arguments 3, 2, 1 2018-01-22T22:40:49Z Bike: i'm pedantic because i want people to understand why the compiler is complaining. 2018-01-22T22:41:11Z Bike: on that subject, regardless of how you think it should work - and i'm not rejecting your opinion there - the standard is pretty clear that being zero length is not a factor here. 2018-01-22T22:41:27Z jurov quit (Ping timeout: 240 seconds) 2018-01-22T22:42:42Z LiamH quit (Quit: Leaving.) 2018-01-22T22:42:49Z pagnol: paule32, you also probably want to look up what MAPCAR actually does 2018-01-22T22:42:59Z jurov joined #lisp 2018-01-22T22:43:03Z paule32: pagnol: ok, but always nil 2018-01-22T22:43:07Z mishoo: well to sum it up, I'd just like ironclad to load here. I'll look tomorrow for possible fixes. 2018-01-22T22:43:21Z Bike: Replace #() with #.(make-array 0 :element-type '(unsigned-byte 8)) 2018-01-22T22:43:31Z Bike: i will be the first to admit this is super ugly 2018-01-22T22:43:39Z mishoo: ... and get that patch in, and wait for a new QL distro 2018-01-22T22:44:08Z mishoo: but that's not the issue 2018-01-22T22:44:18Z mishoo: I do believe SBCL should be more forgiving about this case 2018-01-22T22:44:33Z mishoo: an empty array should pass element type-checking 2018-01-22T22:44:43Z Shinmera: No 2018-01-22T22:45:00Z Bike: that would violate the standard. 2018-01-22T22:45:17Z EvW quit (Ping timeout: 265 seconds) 2018-01-22T22:45:40Z shrdlu68: The compiler is telling mishoo that an object which prints as "#()" is not of type (simple-array (unsigned-byte 8)) 2018-01-22T22:45:55Z Bike: because it isn't. 2018-01-22T22:45:59Z Bike: the printer is oversimplifying. 2018-01-22T22:46:08Z shrdlu68: Yes, we're in agreement. 2018-01-22T22:46:33Z mishoo: possibly the only issue is that you can *modify* an array, even when empty 2018-01-22T22:46:36Z pagnol: paule32, as I said, EQ is fore object identity 2018-01-22T22:46:56Z mishoo: but as far as I can tell, #() is decided ad read-time 2018-01-22T22:46:57Z shrdlu68: What we don't seem to be in agreement over is whether that object could be a zero-length octet vector. 2018-01-22T22:47:53Z Bike: the issue is that arrays of different specializations can be completely different kinds of objects. for example it would be fine for sbcl to store the length of a ub8 vector at a different place from the length of a t vector. then it could compile code that's known to get an ub8 vector (like this) to use the first offset and not check to see if it has to use the second. 2018-01-22T22:47:55Z Bike: for example. 2018-01-22T22:48:30Z pagnol: paule32, I'm sure if you open a repl and play around with mapcar and eq/equalp a little, you will find the mistake yourself 2018-01-22T22:48:55Z paule32: ok 2018-01-22T22:48:57Z sjl quit (Ping timeout: 264 seconds) 2018-01-22T22:50:41Z pfdietz_ joined #lisp 2018-01-22T22:51:20Z pfdietz_: And then there's NIL element type arrays. :) 2018-01-22T22:51:20Z shrdlu68: Looking at the source, there's actually "#()" there. Yeah, that's bound to get flagged by the compiler. 2018-01-22T22:51:25Z fikka quit (Ping timeout: 268 seconds) 2018-01-22T22:52:25Z mishoo: okay, we at least established that it's not some weird thing happening on my machine only, but a legitimate error from SBCL (surprised no one else complained thus far) 2018-01-22T22:54:44Z Bike quit (Ping timeout: 260 seconds) 2018-01-22T22:54:55Z EvW1 joined #lisp 2018-01-22T22:55:27Z shrdlu68: mishoo: Why did you link to glv2/ironclad? Contemporary ironclad use sharplispers/ironclad. 2018-01-22T22:55:51Z mishoo: just googled, but let me see the other version 2018-01-22T22:56:22Z mishoo: looks pretty much the same: https://github.com/sharplispers/ironclad/blob/master/src/public-key/ed448.lisp#L35-L48 2018-01-22T22:56:27Z _sebbot joined #lisp 2018-01-22T22:57:28Z mishoo: I feel SBCL could be smarter about this, because #(...) is consed at read-time 2018-01-22T22:57:37Z mishoo: if it has length zero then it should pass the type-check 2018-01-22T22:57:51Z _sebbot quit (Client Quit) 2018-01-22T22:58:02Z jonh left #lisp 2018-01-22T22:58:12Z smasta quit (Ping timeout: 268 seconds) 2018-01-22T22:58:18Z shrdlu68: Then it would be too smart for its own good. 2018-01-22T22:59:00Z rumbler31 joined #lisp 2018-01-22T22:59:06Z jcunningham joined #lisp 2018-01-22T23:01:38Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-22T23:01:38Z pfdietz_ quit (Read error: Connection reset by peer) 2018-01-22T23:01:39Z pfdietz` joined #lisp 2018-01-22T23:01:46Z damke joined #lisp 2018-01-22T23:01:58Z fikka joined #lisp 2018-01-22T23:02:39Z paule32: (defun pruefeListe (inhalt) (print (equal *benutzerInhalt* inhalt))) 2018-01-22T23:02:39Z paule32: (pruefeListe '(3 2 1)) 2018-01-22T23:02:49Z paule32: this will work 2018-01-22T23:02:55Z gilez joined #lisp 2018-01-22T23:03:45Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-22T23:03:51Z jmercouris: paule32: seit wie lange lernst du lisp? 2018-01-22T23:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-22T23:04:42Z paule32: hi jmercouris: not long, testing some things 2018-01-22T23:05:05Z hhdave joined #lisp 2018-01-22T23:05:45Z pagnol: jmercouris, you're not German, are you? 2018-01-22T23:06:02Z jmercouris: pagnol: No, I'm not, but he's ignored my questions in english before 2018-01-22T23:06:18Z jmercouris: I speak german as my fourth language, so not so well, but enough to get by 2018-01-22T23:06:22Z pagnol: ok, I just wanted to verify my intuition that a German would never use 'seit wie lange' 2018-01-22T23:06:33Z pfdietz` quit (Ping timeout: 265 seconds) 2018-01-22T23:06:37Z jmercouris: they may say seit wann instead 2018-01-22T23:06:41Z jmercouris: but I tend to mix things up all the time 2018-01-22T23:06:51Z pagnol: what are the other three? 2018-01-22T23:07:02Z pagnol: apart from English obviously ;-) 2018-01-22T23:07:03Z smasta joined #lisp 2018-01-22T23:07:09Z jmercouris: greek is my first language, and then spanish is my third language 2018-01-22T23:07:18Z mishoo: the change that Bike suggested works [ #.(make-array 0 :element-type '(unsigned-byte 8)) ] 2018-01-22T23:07:23Z asarch quit (Quit: Leaving) 2018-01-22T23:07:32Z jcunningham left #lisp 2018-01-22T23:07:48Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-22T23:08:06Z shrdlu68: mishoo: It's strange that only you caught that bug, and while trying to load at that. 2018-01-22T23:08:56Z mishoo: I started from scratch, maybe that's why (ended up removing ~/quicklisp as well) 2018-01-22T23:09:41Z shrdlu68: I suspect so, whenever I start from scratch I always get problems loading static-vectors. 2018-01-22T23:10:39Z warweasle quit (Remote host closed the connection) 2018-01-22T23:10:47Z warweasle joined #lisp 2018-01-22T23:11:10Z shrdlu68: That doesn't explain it, though. Still strange. 2018-01-22T23:11:25Z mishoo: yeah 2018-01-22T23:12:16Z dented42_ joined #lisp 2018-01-22T23:12:18Z mishoo: try this.. either on some fresh VM, if you have one, or on your main account if you can afford it :) rm -rf .cache && rm -rf quicklisp 2018-01-22T23:12:24Z hhdave quit (Quit: hhdave) 2018-01-22T23:12:29Z mishoo: and then compile SBCL from git 2018-01-22T23:12:30Z jmercouris: careful with rm -rf 2018-01-22T23:12:43Z smurfrobot joined #lisp 2018-01-22T23:12:45Z mishoo: and then install quicklisp with the official instructions 2018-01-22T23:12:56Z mishoo: and then (ql:quickload "ironclad") 2018-01-22T23:12:59Z paule32: i have to go 2018-01-22T23:13:01Z shrdlu68: jmercouris: Eh, it refuses to do anything drastic these days. 2018-01-22T23:13:02Z mishoo: that's pretty much that I did 2018-01-22T23:13:10Z paule32: thx to helping hands around 2018-01-22T23:13:23Z shrdlu68: paule32: Tchuss 2018-01-22T23:13:26Z jmercouris: shrdlu68: No, that's not true :) 2018-01-22T23:13:36Z jmercouris: I've had many a good times, with rm in recent memory 2018-01-22T23:13:39Z jmercouris: I suggest: https://stackoverflow.com/questions/30208863/how-to-enable-confirmation-alert-when-using-rm-command-to-delete-files-folde 2018-01-22T23:14:01Z shrdlu68: So we could all be running buggy libs until one of us deletes "~/quicklisp"... 2018-01-22T23:14:13Z jmercouris: *nose goes* 2018-01-22T23:14:51Z paule32 left #lisp 2018-01-22T23:15:29Z dented42 quit (Ping timeout: 276 seconds) 2018-01-22T23:15:31Z igemnace_ quit (Read error: Connection reset by peer) 2018-01-22T23:16:37Z igemnace_ joined #lisp 2018-01-22T23:17:45Z attila_lendvai quit (Quit: Leaving.) 2018-01-22T23:17:56Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-22T23:19:35Z vaporatorius__ quit (Ping timeout: 240 seconds) 2018-01-22T23:21:16Z attila_lendvai joined #lisp 2018-01-22T23:21:16Z attila_lendvai quit (Changing host) 2018-01-22T23:21:16Z attila_lendvai joined #lisp 2018-01-22T23:21:36Z red-dot joined #lisp 2018-01-22T23:23:51Z Bike joined #lisp 2018-01-22T23:23:52Z JuanitoJons quit (Quit: Leaving) 2018-01-22T23:26:03Z cpape quit (Read error: Connection reset by peer) 2018-01-22T23:26:09Z beach` joined #lisp 2018-01-22T23:26:11Z splittist quit (Ping timeout: 256 seconds) 2018-01-22T23:26:11Z tobel quit (Ping timeout: 256 seconds) 2018-01-22T23:26:11Z aphprentice quit (Ping timeout: 256 seconds) 2018-01-22T23:26:16Z cpape joined #lisp 2018-01-22T23:26:19Z koenig quit (Read error: Connection reset by peer) 2018-01-22T23:26:44Z koenig joined #lisp 2018-01-22T23:26:44Z jyc quit (Ping timeout: 256 seconds) 2018-01-22T23:26:52Z al-damiri quit (Read error: Connection reset by peer) 2018-01-22T23:26:52Z mjl quit (Read error: Connection reset by peer) 2018-01-22T23:26:53Z alms_clozure quit (Read error: Connection reset by peer) 2018-01-22T23:27:09Z splittist joined #lisp 2018-01-22T23:27:12Z tobel joined #lisp 2018-01-22T23:27:12Z alms_clozure joined #lisp 2018-01-22T23:27:12Z mjl joined #lisp 2018-01-22T23:27:18Z Blkt quit (Remote host closed the connection) 2018-01-22T23:27:18Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-22T23:27:19Z dcluna quit (Ping timeout: 256 seconds) 2018-01-22T23:27:19Z jibanes quit (Ping timeout: 256 seconds) 2018-01-22T23:27:20Z jyc joined #lisp 2018-01-22T23:27:21Z aphprentice joined #lisp 2018-01-22T23:27:28Z fe[nl]ix quit (Quit: No Ping reply in 180 seconds.) 2018-01-22T23:27:29Z al-damiri joined #lisp 2018-01-22T23:27:34Z jibanes joined #lisp 2018-01-22T23:28:30Z Blkt joined #lisp 2018-01-22T23:28:41Z fe[nl]ix joined #lisp 2018-01-22T23:28:41Z ChanServ has set mode +o fe[nl]ix 2018-01-22T23:29:21Z dcluna joined #lisp 2018-01-22T23:30:30Z clog quit (Ping timeout: 260 seconds) 2018-01-22T23:30:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-22T23:30:42Z beach quit (Ping timeout: 256 seconds) 2018-01-22T23:32:46Z moei quit (Quit: Leaving...) 2018-01-22T23:34:45Z attila_lendvai quit (Quit: Leaving.) 2018-01-22T23:35:01Z fikka joined #lisp 2018-01-22T23:36:28Z pjb quit (Read error: Connection reset by peer) 2018-01-22T23:36:36Z dtornabene joined #lisp 2018-01-22T23:37:00Z nirved quit (Quit: Leaving) 2018-01-22T23:37:48Z pjb joined #lisp 2018-01-22T23:38:01Z ikki joined #lisp 2018-01-22T23:38:38Z dcluna quit (Ping timeout: 256 seconds) 2018-01-22T23:40:22Z dcluna joined #lisp 2018-01-22T23:40:47Z smasta quit (Ping timeout: 248 seconds) 2018-01-22T23:41:19Z wigust- joined #lisp 2018-01-22T23:41:27Z mishoo quit (Ping timeout: 240 seconds) 2018-01-22T23:41:57Z wigust quit (Ping timeout: 246 seconds) 2018-01-22T23:46:26Z jmercouris left #lisp 2018-01-22T23:47:44Z JonSmith quit (Remote host closed the connection) 2018-01-22T23:47:55Z smasta joined #lisp 2018-01-22T23:48:23Z papachan quit (Ping timeout: 256 seconds) 2018-01-22T23:48:25Z JonSmith joined #lisp 2018-01-22T23:49:54Z papachan joined #lisp 2018-01-22T23:50:01Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-22T23:50:21Z jfb4 quit (Ping timeout: 246 seconds) 2018-01-22T23:52:39Z jfb4 joined #lisp 2018-01-22T23:52:55Z zazzerino joined #lisp 2018-01-22T23:53:08Z paul0 quit (Remote host closed the connection) 2018-01-22T23:53:09Z JonSmith quit (Ping timeout: 264 seconds) 2018-01-22T23:53:33Z roygbiv joined #lisp 2018-01-22T23:53:46Z bigos joined #lisp 2018-01-22T23:53:46Z roygbiv left #lisp 2018-01-22T23:53:47Z paul0 joined #lisp 2018-01-22T23:57:27Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-22T23:59:20Z jfb4 joined #lisp 2018-01-23T00:07:28Z pagnol quit (Ping timeout: 248 seconds) 2018-01-23T00:08:32Z dented42_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-23T00:08:45Z smasta quit (Ping timeout: 264 seconds) 2018-01-23T00:08:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-23T00:10:41Z pjb quit (Remote host closed the connection) 2018-01-23T00:11:30Z whartung quit (Ping timeout: 256 seconds) 2018-01-23T00:11:45Z whartung_ joined #lisp 2018-01-23T00:13:06Z fikka joined #lisp 2018-01-23T00:13:13Z Patzy quit (Ping timeout: 256 seconds) 2018-01-23T00:13:13Z lonjil quit (Quit: Quit.) 2018-01-23T00:13:19Z Patzy joined #lisp 2018-01-23T00:15:27Z jstypo quit (Ping timeout: 240 seconds) 2018-01-23T00:17:01Z Kaisyu joined #lisp 2018-01-23T00:18:56Z _paul0 joined #lisp 2018-01-23T00:19:40Z whartung_ quit (Quit: whartung_) 2018-01-23T00:20:29Z fikka quit (Read error: Connection reset by peer) 2018-01-23T00:21:51Z paul0 quit (Ping timeout: 248 seconds) 2018-01-23T00:22:20Z shifty joined #lisp 2018-01-23T00:22:27Z Cymew joined #lisp 2018-01-23T00:23:42Z whartung joined #lisp 2018-01-23T00:24:02Z Chream_ joined #lisp 2018-01-23T00:24:27Z ikki quit (Ping timeout: 240 seconds) 2018-01-23T00:24:57Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-01-23T00:26:35Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T00:26:59Z fikka joined #lisp 2018-01-23T00:28:47Z wigust- quit (Ping timeout: 248 seconds) 2018-01-23T00:28:50Z zaquest quit (Ping timeout: 260 seconds) 2018-01-23T00:35:52Z gilez quit (Ping timeout: 256 seconds) 2018-01-23T00:38:33Z Tobbi quit (Quit: Leaving) 2018-01-23T00:38:56Z lonjil joined #lisp 2018-01-23T00:38:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-23T00:39:20Z lonjil is now known as Guest88128 2018-01-23T00:43:45Z Pixel_Outlaw joined #lisp 2018-01-23T00:44:09Z zaquest joined #lisp 2018-01-23T00:44:30Z Guest88128 quit (Quit: WeeChat 2.0.1) 2018-01-23T00:46:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-23T00:51:27Z zaquest quit (Ping timeout: 240 seconds) 2018-01-23T00:52:46Z zaquest joined #lisp 2018-01-23T00:52:59Z fikka joined #lisp 2018-01-23T00:54:16Z lonjil2 joined #lisp 2018-01-23T00:55:57Z bigos quit (Ping timeout: 240 seconds) 2018-01-23T01:01:58Z lonjil2 is now known as lonjil 2018-01-23T01:06:05Z markong quit (Ping timeout: 240 seconds) 2018-01-23T01:08:18Z turkja joined #lisp 2018-01-23T01:15:20Z FreeBirdLjj joined #lisp 2018-01-23T01:19:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-23T01:20:27Z __paul0 joined #lisp 2018-01-23T01:23:05Z _paul0 quit (Ping timeout: 240 seconds) 2018-01-23T01:24:19Z smasta joined #lisp 2018-01-23T01:24:21Z xrash quit (Ping timeout: 264 seconds) 2018-01-23T01:27:10Z fikka quit (Ping timeout: 260 seconds) 2018-01-23T01:27:42Z xrash joined #lisp 2018-01-23T01:27:54Z dented42 joined #lisp 2018-01-23T01:28:42Z aphprentice quit (Quit: Connection closed for inactivity) 2018-01-23T01:29:12Z clog joined #lisp 2018-01-23T01:31:15Z pillton: aeth: I looked in to named and inlined specializations over the weekend. A few things were fixed as a result. 2018-01-23T01:34:25Z fikka joined #lisp 2018-01-23T01:36:52Z smurfrobot joined #lisp 2018-01-23T01:37:36Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-23T01:40:29Z warweasle quit (Quit: Leaving) 2018-01-23T01:45:19Z pagnol joined #lisp 2018-01-23T01:45:38Z sjl joined #lisp 2018-01-23T01:45:51Z EvW1 quit (Ping timeout: 246 seconds) 2018-01-23T01:48:43Z Pixel_Outlaw: I've not visited in a while, any cool personal projects in progress? 2018-01-23T01:49:40Z Pixel_Outlaw: I'm still rolling around the idea of a small 2D CAD but I'd have to choose a GUI first. :P 2018-01-23T01:49:57Z sjl quit (Ping timeout: 240 seconds) 2018-01-23T02:00:32Z dieggsy quit (Remote host closed the connection) 2018-01-23T02:06:53Z earl-ducaine quit (Remote host closed the connection) 2018-01-23T02:07:14Z earl-ducaine joined #lisp 2018-01-23T02:08:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T02:12:20Z fikka joined #lisp 2018-01-23T02:14:05Z oleo quit (Ping timeout: 265 seconds) 2018-01-23T02:24:27Z ACE_Recliner joined #lisp 2018-01-23T02:27:58Z ebzzry joined #lisp 2018-01-23T02:30:10Z zazzerino quit (Remote host closed the connection) 2018-01-23T02:34:05Z zazzerino joined #lisp 2018-01-23T02:39:36Z pierpa quit (Quit: Page closed) 2018-01-23T02:40:32Z krasnal quit (Ping timeout: 256 seconds) 2018-01-23T02:42:19Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T02:44:15Z dieggsy joined #lisp 2018-01-23T02:45:04Z _cosmonaut_ joined #lisp 2018-01-23T02:45:05Z d4ryus2 joined #lisp 2018-01-23T02:46:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-23T02:47:59Z d4ryus1 quit (Ping timeout: 248 seconds) 2018-01-23T02:50:04Z orivej quit (Ping timeout: 268 seconds) 2018-01-23T02:51:38Z gilez joined #lisp 2018-01-23T02:54:08Z ACE_Recliner quit (Quit: Leaving) 2018-01-23T02:56:00Z JenElizabeth joined #lisp 2018-01-23T02:56:20Z fikka joined #lisp 2018-01-23T02:59:47Z ahungry joined #lisp 2018-01-23T03:00:47Z pagnol quit (Ping timeout: 248 seconds) 2018-01-23T03:00:58Z Chream_ quit (Ping timeout: 265 seconds) 2018-01-23T03:01:03Z quazimodo joined #lisp 2018-01-23T03:01:50Z JenElizabeth quit (Remote host closed the connection) 2018-01-23T03:06:08Z wmannis joined #lisp 2018-01-23T03:06:16Z JenElizabeth joined #lisp 2018-01-23T03:06:20Z JenElizabeth quit (Remote host closed the connection) 2018-01-23T03:07:04Z JenElizabeth joined #lisp 2018-01-23T03:08:50Z JenElizabeth quit (Remote host closed the connection) 2018-01-23T03:10:17Z xrash quit (Read error: Connection reset by peer) 2018-01-23T03:10:34Z tonton quit (Ping timeout: 256 seconds) 2018-01-23T03:11:52Z red-dot joined #lisp 2018-01-23T03:12:02Z tonton joined #lisp 2018-01-23T03:18:17Z Arcaelyx joined #lisp 2018-01-23T03:19:32Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-23T03:19:55Z Pixel_Outlaw joined #lisp 2018-01-23T03:24:25Z ahungry quit (Remote host closed the connection) 2018-01-23T03:25:20Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T03:26:47Z xrash joined #lisp 2018-01-23T03:28:33Z fikka joined #lisp 2018-01-23T03:31:24Z wmannis quit (Quit: wmannis) 2018-01-23T03:49:13Z erikc joined #lisp 2018-01-23T03:51:22Z Oladon joined #lisp 2018-01-23T03:51:25Z marusich joined #lisp 2018-01-23T03:54:34Z asarch joined #lisp 2018-01-23T04:00:37Z FreeBirdLjj joined #lisp 2018-01-23T04:01:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-23T04:03:34Z dtornabene quit (Read error: Connection reset by peer) 2018-01-23T04:03:51Z dtornabene joined #lisp 2018-01-23T04:04:47Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-23T04:06:37Z damke_ joined #lisp 2018-01-23T04:09:21Z damke quit (Ping timeout: 264 seconds) 2018-01-23T04:09:34Z nika joined #lisp 2018-01-23T04:11:06Z fikka joined #lisp 2018-01-23T04:14:28Z nowhereman_ joined #lisp 2018-01-23T04:14:35Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-23T04:15:01Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-23T04:16:22Z whoman quit (Remote host closed the connection) 2018-01-23T04:16:48Z whoman joined #lisp 2018-01-23T04:18:50Z dddddd quit (Remote host closed the connection) 2018-01-23T04:19:44Z damke joined #lisp 2018-01-23T04:21:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-23T04:32:04Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-23T04:33:46Z marusich quit (Ping timeout: 265 seconds) 2018-01-23T04:35:10Z marusich joined #lisp 2018-01-23T04:37:45Z ckonstanski joined #lisp 2018-01-23T04:37:49Z epony quit (Quit: re-installing OS in-place.) 2018-01-23T04:43:34Z erikc quit 2018-01-23T04:44:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-23T04:44:54Z dented42 joined #lisp 2018-01-23T04:48:00Z fikka joined #lisp 2018-01-23T04:48:52Z ihatepasswords quit (Remote host closed the connection) 2018-01-23T04:49:27Z dented42 quit (Ping timeout: 240 seconds) 2018-01-23T04:50:59Z epony joined #lisp 2018-01-23T04:51:19Z ckonstanski quit (Remote host closed the connection) 2018-01-23T04:53:38Z _krator44 is now known as krator44 2018-01-23T04:53:57Z krator44 quit (Changing host) 2018-01-23T04:53:57Z krator44 joined #lisp 2018-01-23T04:53:57Z krator44 quit (Changing host) 2018-01-23T04:53:57Z krator44 joined #lisp 2018-01-23T04:56:27Z zazzerino quit (Ping timeout: 240 seconds) 2018-01-23T04:56:45Z smasta quit (Ping timeout: 264 seconds) 2018-01-23T04:57:38Z shka joined #lisp 2018-01-23T04:59:11Z schoppenhauer quit (Ping timeout: 248 seconds) 2018-01-23T04:59:27Z aeth: Hmm... ASDF package-inferred-system loses license information in the systems that it automatically creates, i.e. if you run something automated to get the license of everything, the primary system will have a license, but the others won't. Lots of NIL licenses that technically have a license. 2018-01-23T04:59:33Z Pixel_Outlaw joined #lisp 2018-01-23T05:01:04Z schoppenhauer joined #lisp 2018-01-23T05:03:20Z Chream_ joined #lisp 2018-01-23T05:03:57Z Pixel_Outlaw quit (Client Quit) 2018-01-23T05:04:53Z Bike quit (Quit: Lost terminal) 2018-01-23T05:04:58Z dented42 joined #lisp 2018-01-23T05:06:21Z damke quit (Ping timeout: 264 seconds) 2018-01-23T05:09:07Z xrash quit (Ping timeout: 256 seconds) 2018-01-23T05:10:29Z beach` is now known as beach 2018-01-23T05:11:00Z xrash joined #lisp 2018-01-23T05:13:28Z dtornabene quit (Read error: Connection reset by peer) 2018-01-23T05:14:51Z dtornabene joined #lisp 2018-01-23T05:14:54Z epony quit (Read error: Connection reset by peer) 2018-01-23T05:16:11Z dtornabene quit (Read error: Connection reset by peer) 2018-01-23T05:16:15Z beach: Good morning everyone! 2018-01-23T05:18:14Z pillton: G'day beach. 2018-01-23T05:19:18Z damke joined #lisp 2018-01-23T05:19:22Z epony joined #lisp 2018-01-23T05:19:42Z igemnace_ is now known as igemnace 2018-01-23T05:21:20Z smasta joined #lisp 2018-01-23T05:25:39Z smasta quit (Ping timeout: 246 seconds) 2018-01-23T05:27:29Z asarch quit (Quit: Leaving) 2018-01-23T05:33:42Z dieggsy quit (Ping timeout: 246 seconds) 2018-01-23T05:37:27Z makomo quit (Ping timeout: 256 seconds) 2018-01-23T05:41:50Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-23T05:46:00Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T05:55:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-23T05:56:48Z nowhereman_ quit (Ping timeout: 246 seconds) 2018-01-23T05:57:10Z nowhereman_ joined #lisp 2018-01-23T05:58:26Z fikka joined #lisp 2018-01-23T05:59:57Z gilez quit (Ping timeout: 240 seconds) 2018-01-23T06:01:46Z Oladon quit (Quit: Leaving.) 2018-01-23T06:04:04Z oleo joined #lisp 2018-01-23T06:08:02Z karswell quit (Read error: Connection reset by peer) 2018-01-23T06:08:26Z karswell joined #lisp 2018-01-23T06:13:46Z red-dot joined #lisp 2018-01-23T06:18:34Z heurist` joined #lisp 2018-01-23T06:18:47Z damke_ joined #lisp 2018-01-23T06:18:51Z quazimodo quit (Ping timeout: 246 seconds) 2018-01-23T06:19:12Z damke quit (Ping timeout: 246 seconds) 2018-01-23T06:20:00Z heurist quit (Ping timeout: 260 seconds) 2018-01-23T06:22:10Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-23T06:23:57Z waaron1 quit (Ping timeout: 240 seconds) 2018-01-23T06:27:49Z LocaMocha joined #lisp 2018-01-23T06:27:49Z LocaMocha quit (Max SendQ exceeded) 2018-01-23T06:29:00Z quazimodo joined #lisp 2018-01-23T06:32:35Z oleo quit (Quit: Leaving) 2018-01-23T06:34:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T06:34:24Z LocaMocha joined #lisp 2018-01-23T06:35:35Z Kaisyu7 joined #lisp 2018-01-23T06:39:14Z aeth: pillton: Great! What was the bug when it was both named and inlined that was fixed in c6bd893? 2018-01-23T06:41:14Z Karl_Dscc joined #lisp 2018-01-23T06:42:12Z epony quit (Quit: QUIT) 2018-01-23T06:42:21Z quazimodo quit (Ping timeout: 264 seconds) 2018-01-23T06:43:56Z quazimodo joined #lisp 2018-01-23T06:44:38Z fikka joined #lisp 2018-01-23T06:49:05Z terpri quit (Ping timeout: 248 seconds) 2018-01-23T06:50:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T06:50:50Z ben3 quit (Ping timeout: 255 seconds) 2018-01-23T06:50:58Z nika quit 2018-01-23T06:51:36Z makomo joined #lisp 2018-01-23T06:52:52Z ben3 joined #lisp 2018-01-23T06:54:55Z bgardner quit (Ping timeout: 248 seconds) 2018-01-23T07:02:32Z fikka joined #lisp 2018-01-23T07:06:05Z makomo quit (Ping timeout: 260 seconds) 2018-01-23T07:06:08Z dec0n joined #lisp 2018-01-23T07:09:22Z smasta joined #lisp 2018-01-23T07:12:51Z DeadTrickster joined #lisp 2018-01-23T07:13:33Z DeadTrickster_ quit (Ping timeout: 264 seconds) 2018-01-23T07:13:35Z smasta quit (Ping timeout: 248 seconds) 2018-01-23T07:14:43Z Karl_Dscc quit (Remote host closed the connection) 2018-01-23T07:16:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T07:26:37Z fikka joined #lisp 2018-01-23T07:28:26Z murii joined #lisp 2018-01-23T07:29:22Z murii quit (Read error: Connection reset by peer) 2018-01-23T07:30:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-23T07:34:33Z vlatkoB joined #lisp 2018-01-23T07:35:19Z scymtym quit (Ping timeout: 256 seconds) 2018-01-23T07:38:28Z fikka joined #lisp 2018-01-23T07:39:43Z varjag joined #lisp 2018-01-23T07:46:32Z nopf quit (Read error: Connection reset by peer) 2018-01-23T07:56:08Z cpape quit (Ping timeout: 276 seconds) 2018-01-23T07:56:17Z fikka quit (Ping timeout: 256 seconds) 2018-01-23T07:58:00Z mishoo joined #lisp 2018-01-23T08:02:03Z heurist`_ joined #lisp 2018-01-23T08:02:05Z heurist` quit (Ping timeout: 265 seconds) 2018-01-23T08:02:06Z sbryant quit (Ping timeout: 268 seconds) 2018-01-23T08:02:14Z sbryant joined #lisp 2018-01-23T08:03:44Z smasta joined #lisp 2018-01-23T08:08:05Z smasta quit (Ping timeout: 240 seconds) 2018-01-23T08:09:50Z xrash quit (Remote host closed the connection) 2018-01-23T08:09:55Z cpape joined #lisp 2018-01-23T08:12:20Z marusich quit (Quit: Leaving) 2018-01-23T08:16:49Z fikka joined #lisp 2018-01-23T08:24:30Z flamebeard joined #lisp 2018-01-23T08:24:37Z damke joined #lisp 2018-01-23T08:25:13Z Cymew joined #lisp 2018-01-23T08:26:20Z damke__ joined #lisp 2018-01-23T08:26:51Z igemnace quit (Read error: Connection reset by peer) 2018-01-23T08:27:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-23T08:27:57Z igemnace joined #lisp 2018-01-23T08:29:45Z damke quit (Ping timeout: 264 seconds) 2018-01-23T08:31:55Z scymtym joined #lisp 2018-01-23T08:36:23Z _main_ joined #lisp 2018-01-23T08:36:28Z _main_ quit (Read error: Connection reset by peer) 2018-01-23T08:36:57Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-23T08:37:13Z vlatkoB quit (Remote host closed the connection) 2018-01-23T08:37:24Z _main_ joined #lisp 2018-01-23T08:38:26Z dddddd joined #lisp 2018-01-23T08:39:03Z vlatkoB joined #lisp 2018-01-23T08:39:55Z orivej joined #lisp 2018-01-23T08:40:57Z __main__ quit (Ping timeout: 268 seconds) 2018-01-23T08:40:59Z _main_ is now known as __main__ 2018-01-23T08:41:16Z damke joined #lisp 2018-01-23T08:43:33Z damke__ quit (Ping timeout: 264 seconds) 2018-01-23T08:43:33Z nowhereman_ joined #lisp 2018-01-23T08:47:09Z terpri joined #lisp 2018-01-23T08:48:01Z manualcrank quit (Quit: WeeChat 2.0.1) 2018-01-23T08:49:35Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-23T08:52:50Z heisig joined #lisp 2018-01-23T08:53:29Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-23T08:54:44Z heisig: Good morning! 2018-01-23T08:55:43Z dented42 joined #lisp 2018-01-23T09:00:34Z beach: Hello heisig. 2018-01-23T09:00:53Z orivej quit (Ping timeout: 256 seconds) 2018-01-23T09:02:53Z heisig works on his ELS paper 2018-01-23T09:04:47Z hhdave joined #lisp 2018-01-23T09:05:17Z knicklux joined #lisp 2018-01-23T09:08:05Z damke_ joined #lisp 2018-01-23T09:08:22Z solyd joined #lisp 2018-01-23T09:10:33Z damke quit (Ping timeout: 264 seconds) 2018-01-23T09:11:35Z damke joined #lisp 2018-01-23T09:13:46Z orivej joined #lisp 2018-01-23T09:13:53Z damke__ joined #lisp 2018-01-23T09:14:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-23T09:15:03Z scymtym_ joined #lisp 2018-01-23T09:16:33Z damke quit (Ping timeout: 264 seconds) 2018-01-23T09:17:02Z wigust joined #lisp 2018-01-23T09:19:06Z scymtym quit (Ping timeout: 246 seconds) 2018-01-23T09:19:32Z clarkema joined #lisp 2018-01-23T09:30:57Z krasnal joined #lisp 2018-01-23T09:33:31Z damke joined #lisp 2018-01-23T09:36:21Z damke__ quit (Ping timeout: 264 seconds) 2018-01-23T09:50:29Z phoe: Morning 2018-01-23T09:51:48Z smasta joined #lisp 2018-01-23T09:55:10Z damke_ joined #lisp 2018-01-23T09:56:05Z smasta quit (Ping timeout: 240 seconds) 2018-01-23T09:57:57Z damke quit (Ping timeout: 264 seconds) 2018-01-23T10:00:25Z murii joined #lisp 2018-01-23T10:05:22Z tomlukeywood joined #lisp 2018-01-23T10:05:37Z tomlukeywood: how dose one get the length of an array in clisp? 2018-01-23T10:06:16Z Shinmera: clhs length 2018-01-23T10:06:16Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_length.htm 2018-01-23T10:06:22Z tomlukeywood: ty 2018-01-23T10:11:43Z beach: tomlukeywood: It is not a CLISP thing. It is in the Common Lisp standard. 2018-01-23T10:12:30Z beach: tomlukeywood: Or, perhaps you were using "clisp" as an abbreviation for Common Lisp? CLISP is an implementation of Common Lisp. If you want to abbreviate Common Lisp, then it is better to use CL. 2018-01-23T10:13:21Z beach: tomlukeywood: LENGTH is only defined for sequences, so if your array has more than one dimension, it won't work. 2018-01-23T10:14:34Z beach: clhs array-total-size 2018-01-23T10:14:34Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_ar_tot.htm 2018-01-23T10:14:35Z ninegrid quit (Quit: leaving) 2018-01-23T10:16:23Z knicklux quit (Quit: Leaving) 2018-01-23T10:19:33Z nirved joined #lisp 2018-01-23T10:20:15Z __paul0 quit (Ping timeout: 248 seconds) 2018-01-23T10:20:17Z paul0 joined #lisp 2018-01-23T10:23:27Z _paul0 joined #lisp 2018-01-23T10:25:29Z paul0 quit (Ping timeout: 255 seconds) 2018-01-23T10:27:05Z Chream_ quit (Ping timeout: 265 seconds) 2018-01-23T10:28:11Z paul0 joined #lisp 2018-01-23T10:28:15Z _paul0 quit (Read error: Connection reset by peer) 2018-01-23T10:32:07Z _paul0 joined #lisp 2018-01-23T10:32:07Z paul0 quit (Read error: Connection reset by peer) 2018-01-23T10:37:41Z wxie joined #lisp 2018-01-23T10:42:48Z tomlukeywood quit (Quit: Leaving.) 2018-01-23T10:42:52Z sjl joined #lisp 2018-01-23T10:45:49Z dmiles: clhs symbol-macro 2018-01-23T10:45:49Z specbot: Couldn't find anything for symbol-macro. 2018-01-23T10:46:09Z Chream_ joined #lisp 2018-01-23T10:46:12Z smasta joined #lisp 2018-01-23T10:46:31Z jdz: dmiles: did you want define-symbol-bacro? 2018-01-23T10:46:36Z jdz: macro even. 2018-01-23T10:46:41Z dmiles wishes there was a accessor for symbol-macros 2018-01-23T10:47:17Z dmiles: well i implemented define-symbol-macro in my impl.. but was checking to see if there was a getter for it 2018-01-23T10:47:24Z Shinmera: There is. 2018-01-23T10:47:26Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T10:47:36Z dmiles: macroexpand :) ? 2018-01-23T10:48:25Z Shinmera: Yes 2018-01-23T10:50:40Z smasta quit (Ping timeout: 260 seconds) 2018-01-23T10:51:15Z sjl quit (Ping timeout: 260 seconds) 2018-01-23T10:51:44Z phoe: "The value of *macroexpand-hook* is coerced to a function and then called as a function of three arguments: the expansion function, the form, and the env." 2018-01-23T10:52:02Z phoe: Does it mean that I can fetch the expansion functions for symbol macros this way? 2018-01-23T10:55:33Z dmiles: liek by settign it to #'list neat idea 2018-01-23T10:56:58Z phoe: #'list won't work 2018-01-23T10:57:13Z phoe: (lambda (x y z) (setf *something* (list x y z))) will work {; 2018-01-23T10:57:19Z dmiles: right it'll interfer 2018-01-23T10:57:34Z dmiles: *nod* 2018-01-23T10:58:00Z phoe: it's most likely incorrect but you get the idea. 2018-01-23T10:58:08Z phoe: grab the function object, store it somewhere for inspection. 2018-01-23T10:58:58Z phoe: you could even (let* ((*someplace* nil) (*macroexpand-hook* (lambda (x y z) (setf *someplace* x)) (macroexpand 'symbol-macro)) 2018-01-23T10:59:01Z phoe: stuff like that 2018-01-23T10:59:08Z phoe: and return *someplace* at the end 2018-01-23T10:59:38Z phoe: it should be possible to define a SYMBOL-MACRO-FUNCTION reader this way, huh~ 2018-01-23T11:01:13Z _paul0 quit (Remote host closed the connection) 2018-01-23T11:01:26Z _paul0 joined #lisp 2018-01-23T11:04:18Z d4ryus2 is now known as d4ryus 2018-01-23T11:14:37Z arbv quit (Ping timeout: 256 seconds) 2018-01-23T11:16:44Z red-dot joined #lisp 2018-01-23T11:18:21Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-23T11:20:51Z jstypo joined #lisp 2018-01-23T11:23:45Z Cymew quit (Read error: Connection reset by peer) 2018-01-23T11:23:53Z Cymew joined #lisp 2018-01-23T11:39:08Z Tobbi joined #lisp 2018-01-23T11:40:21Z smasta joined #lisp 2018-01-23T11:43:16Z paul0 joined #lisp 2018-01-23T11:44:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-23T11:45:03Z raynold quit (Quit: Connection closed for inactivity) 2018-01-23T11:45:13Z Chream_2 joined #lisp 2018-01-23T11:45:35Z _paul0 quit (Ping timeout: 240 seconds) 2018-01-23T11:45:52Z fikka quit (Ping timeout: 265 seconds) 2018-01-23T11:47:07Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-23T11:47:50Z pjb joined #lisp 2018-01-23T11:48:14Z shrdlu68 joined #lisp 2018-01-23T11:48:25Z syssiphus joined #lisp 2018-01-23T11:51:38Z fikka joined #lisp 2018-01-23T12:06:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-23T12:06:43Z ebzzry: Which of the logos now best represent CL? 2018-01-23T12:06:50Z phoe: ebzzry: none 2018-01-23T12:06:52Z phoe: (: 2018-01-23T12:07:13Z phoe: there is no agreement on this and I wouldn't expect any to happen. 2018-01-23T12:08:58Z phoe: disclaimer: I tried, once. https://imgur.com/a/QEd1p is the result of it. 2018-01-23T12:09:03Z alexmlw joined #lisp 2018-01-23T12:09:33Z phoe: but it's more a single work of art derived from the original Lisp lizard rather than a commonly recognized Common Lisp logo. 2018-01-23T12:09:41Z jdz: I think a Godzilla would be apropos, but that's already taken by Mozilla (back in the day). 2018-01-23T12:10:39Z ecraven: what about the alien? 2018-01-23T12:10:58Z Shinmera: I really don't like the alien, so I hope to god it doesn't become the representative logo 2018-01-23T12:11:13Z ecraven: ;) just that and the one phoe posted are the only ones I remember seeing 2018-01-23T12:11:57Z nullman quit (Ping timeout: 240 seconds) 2018-01-23T12:12:01Z jdz: Godzilla is an overgrown lizard, and shoots lazors, and has superpowers, etc. 2018-01-23T12:12:12Z ecraven: Xah made one too http://ergoemacs.org/emacs/lisp_logo.html 2018-01-23T12:13:06Z nullman joined #lisp 2018-01-23T12:13:24Z jdz: More like re-made the existing one into vector format. 2018-01-23T12:13:42Z ecraven: that might be, I didn't see any attribution on that page (but only glanced at it) 2018-01-23T12:13:51Z jdz: The attribution is there. 2018-01-23T12:15:09Z razzy quit (Remote host closed the connection) 2018-01-23T12:15:15Z saturn2: this is probably the most recognized logo http://www.lispworks.com/documentation/HyperSpec/Graphics/CLHS_Lg.gif 2018-01-23T12:15:29Z jdz: ecraven: https://web.archive.org/web/20041010035727/http://www.lisp.org:80/table/contents.htm 2018-01-23T12:16:06Z ecraven: jdz: ah, from the alu 2018-01-23T12:16:28Z ecraven: I actually kind of like that one ;) the idea, not the grayish style 2018-01-23T12:21:06Z aijony quit (Ping timeout: 268 seconds) 2018-01-23T12:21:11Z wxie quit (Remote host closed the connection) 2018-01-23T12:23:26Z aijony joined #lisp 2018-01-23T12:23:38Z markong joined #lisp 2018-01-23T12:24:55Z damke joined #lisp 2018-01-23T12:27:21Z damke_ quit (Ping timeout: 263 seconds) 2018-01-23T12:29:53Z pagnol joined #lisp 2018-01-23T12:31:04Z Shinmera: Reminds me to post this again https://shinmera.github.io/sbcl-logo/ 2018-01-23T12:32:25Z quazimodo joined #lisp 2018-01-23T12:33:57Z fikka joined #lisp 2018-01-23T12:34:20Z krasnal quit (Ping timeout: 255 seconds) 2018-01-23T12:34:27Z smasta joined #lisp 2018-01-23T12:35:28Z phoe: Shinmera: I never saw these before 2018-01-23T12:36:31Z jdz: The snek makes sense for SBCL. 2018-01-23T12:36:46Z phoe: Snake Bite Common Lisp? 2018-01-23T12:37:02Z jdz: Historically the compiler is named Python. 2018-01-23T12:37:13Z jdz: The one from CMUCL. 2018-01-23T12:37:32Z phoe: I know, yes. 2018-01-23T12:37:39Z jdz: Right. 2018-01-23T12:37:54Z raynold joined #lisp 2018-01-23T12:38:55Z smasta quit (Ping timeout: 248 seconds) 2018-01-23T12:43:08Z jdz: We need some more prototypes that are tattoo material – something along the lines of Kali Linux logo maybe. 2018-01-23T12:43:47Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2018-01-23T12:46:30Z krasnal joined #lisp 2018-01-23T12:59:16Z razzy joined #lisp 2018-01-23T13:11:15Z zazzerino joined #lisp 2018-01-23T13:14:11Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-23T13:15:35Z pagnol quit (Ping timeout: 240 seconds) 2018-01-23T13:17:53Z nowhereman_ joined #lisp 2018-01-23T13:25:32Z shrdlu68 quit (Quit: Lost terminal) 2018-01-23T13:27:00Z saki joined #lisp 2018-01-23T13:30:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-23T13:34:29Z fikka quit (Ping timeout: 255 seconds) 2018-01-23T13:40:53Z m00natic joined #lisp 2018-01-23T13:41:08Z LiamH joined #lisp 2018-01-23T13:43:22Z vap1 joined #lisp 2018-01-23T13:43:22Z vaporatorius joined #lisp 2018-01-23T13:43:22Z vaporatorius quit (Changing host) 2018-01-23T13:43:22Z vaporatorius joined #lisp 2018-01-23T13:44:03Z attila_lendvai joined #lisp 2018-01-23T13:44:03Z attila_lendvai quit (Changing host) 2018-01-23T13:44:03Z attila_lendvai joined #lisp 2018-01-23T13:46:11Z makomo joined #lisp 2018-01-23T13:47:50Z fikka joined #lisp 2018-01-23T13:48:49Z vaporatorius quit (Quit: Leaving) 2018-01-23T13:49:39Z dlowe: I like shinmera's lizard 2018-01-23T13:50:27Z dlowe: The sbcl compiler may have started from Python, but now it's Python-adjacent 2018-01-23T13:50:55Z dlowe: So maybe some other reptile would be good. Like a lizard. 2018-01-23T13:51:21Z dlowe: The "made with lisp" logo always looked more like a salamander to me. 2018-01-23T13:54:49Z Bike joined #lisp 2018-01-23T13:55:28Z makomo: hello 2018-01-23T13:55:32Z makomo: the logo is pretty cute 2018-01-23T13:59:27Z bgardner joined #lisp 2018-01-23T14:06:32Z rumbler31 joined #lisp 2018-01-23T14:06:36Z jack_rabbit: Anyone feel like checking out this tetris I wrote? https://github.com/knusbaum/cl-tetris 2018-01-23T14:07:58Z dlowe: neat. I'll try it when I get home. 2018-01-23T14:08:30Z Jesin quit (Quit: Leaving) 2018-01-23T14:08:46Z phoe: works on my machine 2018-01-23T14:08:47Z phoe: (: 2018-01-23T14:12:34Z jack_rabbit: sweet :) 2018-01-23T14:13:14Z beach: jack_rabbit: Do you take remarks on the code? 2018-01-23T14:14:58Z jack_rabbit: beach, Sure! Note I haven't gone through to cleanup. I just wrote this all in a few hours for some fun. Structurally, I know it leaves a lot to be desired. 2018-01-23T14:15:17Z beach: OK, then I suggest you resubmit when you have cleaned it up. 2018-01-23T14:15:28Z jack_rabbit: beach, I'll do that, thanks. :) 2018-01-23T14:15:29Z beach: jack_rabbit: I recommend you use the slime-indentation contribution so that LOOP clauses get indented properly. That way, you don't need a newline after the LOOP symbol. 2018-01-23T14:16:12Z jack_rabbit: beach, Ahh, I didn't know about that! I always found that annoying about emacs. 2018-01-23T14:17:35Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T14:26:22Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T14:26:42Z jack_rabbit: beach, Actually, I'd be happy to go ahead and take your remarks whenever. I'm not seeing too much I want to change except dividing the code into multiple files. 2018-01-23T14:27:02Z beach: OK. 2018-01-23T14:27:34Z beach: You have way too many blank lines. One blank line between top-level forms is the norm. No blank lines inside. 2018-01-23T14:27:39Z syssiphus quit (Quit: Leaving) 2018-01-23T14:28:03Z beach: In the last clause (:keydown...), can more than one WHEN condition be true? 2018-01-23T14:28:10Z beach: I don't see how it could. 2018-01-23T14:28:35Z jack_rabbit: no, it can't 2018-01-23T14:28:36Z jack_rabbit: so cond instead? 2018-01-23T14:28:38Z beach: If only one of them can be true, then you are better off using a COND or a CASE. 2018-01-23T14:28:44Z jack_rabbit: makes sense. 2018-01-23T14:29:29Z beach: I take it COMPLETE-ROW returns a list of things, right? 2018-01-23T14:29:35Z beach: and that list may be empty, right? 2018-01-23T14:30:33Z jack_rabbit: Correct. 2018-01-23T14:30:34Z beach: Then (WHEN COMPLETE ...) violates the expectation that WHEN should be followed by a Boolean value and not by a list. It is better to write (UNLESS (NULL COMPLETE) ...) 2018-01-23T14:30:56Z beach: See the luv-slides by Norvig and Pitman. Page 14 as I recall. 2018-01-23T14:31:14Z jack_rabbit: hmm. I thought any non-nil value was implicitly true. 2018-01-23T14:31:24Z beach: I am not talking semantics here. 2018-01-23T14:31:32Z jack_rabbit: Ahh, this is just style? 2018-01-23T14:31:34Z phoe: your code will work correctly 2018-01-23T14:31:35Z beach: I am talking about the message that you are sending to the person reading the code. 2018-01-23T14:31:44Z phoe: but it may not be understood correctly by humans 2018-01-23T14:31:45Z beach: i.e. me right now. 2018-01-23T14:32:00Z jack_rabbit: Makes sense. Just wanted to clarify for my sake. 2018-01-23T14:32:12Z phoe: you suggest that COMPLETE is a boolean, while it is a list. 2018-01-23T14:32:13Z beach: (> row 0) is better expressed as (plusp row). 2018-01-23T14:32:18Z dieggsy joined #lisp 2018-01-23T14:32:35Z beach: That is an instance of a very general rule in programming, namely that you should use the most specific construct that does the job. 2018-01-23T14:32:46Z beach: That way, the person reading the code understands it faster. 2018-01-23T14:33:22Z beach: Similarly, (= 0 ...) is better expressed as (zerop ...) 2018-01-23T14:33:58Z beach: The DO LOOP clause does not need a PROGN. Removing it saves space. 2018-01-23T14:34:14Z jack_rabbit: do accepts multiple forms? 2018-01-23T14:34:19Z beach: Yes. 2018-01-23T14:35:13Z beach: (when (not ...) ...) is better expressed as (unless ... ...) 2018-01-23T14:35:54Z beach: (setf (rows bs) (cdr (rows bs))) is better expressed as (pop (rows bs)). 2018-01-23T14:36:28Z beach: There is no need for a newline after the symbol OR. 2018-01-23T14:38:03Z beach: You could make an abstraction for (make-instance 'block-seq :x-pos ... :y-pos ...) 2018-01-23T14:38:21Z beach: and you could write a MAKE-COLOR with three arguments. 2018-01-23T14:38:22Z proteanthread joined #lisp 2018-01-23T14:40:18Z beach: (progn (loop ...) nil) can be simplified to (loop ...) because LOOP returns NIL by default. 2018-01-23T14:40:54Z beach: Oh, and did I say that you have WAY too many blank lines? 2018-01-23T14:41:06Z heisig: beach, you are inspiring me to hack a style checker for CL :) 2018-01-23T14:41:22Z beach: heisig: Good idea. 2018-01-23T14:41:24Z beach: But hard. 2018-01-23T14:41:34Z beach: Especially the indentation part. 2018-01-23T14:41:47Z heisig: I fear so. 2018-01-23T14:43:42Z heisig: And I can already imagine the flame-wars about which code deserves a style warning... 2018-01-23T14:43:43Z zazzerino quit (Remote host closed the connection) 2018-01-23T14:43:58Z zazzerino joined #lisp 2018-01-23T14:45:47Z fikka joined #lisp 2018-01-23T14:46:30Z beach: jack_rabbit: Unless your code does not accept generalized Booleans, you can simplify (if ... t nil) to ... 2018-01-23T14:47:12Z dyelar joined #lisp 2018-01-23T14:47:17Z jack_rabbit: beach, yeah, THAT one I did catch already. :) 2018-01-23T14:47:50Z mfiano: (loop for i from 0 below ...) can be simplified to (loop for i below ...) 2018-01-23T14:48:22Z beach: Good. You could also try to split up functions that span more than the height of a typical screen. It is good for the person reading your code to be able to see the entire function. 2018-01-23T14:48:42Z jack_rabbit: beach, I agree. I think only the main function violates that. 2018-01-23T14:49:01Z beach: Maybe so. I didn't look too carefully. 2018-01-23T14:49:26Z beach: jack_rabbit: Anyway, these remarks should keep you busy for a while. I might have more later. 2018-01-23T14:49:31Z red-dot joined #lisp 2018-01-23T14:49:32Z warweasle joined #lisp 2018-01-23T14:49:52Z jack_rabbit: beach, Thanks! I've incorporated most of them already. 2018-01-23T14:50:00Z mfiano: (when (= 0 ..) ..) can be simplified to (when (zerop ..) ..) 2018-01-23T14:50:03Z beach: Great. 2018-01-23T14:50:14Z beach: mfiano: Too late. I already did that one. 2018-01-23T14:50:17Z mfiano: Ok :) 2018-01-23T14:50:58Z mfiano: Your :keydown (when (eq ..) ..) lines should be converted into an ECASE 2018-01-23T14:51:01Z Arcaelyx joined #lisp 2018-01-23T14:51:11Z zazzerino quit (Ping timeout: 248 seconds) 2018-01-23T14:51:41Z beach: mfiano: Too late. I already did that one. 2018-01-23T14:51:52Z mfiano: Sure, it's an important reiteration 2018-01-23T14:52:10Z beach: OK, then. There are also WAY too many blank lines. 2018-01-23T14:52:17Z mfiano: :) 2018-01-23T14:52:25Z dlowe: There's a program out there called lisp-critic that catches a lot of these 2018-01-23T14:52:27Z solyd quit (Ping timeout: 240 seconds) 2018-01-23T14:53:32Z rippa joined #lisp 2018-01-23T14:53:41Z mfiano: similarly to zerop, use plusp instead of x>0 2018-01-23T14:53:48Z Fare joined #lisp 2018-01-23T14:54:23Z dim: you could also read Norvig's common lisp style paper 2018-01-23T14:54:38Z dim: https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf 2018-01-23T14:55:40Z mfiano: (incf background-color -1) simplifies to (decf background-color) 2018-01-23T14:55:40Z scymtym__ joined #lisp 2018-01-23T15:00:10Z scymtym_ quit (Ping timeout: 265 seconds) 2018-01-23T15:00:26Z oleo joined #lisp 2018-01-23T15:03:24Z himmAllRight17_ joined #lisp 2018-01-23T15:03:33Z ebzzry quit (Quit: WeeChat 1.9.1) 2018-01-23T15:06:59Z himmAllRight17 quit (Ping timeout: 268 seconds) 2018-01-23T15:17:14Z brendyn quit (Ping timeout: 255 seconds) 2018-01-23T15:18:35Z murii quit (Ping timeout: 240 seconds) 2018-01-23T15:20:42Z Fare quit (Remote host closed the connection) 2018-01-23T15:21:12Z payphone quit (Quit: WeeChat 2.0.1) 2018-01-23T15:21:14Z jack_rabbit: mfiano, good spot. 2018-01-23T15:21:54Z sjl joined #lisp 2018-01-23T15:22:20Z moei joined #lisp 2018-01-23T15:22:36Z payphone joined #lisp 2018-01-23T15:22:38Z nika_ joined #lisp 2018-01-23T15:24:42Z Fare joined #lisp 2018-01-23T15:26:57Z khisanth_ quit (Ping timeout: 246 seconds) 2018-01-23T15:28:17Z Cymew quit (Remote host closed the connection) 2018-01-23T15:33:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-23T15:33:51Z _cosmonaut_ quit (Ping timeout: 248 seconds) 2018-01-23T15:34:30Z fikka joined #lisp 2018-01-23T15:34:31Z Cymew joined #lisp 2018-01-23T15:39:08Z Cymew quit (Ping timeout: 255 seconds) 2018-01-23T15:39:32Z khisanth_ joined #lisp 2018-01-23T15:40:34Z Cymew joined #lisp 2018-01-23T15:44:16Z nyef``` joined #lisp 2018-01-23T15:45:07Z Cymew quit (Ping timeout: 256 seconds) 2018-01-23T15:45:37Z PuercoPope joined #lisp 2018-01-23T15:46:19Z ikki joined #lisp 2018-01-23T15:46:27Z nyef`` quit (Ping timeout: 240 seconds) 2018-01-23T15:47:50Z fikka quit (Ping timeout: 255 seconds) 2018-01-23T15:48:32Z windblow joined #lisp 2018-01-23T15:49:37Z Cymew joined #lisp 2018-01-23T15:49:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T15:50:54Z red-dot joined #lisp 2018-01-23T15:53:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T15:54:02Z dec0n quit (Read error: Connection reset by peer) 2018-01-23T15:55:45Z Cymew joined #lisp 2018-01-23T15:57:29Z Murii joined #lisp 2018-01-23T15:58:53Z gilez joined #lisp 2018-01-23T15:59:03Z fikka joined #lisp 2018-01-23T15:59:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T16:01:42Z Cymew joined #lisp 2018-01-23T16:03:31Z epony joined #lisp 2018-01-23T16:05:05Z shifty quit (Ping timeout: 260 seconds) 2018-01-23T16:05:19Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T16:06:27Z Cymew quit (Ping timeout: 256 seconds) 2018-01-23T16:07:09Z heisig quit (Quit: Leaving) 2018-01-23T16:07:40Z tomlukeywood joined #lisp 2018-01-23T16:07:49Z Cymew joined #lisp 2018-01-23T16:08:31Z ikki quit (Ping timeout: 248 seconds) 2018-01-23T16:08:34Z tomlukeywood: how would i use (map 'list) to return all the items of a list lower than a specified value? 2018-01-23T16:08:34Z tomlukeywood: i cant figure out how to give (map 'list #'< array) a parameter 2018-01-23T16:09:01Z Bike: that's not a map, since you want to discard some elements. 2018-01-23T16:09:11Z Bike: remove-if or remove-if-not would be a better bet. 2018-01-23T16:09:20Z Bike: and you'll pass it a closure, probably. 2018-01-23T16:09:51Z tomlukeywood: ty i will try 2018-01-23T16:11:17Z heurist`_ is now known as heurist 2018-01-23T16:11:45Z scymtym__ quit (Remote host closed the connection) 2018-01-23T16:12:13Z scymtym joined #lisp 2018-01-23T16:12:15Z Cymew quit (Ping timeout: 248 seconds) 2018-01-23T16:12:17Z smasta joined #lisp 2018-01-23T16:13:45Z Cymew joined #lisp 2018-01-23T16:16:54Z dieggsy quit (Remote host closed the connection) 2018-01-23T16:17:48Z tomlukeywood: Bike: How would i give the < function a parameter when using remove-if? 2018-01-23T16:18:28Z Cymew quit (Ping timeout: 265 seconds) 2018-01-23T16:18:34Z Bike: closure 2018-01-23T16:18:36Z tomlukeywood: somthing like (map 'list #'< number_to_pass_to_< array) would be good 2018-01-23T16:18:43Z tomlukeywood: ok i will look them up 2018-01-23T16:18:55Z Bike: that is, you're not thinking about it quite rightly, you don't need to pass < an extra parameter, what you need is a one-parameter function 2018-01-23T16:19:04Z Bike: (lambda (x) (< x 17)) for example 2018-01-23T16:19:14Z Bike: try calling that on a few numbers and see how it works 2018-01-23T16:19:42Z tomlukeywood: ah that makes sense 2018-01-23T16:19:46Z Cymew joined #lisp 2018-01-23T16:20:40Z fikka joined #lisp 2018-01-23T16:21:35Z sz0 joined #lisp 2018-01-23T16:24:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T16:24:30Z windblow quit (Quit: Leaving) 2018-01-23T16:25:03Z fikka quit (Ping timeout: 246 seconds) 2018-01-23T16:25:45Z troydm joined #lisp 2018-01-23T16:25:50Z Cymew joined #lisp 2018-01-23T16:26:16Z attila_lendvai quit (Quit: Leaving.) 2018-01-23T16:29:18Z igemnace quit (Read error: Connection reset by peer) 2018-01-23T16:29:45Z smasta quit (Ping timeout: 264 seconds) 2018-01-23T16:29:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T16:29:58Z tlaxkit joined #lisp 2018-01-23T16:30:11Z igemnace joined #lisp 2018-01-23T16:30:47Z clarkema quit (Quit: clarkema) 2018-01-23T16:31:50Z Cymew joined #lisp 2018-01-23T16:34:57Z sveit quit (Ping timeout: 240 seconds) 2018-01-23T16:35:09Z phoe: What is the general algorithm for finding duplicate ub8 arrays? 2018-01-23T16:35:21Z phoe: I'm worried that putting them in a EQUALP hashtable might not work well enough. 2018-01-23T16:36:14Z Shinmera: Could easily derive your own hash for the arrays and create a specialised table. 2018-01-23T16:36:14Z phoe: At the same time, I don't want to go n² by comparing every one with every other one. 2018-01-23T16:36:27Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T16:36:33Z phoe: I could, but I assume that this is a solved problem and there is an existing solution somewhere there. 2018-01-23T16:36:34Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-23T16:36:35Z eivarv joined #lisp 2018-01-23T16:37:03Z phoe: I basically need a function that I pass a list of ub8 arrays, and it tells me which arrays have the same contents. 2018-01-23T16:37:45Z Shinmera: Well there is remove-duplicates, but I can't tell you whether it's going to be efficient. 2018-01-23T16:37:53Z sveit joined #lisp 2018-01-23T16:38:28Z phoe: Yes, that's what I fear. 2018-01-23T16:38:33Z smasta joined #lisp 2018-01-23T16:38:36Z Shinmera: So benchmark 2018-01-23T16:38:57Z phoe: "The elements of sequence are compared pairwise, and if any two match, then the one occurring earlier in sequence is discarded, unless from-end is true, in which case the one later in sequence is discarded." 2018-01-23T16:39:04Z phoe: so n². 2018-01-23T16:39:43Z Shinmera: Odd that it would require that specific behaviour 2018-01-23T16:40:33Z turkja quit (Ping timeout: 264 seconds) 2018-01-23T16:40:48Z fikka joined #lisp 2018-01-23T16:43:38Z zagura_ is now known as zagura 2018-01-23T16:46:04Z pjb: phoe: it would depend on the distribution of your arrays. But unless the implementation is bugged (has a very bad has function for vectors), and unless your vector distribution is pathologique, using an equalp hash-table should be good. 2018-01-23T16:47:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-23T16:47:22Z pjb: phoe: if your vector are not uniformly distributed, you may have other data structures better at discriminating them. For example, trees… 2018-01-23T16:48:05Z makomo quit (Ping timeout: 240 seconds) 2018-01-23T16:48:29Z EvW joined #lisp 2018-01-23T16:51:00Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T16:52:08Z red-dot joined #lisp 2018-01-23T16:55:36Z pfdietz_ joined #lisp 2018-01-23T16:55:51Z Baggers joined #lisp 2018-01-23T16:56:00Z fikka joined #lisp 2018-01-23T16:57:39Z pilfink joined #lisp 2018-01-23T16:58:08Z asarch joined #lisp 2018-01-23T16:58:20Z smasta quit (Ping timeout: 276 seconds) 2018-01-23T17:00:22Z pfdietz_: I expect special implementations of remove-duplicates would be available for some cases. 2018-01-23T17:00:22Z windblow joined #lisp 2018-01-23T17:01:22Z pfdietz_: For example, for the test functions supported by hash tables. 2018-01-23T17:02:10Z pfdietz_: In general you can't know if the test or key fns have side effects. 2018-01-23T17:02:48Z Shinmera: Right. I suppose for functions controlled by the implementation the user won't be able to actually know whether they were compared pairwise or not 2018-01-23T17:03:02Z Shinmera: So it could be optimised. 2018-01-23T17:03:38Z PuercoPope quit (Remote host closed the connection) 2018-01-23T17:03:52Z pjb: The implementation would have to be careful with :from-end, but otherwise, it's possible to do it with a hash-table indeed. 2018-01-23T17:06:26Z pfdietz_ quit (Ping timeout: 255 seconds) 2018-01-23T17:06:44Z mnoonan quit (Quit: Leaving) 2018-01-23T17:07:45Z lonjil quit (Quit: WeeChat 2.0.1) 2018-01-23T17:07:59Z smasta joined #lisp 2018-01-23T17:08:11Z pfdietz_ joined #lisp 2018-01-23T17:08:32Z JonSmith joined #lisp 2018-01-23T17:12:18Z pfdietz_ quit (Ping timeout: 246 seconds) 2018-01-23T17:13:41Z nika_ quit (Quit: Leaving...) 2018-01-23T17:15:23Z damke_ joined #lisp 2018-01-23T17:18:04Z pfdietz_ joined #lisp 2018-01-23T17:18:21Z damke quit (Ping timeout: 264 seconds) 2018-01-23T17:22:22Z ikki joined #lisp 2018-01-23T17:23:09Z smurfrobot quit (Read error: Connection reset by peer) 2018-01-23T17:24:16Z smurfrobot joined #lisp 2018-01-23T17:26:02Z clarkema joined #lisp 2018-01-23T17:27:20Z ikki quit (Ping timeout: 260 seconds) 2018-01-23T17:27:54Z ghard joined #lisp 2018-01-23T17:29:48Z pilfink quit (Ping timeout: 246 seconds) 2018-01-23T17:30:20Z flamebeard quit (Quit: Leaving) 2018-01-23T17:31:28Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-23T17:32:35Z fikka quit (Ping timeout: 260 seconds) 2018-01-23T17:34:05Z krasnal quit (Ping timeout: 276 seconds) 2018-01-23T17:34:14Z ghard quit (Quit: ERC (IRC client for Emacs 26.0.50)) 2018-01-23T17:34:39Z ghard joined #lisp 2018-01-23T17:36:46Z tomlukeywood quit (Quit: Leaving.) 2018-01-23T17:38:45Z ikki joined #lisp 2018-01-23T17:39:50Z pfdietz_ quit (Ping timeout: 276 seconds) 2018-01-23T17:40:08Z pfdietz_ joined #lisp 2018-01-23T17:40:37Z smurfrobot quit (Remote host closed the connection) 2018-01-23T17:42:29Z angelo joined #lisp 2018-01-23T17:42:32Z angelo: hi 2018-01-23T17:42:39Z beach: Hello angelo. 2018-01-23T17:43:36Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-23T17:43:47Z angelo: please help, I need to check a list of string against data in an html text input using parenscript 2018-01-23T17:43:54Z lonjil joined #lisp 2018-01-23T17:45:25Z smurfrobot joined #lisp 2018-01-23T17:47:25Z Folkol joined #lisp 2018-01-23T17:47:47Z slac-in-the-box joined #lisp 2018-01-23T17:48:26Z Fare quit (Ping timeout: 255 seconds) 2018-01-23T17:48:55Z dieggsy joined #lisp 2018-01-23T17:48:59Z drewc_ joined #lisp 2018-01-23T17:51:27Z drewc quit (Ping timeout: 240 seconds) 2018-01-23T17:52:21Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T17:52:31Z smasta quit (Ping timeout: 248 seconds) 2018-01-23T17:53:35Z red-dot joined #lisp 2018-01-23T17:53:41Z jstypo quit (Ping timeout: 265 seconds) 2018-01-23T17:55:23Z jackdaniel: angelo: your question is not clear (at least to me) 2018-01-23T17:56:16Z pjb: angelo: is that a javascript question? 2018-01-23T17:56:23Z jackdaniel: you may want to be better prepared before you ask that (i.e good description what you want to achieve, what have you tried, what are the constraints, why html/parenscript etc) 2018-01-23T17:56:48Z fikka joined #lisp 2018-01-23T17:56:51Z pjb: a paste with examples of data, code, and invocation. 2018-01-23T17:58:05Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-23T18:01:04Z hhdave quit (Quit: hhdave) 2018-01-23T18:05:02Z raynold quit (Quit: Connection closed for inactivity) 2018-01-23T18:05:11Z tomlukeywood joined #lisp 2018-01-23T18:05:55Z jstypo joined #lisp 2018-01-23T18:06:24Z clarkema quit (Quit: clarkema) 2018-01-23T18:07:36Z smasta joined #lisp 2018-01-23T18:09:16Z slac-in-the-box left #lisp 2018-01-23T18:09:44Z pfdietz_ quit (Ping timeout: 276 seconds) 2018-01-23T18:14:59Z ikki quit (Quit: Leaving) 2018-01-23T18:18:32Z jasom: angelo: I answered in #lispweb; didn't see you asked here too 2018-01-23T18:20:11Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-23T18:21:01Z nowhereman_ joined #lisp 2018-01-23T18:22:15Z Karl_Dscc joined #lisp 2018-01-23T18:22:32Z Fare joined #lisp 2018-01-23T18:23:09Z Murii quit (Ping timeout: 265 seconds) 2018-01-23T18:24:50Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-23T18:25:19Z erikc joined #lisp 2018-01-23T18:27:15Z raynold joined #lisp 2018-01-23T18:30:21Z lnostdal quit (Read error: Connection reset by peer) 2018-01-23T18:32:44Z sjl quit (Quit: WeeChat 1.9) 2018-01-23T18:33:05Z sjl joined #lisp 2018-01-23T18:33:38Z varjag joined #lisp 2018-01-23T18:34:08Z karswell quit (Ping timeout: 248 seconds) 2018-01-23T18:37:11Z fikka quit (Ping timeout: 256 seconds) 2018-01-23T18:38:08Z fikka joined #lisp 2018-01-23T18:39:44Z oleo quit (Ping timeout: 276 seconds) 2018-01-23T18:40:13Z pjb quit (Ping timeout: 256 seconds) 2018-01-23T18:43:54Z sjl quit (Quit: WeeChat 1.9) 2018-01-23T18:44:14Z sjl joined #lisp 2018-01-23T18:49:44Z pjb joined #lisp 2018-01-23T18:50:08Z paul0 quit (Remote host closed the connection) 2018-01-23T18:51:35Z paul0 joined #lisp 2018-01-23T18:53:33Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T18:55:08Z dieggsy quit (Read error: Connection reset by peer) 2018-01-23T18:55:38Z red-dot joined #lisp 2018-01-23T18:57:45Z nyef```` joined #lisp 2018-01-23T19:00:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-23T19:00:37Z nyef``` quit (Ping timeout: 256 seconds) 2018-01-23T19:02:59Z attila_lendvai joined #lisp 2018-01-23T19:02:59Z attila_lendvai quit (Changing host) 2018-01-23T19:02:59Z attila_lendvai joined #lisp 2018-01-23T19:03:53Z EvW quit (Ping timeout: 255 seconds) 2018-01-23T19:05:43Z oleo joined #lisp 2018-01-23T19:08:00Z drewc_ is now known as drewc 2018-01-23T19:09:52Z hhdave joined #lisp 2018-01-23T19:10:31Z tlaxkit quit (Quit: Saliendo...) 2018-01-23T19:14:34Z tomlukeywood quit (Quit: Leaving.) 2018-01-23T19:17:20Z fikka joined #lisp 2018-01-23T19:18:35Z emaczen joined #lisp 2018-01-23T19:19:41Z smasta quit (Ping timeout: 256 seconds) 2018-01-23T19:22:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-23T19:26:09Z warweasle is now known as warweasle_bbib 2018-01-23T19:27:57Z LocaMocha quit (Ping timeout: 240 seconds) 2018-01-23T19:30:03Z fikka joined #lisp 2018-01-23T19:30:59Z Fare quit (Ping timeout: 276 seconds) 2018-01-23T19:34:06Z nyef````` joined #lisp 2018-01-23T19:35:33Z fikka quit (Ping timeout: 256 seconds) 2018-01-23T19:36:30Z nyef```` quit (Ping timeout: 246 seconds) 2018-01-23T19:36:36Z _paul0 joined #lisp 2018-01-23T19:36:44Z paul0 quit (Read error: Connection reset by peer) 2018-01-23T19:36:57Z PuercoPope joined #lisp 2018-01-23T19:37:20Z makomo joined #lisp 2018-01-23T19:38:59Z Pixel_Outlaw joined #lisp 2018-01-23T19:40:18Z PuercoPope quit (Remote host closed the connection) 2018-01-23T19:40:35Z jstypo quit (Ping timeout: 240 seconds) 2018-01-23T19:43:14Z pagnol joined #lisp 2018-01-23T19:43:54Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-23T19:45:00Z dieggsy joined #lisp 2018-01-23T19:47:25Z clarkema joined #lisp 2018-01-23T19:51:57Z nyef````` quit (Ping timeout: 264 seconds) 2018-01-23T19:54:10Z EvW joined #lisp 2018-01-23T19:55:54Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T19:56:37Z red-dot joined #lisp 2018-01-23T20:00:40Z damke joined #lisp 2018-01-23T20:01:05Z fikka joined #lisp 2018-01-23T20:02:27Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-23T20:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-23T20:03:12Z krasnal joined #lisp 2018-01-23T20:03:51Z warweasle_bbib is now known as warweasle 2018-01-23T20:04:23Z nowhereman_ joined #lisp 2018-01-23T20:04:32Z clarkema_ joined #lisp 2018-01-23T20:04:38Z clarkema_ quit (Client Quit) 2018-01-23T20:05:41Z warweasle quit (Quit: bbib) 2018-01-23T20:05:47Z clarkema quit (Ping timeout: 256 seconds) 2018-01-23T20:11:47Z warweasle joined #lisp 2018-01-23T20:19:23Z pjb quit (Ping timeout: 256 seconds) 2018-01-23T20:19:26Z Ven`` joined #lisp 2018-01-23T20:23:24Z vlatkoB quit (Remote host closed the connection) 2018-01-23T20:24:20Z alexmlw quit (Quit: alexmlw) 2018-01-23T20:24:34Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-23T20:29:10Z smurfrobot joined #lisp 2018-01-23T20:29:44Z eivarv quit (Quit: Sleep) 2018-01-23T20:33:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-23T20:36:20Z fikka quit (Ping timeout: 260 seconds) 2018-01-23T20:40:54Z Ardx joined #lisp 2018-01-23T20:46:48Z pjb joined #lisp 2018-01-23T20:49:23Z scymtym_ joined #lisp 2018-01-23T20:51:24Z scymtym quit (Ping timeout: 246 seconds) 2018-01-23T20:55:57Z scymtym_ quit (Ping timeout: 246 seconds) 2018-01-23T20:56:42Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T20:58:32Z red-dot joined #lisp 2018-01-23T21:01:46Z Jesin joined #lisp 2018-01-23T21:07:49Z fikka joined #lisp 2018-01-23T21:11:22Z nowhereman_ quit (Read error: Connection reset by peer) 2018-01-23T21:11:49Z nowhereman_ joined #lisp 2018-01-23T21:12:28Z windblow quit (Quit: Leaving) 2018-01-23T21:13:55Z zazzerino joined #lisp 2018-01-23T21:15:05Z arbv joined #lisp 2018-01-23T21:15:33Z CrazyEddy quit (Remote host closed the connection) 2018-01-23T21:15:44Z nopolitica joined #lisp 2018-01-23T21:16:59Z shka quit (Ping timeout: 256 seconds) 2018-01-23T21:17:57Z __paul0 joined #lisp 2018-01-23T21:19:06Z Fare joined #lisp 2018-01-23T21:20:40Z _paul0 quit (Ping timeout: 260 seconds) 2018-01-23T21:25:10Z smasta joined #lisp 2018-01-23T21:26:00Z jstypo joined #lisp 2018-01-23T21:26:37Z sjl quit (Ping timeout: 256 seconds) 2018-01-23T21:26:37Z zaquest quit (Ping timeout: 256 seconds) 2018-01-23T21:28:51Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-23T21:29:23Z zaquest joined #lisp 2018-01-23T21:29:54Z smurfrobot joined #lisp 2018-01-23T21:31:27Z Murii joined #lisp 2018-01-23T21:32:33Z sjl joined #lisp 2018-01-23T21:33:40Z dented42 joined #lisp 2018-01-23T21:34:27Z Fare quit (Ping timeout: 240 seconds) 2018-01-23T21:35:09Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-23T21:38:25Z Ardx quit (Quit: Leaving) 2018-01-23T21:40:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T21:41:07Z scymtym joined #lisp 2018-01-23T21:41:07Z hhdave quit (Quit: hhdave) 2018-01-23T21:44:58Z fikka joined #lisp 2018-01-23T21:46:01Z nirved quit (Quit: Leaving) 2018-01-23T21:48:24Z ACE_Recliner joined #lisp 2018-01-23T21:49:57Z zazzerino quit (Ping timeout: 240 seconds) 2018-01-23T21:51:24Z eivarv joined #lisp 2018-01-23T21:52:17Z Fare joined #lisp 2018-01-23T21:53:25Z _main_ joined #lisp 2018-01-23T21:54:03Z Ven`` quit (Ping timeout: 246 seconds) 2018-01-23T21:54:58Z _main_ quit (Read error: Connection reset by peer) 2018-01-23T21:55:27Z _main_ joined #lisp 2018-01-23T21:55:34Z __main__ quit (Read error: Connection reset by peer) 2018-01-23T21:56:03Z Ven`` joined #lisp 2018-01-23T21:58:25Z dented42 quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-23T21:58:42Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T21:59:34Z red-dot joined #lisp 2018-01-23T21:59:51Z _main_ is now known as __main__ 2018-01-23T22:02:40Z Jesin quit (Quit: Leaving) 2018-01-23T22:06:19Z sjl__ joined #lisp 2018-01-23T22:08:05Z Ven`` quit (Ping timeout: 240 seconds) 2018-01-23T22:08:32Z dented42 joined #lisp 2018-01-23T22:09:04Z sjl quit (Ping timeout: 248 seconds) 2018-01-23T22:09:57Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-23T22:10:51Z ineiros joined #lisp 2018-01-23T22:11:09Z Ven`` joined #lisp 2018-01-23T22:12:17Z karswell joined #lisp 2018-01-23T22:14:20Z mishoo quit (Ping timeout: 260 seconds) 2018-01-23T22:16:27Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-23T22:17:49Z fikka quit (Ping timeout: 256 seconds) 2018-01-23T22:18:10Z Fare left #lisp 2018-01-23T22:19:10Z fikka joined #lisp 2018-01-23T22:22:26Z nopoliti1 joined #lisp 2018-01-23T22:23:09Z sjl__ quit (Ping timeout: 264 seconds) 2018-01-23T22:24:02Z os65k joined #lisp 2018-01-23T22:24:50Z nopolitica quit (Ping timeout: 260 seconds) 2018-01-23T22:26:47Z Folkol_ joined #lisp 2018-01-23T22:27:36Z Karl_Dscc quit (Remote host closed the connection) 2018-01-23T22:27:57Z Folkol quit (Ping timeout: 264 seconds) 2018-01-23T22:29:28Z Cymew joined #lisp 2018-01-23T22:30:42Z Folkol_ quit (Client Quit) 2018-01-23T22:32:27Z gilez quit (Ping timeout: 240 seconds) 2018-01-23T22:33:24Z eivarv quit (Quit: Sleep) 2018-01-23T22:33:56Z m00natic quit (Remote host closed the connection) 2018-01-23T22:33:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-23T22:37:58Z Bike quit (Quit: Page closed) 2018-01-23T22:38:04Z shifty joined #lisp 2018-01-23T22:41:51Z pilfink joined #lisp 2018-01-23T22:46:35Z eivarv joined #lisp 2018-01-23T22:48:57Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-23T22:50:13Z karswell_ joined #lisp 2018-01-23T22:50:47Z karswell quit (Read error: Connection reset by peer) 2018-01-23T22:51:39Z hhdave joined #lisp 2018-01-23T22:51:44Z dim: what I though would be a pretty aggressive optimisation is shaving like 5s out of 45s 2018-01-23T22:51:47Z dim: too bad 2018-01-23T22:52:34Z fikka quit (Ping timeout: 268 seconds) 2018-01-23T22:53:45Z Ven`` quit (Ping timeout: 264 seconds) 2018-01-23T22:54:00Z jfb4 quit (Ping timeout: 260 seconds) 2018-01-23T22:54:34Z LiamH quit (Quit: Leaving.) 2018-01-23T22:55:31Z jfb4 joined #lisp 2018-01-23T22:58:17Z iqubic joined #lisp 2018-01-23T22:58:57Z pagnol: dim, what's your program doing? 2018-01-23T22:59:03Z Ven`` joined #lisp 2018-01-23T22:59:42Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-23T23:00:50Z red-dot joined #lisp 2018-01-23T23:01:31Z dieggsy joined #lisp 2018-01-23T23:01:39Z damke_ joined #lisp 2018-01-23T23:02:45Z fikka joined #lisp 2018-01-23T23:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-23T23:04:33Z nyef joined #lisp 2018-01-23T23:06:18Z Baggers quit (Remote host closed the connection) 2018-01-23T23:06:48Z dim: pgloader, copying data from a database to another 2018-01-23T23:08:37Z Ven`` quit (Ping timeout: 256 seconds) 2018-01-23T23:11:55Z Ven`` joined #lisp 2018-01-23T23:12:11Z wxie joined #lisp 2018-01-23T23:12:20Z milanj_ joined #lisp 2018-01-23T23:13:33Z dim: (different one, at that, e.g. from MySQL to PostgreSQL) 2018-01-23T23:14:19Z dim: https://github.com/dimitri/pgloader/commit/8ee799070a8c8a4d7d7d1e957ebfbd21f9a1d975 2018-01-23T23:14:29Z dim: that's the patch that I expected would be about optimisations 2018-01-23T23:14:34Z dim: it's only code cleanup 2018-01-23T23:14:45Z milanj quit (Ping timeout: 264 seconds) 2018-01-23T23:15:10Z mhd joined #lisp 2018-01-23T23:17:02Z moei quit (Quit: Leaving...) 2018-01-23T23:22:23Z dim: well I guess it's going to be even easier than before to help improve the code speed-wise now, if anybody is interested into that ;-) 2018-01-23T23:22:28Z Bike joined #lisp 2018-01-23T23:23:19Z Ven`` quit (Read error: Connection reset by peer) 2018-01-23T23:23:20Z wxie quit (Remote host closed the connection) 2018-01-23T23:23:24Z Ven` joined #lisp 2018-01-23T23:31:00Z eivarv quit (Quit: Sleep) 2018-01-23T23:31:00Z rumbler31 joined #lisp 2018-01-23T23:33:17Z Kaisyu joined #lisp 2018-01-23T23:34:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-23T23:37:22Z zazzerino joined #lisp 2018-01-23T23:37:25Z AntiSpamMeta quit (Read error: Connection reset by peer) 2018-01-23T23:37:37Z AntiSpamMeta joined #lisp 2018-01-23T23:40:28Z fikka joined #lisp 2018-01-23T23:40:30Z os65k quit 2018-01-23T23:40:32Z proteanthread quit (Read error: Connection reset by peer) 2018-01-23T23:42:28Z wigust- joined #lisp 2018-01-23T23:42:51Z hhdave quit (Quit: hhdave) 2018-01-23T23:46:31Z wigust quit (Ping timeout: 265 seconds) 2018-01-23T23:50:29Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-23T23:51:08Z oleo quit (Ping timeout: 255 seconds) 2018-01-23T23:53:56Z mhd: Does anyone know how to control what version of SLIME I get in emacs? I have 2.19. Would like to run 2.20 2018-01-23T23:54:50Z mhd: I guess this is through melpa. I for some reason cannot find anything about this. Possibly I've overlooked something? 2018-01-23T23:58:23Z brendyn joined #lisp 2018-01-23T23:59:18Z openthesky joined #lisp 2018-01-24T00:02:00Z smurfrobot joined #lisp 2018-01-24T00:02:22Z _death: quicklisp has a slime helper, the easiest way 2018-01-24T00:05:12Z Ven` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-24T00:07:11Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-24T00:08:14Z Murii quit (Quit: WeeChat 1.4) 2018-01-24T00:08:20Z mhd: And does that let you control SLIME version? I could not find anything about that either 2018-01-24T00:08:22Z dented42 joined #lisp 2018-01-24T00:08:56Z mhd: ^ Xach? 2018-01-24T00:09:03Z warweasle quit (Ping timeout: 248 seconds) 2018-01-24T00:10:09Z rumbler31: mhd: i haven't found anything about this either 2018-01-24T00:10:09Z rumbler31: mhd: i think the development version is available to melpa or marmalade, but its up to you to also make sure that the version of swank that is loaded by the lisp matches as well 2018-01-24T00:10:13Z _death: if you want absolute control, just clone the repository 2018-01-24T00:10:19Z rumbler31: that is how I do it, slime from melpa, and whatever version of swank is installed by quicklisp-slime-helper, until I figure out an easier way to make both versions sync all the time 2018-01-24T00:12:13Z warweasle joined #lisp 2018-01-24T00:12:45Z fikka quit (Ping timeout: 260 seconds) 2018-01-24T00:13:20Z ACE_Recliner quit (Ping timeout: 260 seconds) 2018-01-24T00:14:45Z JonSmith quit (Remote host closed the connection) 2018-01-24T00:17:59Z phoe: I actually do an ugly trick sometimes 2018-01-24T00:18:17Z phoe: I install slime via quicklisp-slime-helper. This downloads swank into quicklisp's software directory. 2018-01-24T00:18:40Z phoe: I purge the contents of that directory and clone the Git swank repository in its place. 2018-01-24T00:18:42Z JonSmith_ joined #lisp 2018-01-24T00:18:59Z phoe: this means that a) I'm running bleeding edge now, b) swank and slime versions match. 2018-01-24T00:19:20Z ghard quit (Ping timeout: 255 seconds) 2018-01-24T00:19:25Z phoe: and c) that magic can happen now. 2018-01-24T00:19:32Z phoe: but it doesn't, at least to me. 2018-01-24T00:20:11Z fikka joined #lisp 2018-01-24T00:22:55Z JonSmith_ quit (Ping timeout: 248 seconds) 2018-01-24T00:24:01Z _death: I did something like that for all quicklisp git sources, so in effect only half using quicklisp :/ 2018-01-24T00:24:10Z phoe: well 2018-01-24T00:24:13Z phoe: if it works, then it works 2018-01-24T00:24:43Z quazimodo joined #lisp 2018-01-24T00:28:08Z rumbler31 quit (Remote host closed the connection) 2018-01-24T00:31:06Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-24T00:33:49Z dented42 quit (Read error: Connection reset by peer) 2018-01-24T00:33:49Z dented42_ joined #lisp 2018-01-24T00:34:47Z dieggsy quit (Remote host closed the connection) 2018-01-24T00:34:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-24T00:36:02Z EvW quit (Remote host closed the connection) 2018-01-24T00:36:04Z mhd: 3 main ways to install SLIME: (1) clone repo; (2) package; (3) quicklisp 2018-01-24T00:37:09Z mhd: phoe, you are mixing and matching slime and swank? 2018-01-24T00:37:33Z mhd: what could ever go wrong? 2018-01-24T00:40:57Z Pixel_Outlaw joined #lisp 2018-01-24T00:44:15Z davsebamse quit (Ping timeout: 260 seconds) 2018-01-24T00:45:45Z dddddd quit (Remote host closed the connection) 2018-01-24T00:46:28Z rumbler31 joined #lisp 2018-01-24T00:48:38Z rumbler31 quit (Read error: Connection reset by peer) 2018-01-24T00:49:15Z rumbler31 joined #lisp 2018-01-24T00:51:11Z Tobbi quit (Quit: Leaving) 2018-01-24T00:53:15Z pjb quit (Ping timeout: 246 seconds) 2018-01-24T00:53:57Z fikka quit (Ping timeout: 246 seconds) 2018-01-24T00:54:34Z EvW joined #lisp 2018-01-24T00:55:27Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T01:02:07Z fikka joined #lisp 2018-01-24T01:04:57Z vyzo quit (Ping timeout: 240 seconds) 2018-01-24T01:05:01Z attila_lendvai quit (Quit: Leaving.) 2018-01-24T01:05:39Z red-dot joined #lisp 2018-01-24T01:07:36Z dieggsy joined #lisp 2018-01-24T01:08:29Z pjb joined #lisp 2018-01-24T01:08:48Z pjb is now known as Guest50455 2018-01-24T01:09:17Z Guest50455 is now known as pkbn 2018-01-24T01:09:29Z pkbn is now known as pjb` 2018-01-24T01:09:42Z pjb` is now known as pjb 2018-01-24T01:10:12Z pjb is now known as Guest96407 2018-01-24T01:11:36Z Tobbi joined #lisp 2018-01-24T01:14:59Z vyzo joined #lisp 2018-01-24T01:16:07Z pierpa joined #lisp 2018-01-24T01:22:08Z heurist quit (Ping timeout: 248 seconds) 2018-01-24T01:22:12Z heurist` joined #lisp 2018-01-24T01:27:33Z djinni` quit (Quit: Leaving) 2018-01-24T01:29:35Z FreeBirdLjj joined #lisp 2018-01-24T01:32:22Z zazzerino quit (Remote host closed the connection) 2018-01-24T01:32:49Z davsebamse joined #lisp 2018-01-24T01:33:51Z EvW quit (Ping timeout: 246 seconds) 2018-01-24T01:33:51Z fikka quit (Ping timeout: 248 seconds) 2018-01-24T01:34:56Z markong quit (Ping timeout: 248 seconds) 2018-01-24T01:36:21Z djinni` joined #lisp 2018-01-24T01:37:48Z turkja joined #lisp 2018-01-24T01:39:35Z krasnal quit (Ping timeout: 255 seconds) 2018-01-24T01:42:33Z Oladon joined #lisp 2018-01-24T01:43:07Z fikka joined #lisp 2018-01-24T01:43:35Z Tobbi quit (Quit: Leaving) 2018-01-24T01:43:41Z zazzerino joined #lisp 2018-01-24T01:56:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-24T02:05:35Z jibanes quit (Ping timeout: 268 seconds) 2018-01-24T02:07:19Z jibanes joined #lisp 2018-01-24T02:09:33Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-24T02:12:56Z nullman quit (Remote host closed the connection) 2018-01-24T02:13:11Z nullman joined #lisp 2018-01-24T02:13:54Z smurfrobot joined #lisp 2018-01-24T02:18:32Z Guest96407 quit (Ping timeout: 276 seconds) 2018-01-24T02:19:09Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-24T02:25:15Z mhd quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-24T02:25:15Z mhd quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-24T02:27:08Z mhd joined #lisp 2018-01-24T02:28:57Z sz0 joined #lisp 2018-01-24T02:29:31Z mhd: Has anyone tried to use SLIME 2.20 with ACL? I've encountered an issue that slime-inspect gets totally hosed inspecting anything. You have to basically shut the Lisp down hard (kiling the buffer) to recover. 2018-01-24T02:29:44Z Cymew joined #lisp 2018-01-24T02:29:58Z mhd: goes into debugger somewhere in no-applicable-method MULTIPROCESSING:PROCESS-PROPERTY-LIST 2018-01-24T02:30:21Z mhd: Happens in 2.20, but not in 2.19 SLIME 2018-01-24T02:31:11Z mhd: Reproduced in ACL "alisp", both SMP and non-SMP, on MacOS (10.0). Anyone else? 2018-01-24T02:33:58Z zazzerino left #lisp 2018-01-24T02:34:30Z Cymew quit (Ping timeout: 260 seconds) 2018-01-24T02:40:04Z FreeBirdLjj joined #lisp 2018-01-24T02:44:18Z d4ryus1 joined #lisp 2018-01-24T02:44:54Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T02:46:45Z fikka quit (Ping timeout: 260 seconds) 2018-01-24T02:47:27Z d4ryus quit (Ping timeout: 240 seconds) 2018-01-24T02:47:48Z FreeBirdLjj joined #lisp 2018-01-24T02:48:50Z Xach: mhd: if you need a specific version of slime, you can get it from https://github.com/slime/slime/releases and put it anywhere that asdf can find things, like ~/quicklisp/local-projects 2018-01-24T02:49:09Z Xach: make sure you load slime.el from that same location. 2018-01-24T02:49:30Z fikka joined #lisp 2018-01-24T02:52:16Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-24T02:52:17Z Oladon quit (Quit: Leaving.) 2018-01-24T02:53:14Z __rumbler31 joined #lisp 2018-01-24T02:57:57Z __rumbler31 quit (Ping timeout: 264 seconds) 2018-01-24T02:58:51Z FreeBirdLjj joined #lisp 2018-01-24T03:00:49Z damke joined #lisp 2018-01-24T03:00:58Z folks joined #lisp 2018-01-24T03:01:07Z kolb quit (Read error: Connection reset by peer) 2018-01-24T03:01:26Z dieggsy quit (Ping timeout: 276 seconds) 2018-01-24T03:01:37Z jonh joined #lisp 2018-01-24T03:01:41Z mrottenkolber joined #lisp 2018-01-24T03:02:05Z mrottenkolber is now known as Guest95035 2018-01-24T03:02:45Z damke_ quit (Ping timeout: 263 seconds) 2018-01-24T03:03:07Z arescorpio joined #lisp 2018-01-24T03:03:40Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-24T03:07:27Z sjl__ joined #lisp 2018-01-24T03:07:43Z jibanes quit (Ping timeout: 248 seconds) 2018-01-24T03:09:48Z jibanes joined #lisp 2018-01-24T03:12:17Z sjl__ quit (Ping timeout: 256 seconds) 2018-01-24T03:13:10Z arescorpio quit (Excess Flood) 2018-01-24T03:14:48Z smasta joined #lisp 2018-01-24T03:19:35Z loli quit (Quit: WeeChat 2.0.1) 2018-01-24T03:20:03Z loli joined #lisp 2018-01-24T03:21:10Z smurfrobot joined #lisp 2018-01-24T03:23:36Z safe joined #lisp 2018-01-24T03:25:22Z FreeBirdLjj joined #lisp 2018-01-24T03:25:51Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-24T03:26:59Z karswell_ quit (Read error: Connection reset by peer) 2018-01-24T03:28:17Z warweasle quit (Quit: Leaving) 2018-01-24T03:28:21Z pagnol quit (Quit: Ex-Chat) 2018-01-24T03:28:47Z dented42_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-24T03:30:11Z CrazyEddy joined #lisp 2018-01-24T03:30:46Z iqubic quit (Remote host closed the connection) 2018-01-24T03:31:17Z smurfrobot joined #lisp 2018-01-24T03:32:32Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T03:34:23Z smurfrob_ joined #lisp 2018-01-24T03:38:55Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-24T03:39:55Z openthesky: hey I hope this isn't too off topic but has any gotten the nEXT browser working under ubuntu? http://next-browser.github.io 2018-01-24T03:46:43Z smasta quit (Ping timeout: 268 seconds) 2018-01-24T03:50:11Z FreeBirdLjj joined #lisp 2018-01-24T03:50:14Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-24T03:55:33Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-24T03:56:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-24T04:04:29Z PinealGlandOptic joined #lisp 2018-01-24T04:07:16Z fikka joined #lisp 2018-01-24T04:10:47Z AxelAlex joined #lisp 2018-01-24T04:12:59Z dented42 joined #lisp 2018-01-24T04:13:23Z hydrocat joined #lisp 2018-01-24T04:15:04Z hydrocat: any recommendations on a graphical package ? I'd like to control a canvas and see the results immediately, kinda like how you can do in opengl 2018-01-24T04:16:14Z hydrocat: I'm only looking for 2d manipulation 2018-01-24T04:18:02Z White_Flame: I think lispbuilder-sdl is popular 2018-01-24T04:18:28Z White_Flame: there's also #lispgames that might be worth asking 2018-01-24T04:19:15Z hydrocat: White_Flame: I'll give them a look :) 2018-01-24T04:30:05Z iqubic joined #lisp 2018-01-24T04:35:49Z smasta joined #lisp 2018-01-24T04:37:23Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-24T04:37:39Z hydrocat quit (Quit: Page closed) 2018-01-24T04:39:19Z Oladon joined #lisp 2018-01-24T04:39:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-24T04:41:02Z fikka joined #lisp 2018-01-24T04:43:03Z mhd: Thanks Xach 2018-01-24T04:49:15Z smasta quit (Ping timeout: 260 seconds) 2018-01-24T04:52:51Z FreeBirdLjj joined #lisp 2018-01-24T04:54:34Z smasta joined #lisp 2018-01-24T04:57:33Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T04:58:03Z iqubic` joined #lisp 2018-01-24T04:58:15Z schoppenhauer quit (Ping timeout: 256 seconds) 2018-01-24T04:59:44Z iqubic quit (Ping timeout: 276 seconds) 2018-01-24T04:59:47Z schoppenhauer joined #lisp 2018-01-24T04:59:48Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-24T05:00:13Z iqubic` is now known as iqubic 2018-01-24T05:01:10Z beach: Good morning everyone! 2018-01-24T05:01:55Z PinealGlandOptic: beach: good 2018-01-24T05:03:38Z iqubic: Morning beach. 2018-01-24T05:05:31Z Bike quit (Quit: Lost terminal) 2018-01-24T05:07:38Z FreeBirdLjj joined #lisp 2018-01-24T05:08:11Z arrsim quit (Ping timeout: 276 seconds) 2018-01-24T05:08:22Z arrsim joined #lisp 2018-01-24T05:12:05Z AX31_A13X joined #lisp 2018-01-24T05:12:07Z dmiles: in cl-ansi doit.lsp does not expect it is only runing in compiled mode the compileit.lsp does.. correct? 2018-01-24T05:12:26Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T05:12:35Z AxelAlex quit (Ping timeout: 260 seconds) 2018-01-24T05:12:42Z rumbler31 quit (Remote host closed the connection) 2018-01-24T05:13:00Z dmiles: (why i ask is i thought at some point things changed .. but that may have only been for an impl and non cl-ansi) 2018-01-24T05:13:57Z dmiles: but that may have only been for an one impl (ABCL) and not that hte ansi tests have changed 2018-01-24T05:14:17Z fikka quit (Ping timeout: 268 seconds) 2018-01-24T05:14:44Z dmiles hopes 2018-01-24T05:17:39Z openthesky quit (Ping timeout: 260 seconds) 2018-01-24T05:18:37Z FreeBirdLjj joined #lisp 2018-01-24T05:19:59Z smasta quit (Ping timeout: 248 seconds) 2018-01-24T05:21:23Z fikka joined #lisp 2018-01-24T05:22:10Z smasta joined #lisp 2018-01-24T05:22:37Z asarch quit (Quit: Leaving) 2018-01-24T05:23:05Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-24T05:24:52Z shka joined #lisp 2018-01-24T05:26:40Z White_Flame quit (Remote host closed the connection) 2018-01-24T05:32:37Z panji joined #lisp 2018-01-24T05:36:27Z jibanes quit (Ping timeout: 240 seconds) 2018-01-24T05:38:39Z jibanes joined #lisp 2018-01-24T05:39:00Z FreeBirdLjj joined #lisp 2018-01-24T05:43:53Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T05:45:59Z White_Flame joined #lisp 2018-01-24T05:46:06Z oleo joined #lisp 2018-01-24T05:51:17Z fikka quit (Ping timeout: 268 seconds) 2018-01-24T05:54:35Z Chream_2 quit (Ping timeout: 260 seconds) 2018-01-24T05:54:48Z fikka joined #lisp 2018-01-24T06:00:39Z White_Flame quit (Remote host closed the connection) 2018-01-24T06:00:52Z pierpa quit (Quit: Page closed) 2018-01-24T06:03:40Z damke_ joined #lisp 2018-01-24T06:04:07Z wallyduchamp quit (Quit: WeeChat 2.0.1) 2018-01-24T06:06:05Z FreeBirdLjj joined #lisp 2018-01-24T06:06:21Z damke quit (Ping timeout: 264 seconds) 2018-01-24T06:06:55Z turkja quit (Ping timeout: 248 seconds) 2018-01-24T06:07:23Z White_Flame joined #lisp 2018-01-24T06:10:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T06:11:54Z folks quit (Ping timeout: 260 seconds) 2018-01-24T06:12:17Z thallia joined #lisp 2018-01-24T06:13:16Z rumbler31 joined #lisp 2018-01-24T06:14:21Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T06:18:05Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-24T06:21:15Z orivej joined #lisp 2018-01-24T06:22:17Z erikc quit 2018-01-24T06:26:39Z fikka quit (Ping timeout: 256 seconds) 2018-01-24T06:30:46Z safe quit (Read error: Connection reset by peer) 2018-01-24T06:31:54Z Lord_Nightmare2 joined #lisp 2018-01-24T06:32:04Z fikka joined #lisp 2018-01-24T06:32:32Z Oladon quit (Quit: Leaving.) 2018-01-24T06:33:03Z mishoo joined #lisp 2018-01-24T06:33:05Z Lord_Nightmare quit (Ping timeout: 260 seconds) 2018-01-24T06:33:06Z Lord_Nightmare2 is now known as Lord_Nightmare 2018-01-24T06:34:33Z makomo quit (Ping timeout: 264 seconds) 2018-01-24T06:35:44Z FreeBirdLjj joined #lisp 2018-01-24T06:35:55Z oleo quit (Quit: Leaving) 2018-01-24T06:36:24Z Karl_Dscc joined #lisp 2018-01-24T06:40:22Z red-dot joined #lisp 2018-01-24T06:40:25Z epony: Good morning. 2018-01-24T06:40:37Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T06:41:36Z beach: Hello epony. 2018-01-24T06:41:50Z FreeBirdLjj joined #lisp 2018-01-24T06:42:08Z epony: Hi there, beach (have not had the chance to say HNY this month yet here). 2018-01-24T06:43:35Z sjl__ joined #lisp 2018-01-24T06:44:58Z makomo joined #lisp 2018-01-24T06:46:29Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-24T06:48:11Z sjl__ quit (Ping timeout: 256 seconds) 2018-01-24T06:50:26Z FreeBirdLjj joined #lisp 2018-01-24T06:55:33Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-24T06:56:52Z FreeBirdLjj joined #lisp 2018-01-24T07:01:11Z LocaMocha joined #lisp 2018-01-24T07:01:11Z LocaMocha quit (Max SendQ exceeded) 2018-01-24T07:01:27Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T07:02:35Z AX3L joined #lisp 2018-01-24T07:03:29Z AX31_A13X quit (Read error: Connection reset by peer) 2018-01-24T07:04:20Z phoe: new 2018-01-24T07:04:24Z phoe: ugh wrong window 2018-01-24T07:04:29Z phoe: anyway, good morning 2018-01-24T07:04:48Z LocaMocha joined #lisp 2018-01-24T07:06:57Z FreeBirdLjj joined #lisp 2018-01-24T07:08:38Z makomo: morning 2018-01-24T07:08:59Z fikka quit (Ping timeout: 268 seconds) 2018-01-24T07:11:40Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-24T07:11:47Z Shinmera: mhd: If you have installed slime from melpa, run package-list-packages, press U, and then x. That should update all of your packages. If you only want to update slime, find it in the list and press u there instead. 2018-01-24T07:12:10Z mhd: Thank you Shinmera ! 2018-01-24T07:12:51Z smurfrob_ quit (Read error: Connection reset by peer) 2018-01-24T07:13:32Z Karl_Dscc quit (Remote host closed the connection) 2018-01-24T07:13:53Z vlatkoB joined #lisp 2018-01-24T07:14:33Z rumbler31 joined #lisp 2018-01-24T07:16:23Z orivej quit (Ping timeout: 268 seconds) 2018-01-24T07:16:40Z fikka joined #lisp 2018-01-24T07:16:45Z FreeBirdLjj joined #lisp 2018-01-24T07:17:52Z smurfrobot joined #lisp 2018-01-24T07:18:57Z smasta quit (Ping timeout: 240 seconds) 2018-01-24T07:19:59Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-24T07:21:03Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-24T07:22:05Z fikka quit (Ping timeout: 276 seconds) 2018-01-24T07:22:21Z dec0n joined #lisp 2018-01-24T07:22:30Z krasnal joined #lisp 2018-01-24T07:23:50Z emaczen quit (Read error: Connection reset by peer) 2018-01-24T07:23:58Z azahi joined #lisp 2018-01-24T07:24:10Z emaczen joined #lisp 2018-01-24T07:24:31Z beach: Hello phoe. 2018-01-24T07:24:33Z FreeBirdLjj joined #lisp 2018-01-24T07:28:43Z saturn2 quit (Ping timeout: 268 seconds) 2018-01-24T07:28:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T07:29:11Z krasnal quit (Ping timeout: 256 seconds) 2018-01-24T07:36:44Z fikka joined #lisp 2018-01-24T07:36:50Z zooey quit (Ping timeout: 255 seconds) 2018-01-24T07:37:51Z zooey joined #lisp 2018-01-24T07:38:02Z FreeBirdLjj joined #lisp 2018-01-24T07:39:45Z turkja joined #lisp 2018-01-24T07:40:00Z azahi quit (Quit: ZNC - http://znc.in) 2018-01-24T07:40:19Z azahi joined #lisp 2018-01-24T07:41:15Z flamebeard joined #lisp 2018-01-24T07:41:45Z azahi quit (Changing host) 2018-01-24T07:41:45Z azahi joined #lisp 2018-01-24T07:42:54Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T07:48:07Z dddddd joined #lisp 2018-01-24T07:53:27Z varjag joined #lisp 2018-01-24T07:56:05Z otwieracz: PL 2018-01-24T07:56:07Z otwieracz: damn 2018-01-24T07:56:20Z otwieracz: https://youtu.be/KTdyp8VbuUw?t=41 - do you know *something* like that possible with SLIME and SBCL? 2018-01-24T07:59:12Z crsc quit (Remote host closed the connection) 2018-01-24T07:59:47Z otwieracz: I mean, I know that I am able to step in BREAK, but experience is completely different. 2018-01-24T08:01:19Z smasta joined #lisp 2018-01-24T08:04:15Z azahi quit (Quit: ZNC - http://znc.in) 2018-01-24T08:04:34Z azahi joined #lisp 2018-01-24T08:06:17Z smasta quit (Ping timeout: 265 seconds) 2018-01-24T08:11:50Z azahi quit (Quit: ZNC - http://znc.in) 2018-01-24T08:12:08Z azahi joined #lisp 2018-01-24T08:15:10Z PinealGlandOptic quit (Ping timeout: 260 seconds) 2018-01-24T08:26:43Z beach: otwieracz: I think that, despite many statements to the contrary, our best development and debugging tools are really not that good. You are going to either have to pitch in or wait until the planned software has been developed. For example Clordane: http://metamodular.com/clordane.pdf 2018-01-24T08:26:57Z shka quit (Ping timeout: 240 seconds) 2018-01-24T08:27:19Z otwieracz: Well, backtraces are awesome. 2018-01-24T08:27:25Z otwieracz: But there's nothing else. ;) 2018-01-24T08:27:31Z beach: Really? Good for you. 2018-01-24T08:27:41Z otwieracz: At least in comparison to Clojure. 2018-01-24T08:27:51Z otwieracz: Where that's pain in ass. 2018-01-24T08:27:52Z beach: Now here is the catch: Something like Clordane can not be implemented without significant support from the implementation, and that is probably not going to happen for SBCL. 2018-01-24T08:28:17Z beach: And probably not for any other existing free implementation either. 2018-01-24T08:28:32Z beach: So then you will not only have to wait for Clordane, but also for SICL. 2018-01-24T08:28:35Z heurist` quit (Ping timeout: 240 seconds) 2018-01-24T08:30:27Z heurist` joined #lisp 2018-01-24T08:30:33Z beach: Again, unless you find a way to pitch in. 2018-01-24T08:37:38Z otwieracz: So, more or less, nothing changed from what I remembered. 2018-01-24T08:37:46Z otwieracz: Thanks for clarification! 2018-01-24T08:39:36Z heurist`_ joined #lisp 2018-01-24T08:40:30Z heurist` quit (Ping timeout: 246 seconds) 2018-01-24T08:46:25Z azahi quit (Quit: ZNC - http://znc.in) 2018-01-24T08:46:57Z azahi joined #lisp 2018-01-24T08:48:18Z PinealGlandOptic joined #lisp 2018-01-24T08:50:09Z krasnal joined #lisp 2018-01-24T08:52:38Z FreeBirdLjj joined #lisp 2018-01-24T08:55:16Z smasta joined #lisp 2018-01-24T08:56:27Z beach: otwieracz: Not much is going to change as long as people believe that our current tools are the best, all languages considered. 2018-01-24T08:57:06Z angelo quit (Quit: Leaving) 2018-01-24T08:57:57Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-24T08:57:58Z jackdaniel: but it certainly makes the community feel better ;-) 2018-01-24T08:58:07Z beach: True. 2018-01-24T08:59:05Z PinealGlandOptic quit (Ping timeout: 255 seconds) 2018-01-24T08:59:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-24T08:59:29Z dddddd quit (Remote host closed the connection) 2018-01-24T08:59:59Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T09:00:15Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-24T09:00:16Z beach: Oh, and for the record, I think it would be way more productive to work on improving our tools than to attempt to change the standard to include the fad of the day. 2018-01-24T09:00:32Z PinealGlandOptic joined #lisp 2018-01-24T09:01:04Z damke joined #lisp 2018-01-24T09:01:27Z mhd quit (Ping timeout: 240 seconds) 2018-01-24T09:01:36Z FreeBirdLjj joined #lisp 2018-01-24T09:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-24T09:05:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T09:07:17Z mishoo_ joined #lisp 2018-01-24T09:07:20Z loke: The current tools are obviously not the best 2018-01-24T09:07:28Z loke: Most (all?) languages I use have horrible tools. 2018-01-24T09:07:48Z loke: Lisp is acceptable, but only in comparison with the competition. 2018-01-24T09:08:00Z FreeBirdLjj joined #lisp 2018-01-24T09:08:05Z misv quit (Ping timeout: 255 seconds) 2018-01-24T09:08:11Z misv joined #lisp 2018-01-24T09:08:45Z mishoo quit (Ping timeout: 264 seconds) 2018-01-24T09:09:24Z red-dot joined #lisp 2018-01-24T09:09:27Z Murii joined #lisp 2018-01-24T09:09:54Z hhdave joined #lisp 2018-01-24T09:12:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T09:14:05Z wxie joined #lisp 2018-01-24T09:16:55Z FreeBirdLjj joined #lisp 2018-01-24T09:17:09Z BigSafari joined #lisp 2018-01-24T09:18:36Z windblow joined #lisp 2018-01-24T09:19:30Z rumbler31 joined #lisp 2018-01-24T09:20:23Z hhdave_ joined #lisp 2018-01-24T09:20:35Z hhdave quit (Ping timeout: 240 seconds) 2018-01-24T09:20:35Z hhdave_ is now known as hhdave 2018-01-24T09:21:02Z dim: pfff, what's with people? 2018-01-24T09:21:16Z dim: so pgloader didn't use to catch this error, and users would see: debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread #: error opening #P"/tmp/pgloader/pgloader.log": Permission denied 2018-01-24T09:21:31Z dim: then they open an issue on GitHub about SB-INT:SIMPLE-FILE-ERROR 2018-01-24T09:21:34Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T09:21:44Z dim: like, they don't even read “filename: Permission denied” 2018-01-24T09:22:20Z crsc joined #lisp 2018-01-24T09:22:38Z openthesky joined #lisp 2018-01-24T09:22:40Z dim: just because it's Common Lisp doesn't mean you don't have to read error messages, I guess. I can't. Mm. Maybe I should switch away from CL if I want to have users... or maybe pgloader has way too much success and now I have to deal with people who don't know what they are doing? sorry for the rant. 2018-01-24T09:23:20Z jdz: dim: Yes, success is a double-edged sword. 2018-01-24T09:23:43Z crsc: Hi 2018-01-24T09:23:57Z PinealGlandOptic quit (Ping timeout: 240 seconds) 2018-01-24T09:24:02Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-24T09:24:44Z jdz: dim: You also get people depend on some [obscure] features/bugs, and then when you fix/improve your software people complain. 2018-01-24T09:26:08Z Shinmera: beach: FWIW The SBCL folks are aware that the current debugging environment is pretty bad and would like to add stuff like out-of-process debugging. 2018-01-24T09:29:22Z FreeBirdLjj joined #lisp 2018-01-24T09:30:05Z Cymew joined #lisp 2018-01-24T09:31:00Z PinealGlandOptic joined #lisp 2018-01-24T09:34:41Z FreeBirdLjj quit (Ping timeout: 276 seconds) 2018-01-24T09:34:47Z d4ryus1 is now known as d4ryus 2018-01-24T09:36:45Z FreeBirdLjj joined #lisp 2018-01-24T09:37:39Z loke: dim: Having a top-level condition handler that prints the message from the error before exiting would cover all the cases, yes? 2018-01-24T09:38:54Z BigSafari quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-24T09:40:56Z dim: I think I have that, yeah 2018-01-24T09:41:45Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-24T09:42:39Z dim: well I don't, I have https://github.com/dimitri/pgloader/blob/master/src/main.lisp#L295 but the main entry point is at https://github.com/dimitri/pgloader/blob/master/src/main.lisp#L181, that's true 2018-01-24T09:42:54Z beach: Shinmera: Sure, I know at least one SBCL maintainer who is aware of that. 2018-01-24T09:43:45Z beach: Shinmera: Despite that fact, I often see messages such as "yes, but that is not going to happen". 2018-01-24T09:44:22Z Chream_ joined #lisp 2018-01-24T09:44:32Z _cosmonaut_ joined #lisp 2018-01-24T09:44:40Z azahi quit (Changing host) 2018-01-24T09:44:40Z azahi joined #lisp 2018-01-24T09:44:53Z FreeBirdLjj joined #lisp 2018-01-24T09:46:39Z PinealGlandOptic quit (Ping timeout: 248 seconds) 2018-01-24T09:46:40Z Shinmera: beach: I remember from the last time it came up (which was not long ago) the consensus was that they'd like to have it, but there's several roadblocks in the way that make it difficult. 2018-01-24T09:48:47Z wxie quit (Quit: Bye.) 2018-01-24T09:49:31Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-24T09:53:54Z FreeBirdLjj joined #lisp 2018-01-24T09:56:05Z tonton quit (Ping timeout: 240 seconds) 2018-01-24T09:57:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T09:58:31Z nirved joined #lisp 2018-01-24T09:58:41Z ania123 joined #lisp 2018-01-24T09:58:50Z nirved quit (Client Quit) 2018-01-24T09:59:52Z FreeBirdLjj joined #lisp 2018-01-24T10:00:10Z nirved joined #lisp 2018-01-24T10:03:07Z AX3L quit (Remote host closed the connection) 2018-01-24T10:03:15Z PinealGlandOptic joined #lisp 2018-01-24T10:04:30Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T10:04:46Z AxelAlex joined #lisp 2018-01-24T10:05:19Z sjl__ joined #lisp 2018-01-24T10:07:39Z PinealGlandOptic quit (Ping timeout: 246 seconds) 2018-01-24T10:08:40Z milanj_ quit (Quit: This computer has gone to sleep) 2018-01-24T10:09:35Z sjl__ quit (Ping timeout: 248 seconds) 2018-01-24T10:11:22Z whoman quit (Remote host closed the connection) 2018-01-24T10:11:47Z whoman joined #lisp 2018-01-24T10:14:00Z angelo joined #lisp 2018-01-24T10:14:21Z FreeBirdLjj joined #lisp 2018-01-24T10:16:58Z ania123 quit (Quit: Page closed) 2018-01-24T10:18:00Z syssiphus joined #lisp 2018-01-24T10:18:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T10:18:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-24T10:19:43Z orivej joined #lisp 2018-01-24T10:23:15Z Tobbi joined #lisp 2018-01-24T10:23:22Z whoman quit (Remote host closed the connection) 2018-01-24T10:23:53Z whoman joined #lisp 2018-01-24T10:23:58Z fikka joined #lisp 2018-01-24T10:28:47Z fikka quit (Ping timeout: 268 seconds) 2018-01-24T10:31:21Z sz0 joined #lisp 2018-01-24T10:34:04Z clarkema joined #lisp 2018-01-24T10:37:32Z Orion3k joined #lisp 2018-01-24T10:39:15Z fikka joined #lisp 2018-01-24T10:41:15Z beach: Shinmera: Yeah, that sounds accurate. 2018-01-24T10:43:22Z smasta joined #lisp 2018-01-24T10:44:46Z markong joined #lisp 2018-01-24T10:44:52Z megachombasss joined #lisp 2018-01-24T10:45:25Z megachombasss: hello, could someone explain me this function? (defun is-indir (e) (eql (car e) :*) ) 2018-01-24T10:45:41Z phoe: megachombasss: sure 2018-01-24T10:46:00Z phoe: this function checks if the first element of its list is equal to the keyword :* 2018-01-24T10:46:19Z megachombasss: okey so the keyword is exactly :* 2018-01-24T10:46:24Z megachombasss: its not a regular expression 2018-01-24T10:46:24Z phoe: so (IS-INDIR '(1 2 3)) will evaluate to NIL, but (IS-INDIR '(:* :+ :-)) will evaluate to T 2018-01-24T10:46:45Z phoe: megachombasss: :FOO is a notation for keywords. 2018-01-24T10:46:52Z BitPuffin joined #lisp 2018-01-24T10:47:01Z megachombasss: oh wait a sec 2018-01-24T10:47:12Z megachombasss: :* :+ and :- will return true? 2018-01-24T10:47:18Z phoe: no. 2018-01-24T10:47:28Z phoe: the list, '(:* :+ :-), starts with :*. 2018-01-24T10:47:33Z smasta quit (Ping timeout: 246 seconds) 2018-01-24T10:47:37Z phoe: and this function only checks if the first element of the list is eql to :*. 2018-01-24T10:47:41Z phoe: the rest of the list can be anything. 2018-01-24T10:47:44Z megachombasss: oh okey okey 2018-01-24T10:48:15Z phoe: megachombasss: you sound like staying on #clnoobs could benefit you as well (: 2018-01-24T10:48:32Z phoe: since #clnoobs is specialized for newbie questions 2018-01-24T10:50:55Z megachombasss: i have to create a lisp VM for like friday morning 2018-01-24T10:51:10Z phoe: megachombasss: good lords, what for? 2018-01-24T10:51:16Z megachombasss: i have a working virtual machine, trying to edit it, but its hard as fk when i dunnot master the language 2018-01-24T10:51:20Z phoe: and what does a VM mean? 2018-01-24T10:51:30Z phoe: ...in this context? 2018-01-24T10:51:44Z phoe: an interpreter for a language? 2018-01-24T10:51:44Z megachombasss: a virtual machine with registers 2018-01-24T10:51:58Z megachombasss: that takes ASM code and do the operations 2018-01-24T10:52:09Z Guest96407 joined #lisp 2018-01-24T10:52:15Z megachombasss: if you're interested in making some money , i can pay you like right now for help on this 2018-01-24T10:52:25Z megachombasss: my university year depends of this and im pretty fked right now 2018-01-24T10:52:27Z phoe: ooh, so some kind of bytecode interpreter. 2018-01-24T10:53:28Z phoe: megachombasss: thanks, I'll pass. 2018-01-24T10:53:37Z openthesky: lol 2018-01-24T10:54:26Z fikka quit (Ping timeout: 255 seconds) 2018-01-24T10:55:08Z PinealGlandOptic joined #lisp 2018-01-24T10:55:17Z krasnal quit (Ping timeout: 276 seconds) 2018-01-24T10:55:21Z Guest96407: megachombasss: have a look at http://www.informatimago.com/articles/usenet.html#Compilation 2018-01-24T10:55:26Z Guest96407 is now known as pjb 2018-01-24T10:56:08Z fikka joined #lisp 2018-01-24T10:56:15Z megachombasss: no need to do the compiler 2018-01-24T10:56:21Z megachombasss: just the VM would be enough 2018-01-24T10:56:36Z megachombasss: trying to modify it to make it look like mine, but hell its hard 2018-01-24T10:56:41Z pjb: megachombasss: the examples include VM! 2018-01-24T10:57:01Z phoe: >trying to modify it to make it look like mine 2018-01-24T10:57:20Z pjb: megachombasss: Do you have 0.2 BTC? 2018-01-24T10:58:33Z ghard joined #lisp 2018-01-24T10:58:35Z megachombasss: let me see how much is that 2018-01-24T10:58:46Z pjb: You're lucky it's dropping. 2018-01-24T10:59:11Z megachombasss: holly, 2000usd hurts butt 2018-01-24T10:59:24Z pjb: yes, thjat's by dayly rate. 2018-01-24T10:59:43Z pjb: Do it yourself it'll be more profitable in the long run. 2018-01-24T10:59:48Z phoe: ^ 2018-01-24T10:59:56Z megachombasss: im running out of time 2018-01-24T11:00:04Z megachombasss: kinda wasting more time understanding lisp 2018-01-24T11:00:08Z megachombasss: than the VM itself 2018-01-24T11:00:14Z megachombasss: for 0.02btc im up to do it 2018-01-24T11:00:25Z damke_ joined #lisp 2018-01-24T11:00:31Z beach: Understanding Lisp is not a waste of time. 2018-01-24T11:00:56Z Chream_ quit (Read error: Connection reset by peer) 2018-01-24T11:01:58Z phoe: megachombasss: I'm willing to answer your Lisp question, but unwilling to do your homework for you. 2018-01-24T11:02:04Z phoe: s/question/questions/ 2018-01-24T11:02:07Z Chream_ joined #lisp 2018-01-24T11:02:27Z megachombasss: well, i will come with lisp questions then, i'll try my best 2018-01-24T11:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-24T11:07:20Z Orion3k quit (Quit: Leaving) 2018-01-24T11:08:05Z orivej quit (Ping timeout: 240 seconds) 2018-01-24T11:10:39Z fikka quit (Ping timeout: 246 seconds) 2018-01-24T11:13:30Z megachombasss: does this returns the position of adr in :memtab or it returns the contenant of adr in :memtab ? (defun get-mem (mv adr) (aref (get mv :memtab) adr) ) 2018-01-24T11:15:49Z openthesky quit (Ping timeout: 260 seconds) 2018-01-24T11:15:53Z wxie joined #lisp 2018-01-24T11:16:27Z panji quit (Ping timeout: 240 seconds) 2018-01-24T11:17:17Z pjb: megachombasss: use the hyperspec. type: /msg specbot clhs aref 2018-01-24T11:17:19Z _cosmonaut_ quit (Ping timeout: 248 seconds) 2018-01-24T11:17:28Z FreeBirdLjj joined #lisp 2018-01-24T11:18:14Z pjb: aref is array indexing, get is key lookup in a property list. 2018-01-24T11:18:20Z pjb: megachombasss: so more like the later. 2018-01-24T11:19:03Z pjb: We say: It returns the ADR slot of the :MEMTAB vector of the symbol passed in MV. 2018-01-24T11:19:58Z aeth: I personally use l1sp to search, e.g. http://l1sp.org/search?q=aref 2018-01-24T11:20:48Z pjb: Sure, but then you have to switch to another emacs window… /msg can be typed in here, in your erc buffer. 2018-01-24T11:20:51Z pjb: ;-) 2018-01-24T11:20:53Z rumbler31 joined #lisp 2018-01-24T11:21:07Z aeth: l1sp also has PCL in the search results, which can be more helpful than the specification 2018-01-24T11:21:38Z fikka joined #lisp 2018-01-24T11:22:02Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-24T11:22:55Z milanj joined #lisp 2018-01-24T11:24:21Z angelo quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-24T11:25:25Z rumbler31 quit (Ping timeout: 265 seconds) 2018-01-24T11:25:59Z angelo joined #lisp 2018-01-24T11:26:29Z fikka quit (Ping timeout: 276 seconds) 2018-01-24T11:29:22Z whoman quit (Remote host closed the connection) 2018-01-24T11:29:48Z whoman joined #lisp 2018-01-24T11:31:07Z panji joined #lisp 2018-01-24T11:31:31Z megachombasss: so it does return whats in adr, and not the index of adr right? 2018-01-24T11:32:20Z nullman quit (Ping timeout: 260 seconds) 2018-01-24T11:34:11Z angelo: hi 2018-01-24T11:34:11Z openthesky joined #lisp 2018-01-24T11:34:25Z wxie quit (Remote host closed the connection) 2018-01-24T11:34:27Z Xal quit (Ping timeout: 240 seconds) 2018-01-24T11:34:43Z _cosmonaut_ joined #lisp 2018-01-24T11:35:03Z raynold quit (Quit: Connection closed for inactivity) 2018-01-24T11:37:07Z orivej joined #lisp 2018-01-24T11:37:17Z FreeBirdLjj joined #lisp 2018-01-24T11:37:28Z Xal joined #lisp 2018-01-24T11:37:46Z smasta joined #lisp 2018-01-24T11:41:05Z pjb: megachombasss: it returns what's in the vector obtained with (get mv :memtab), in its slot at the index ADR. 2018-01-24T11:41:48Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T11:41:54Z fikka joined #lisp 2018-01-24T11:42:23Z smasta quit (Ping timeout: 248 seconds) 2018-01-24T11:44:11Z nullman joined #lisp 2018-01-24T11:46:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-24T11:46:39Z tonton joined #lisp 2018-01-24T11:47:01Z FreeBirdLjj joined #lisp 2018-01-24T11:47:07Z Cymew quit (Remote host closed the connection) 2018-01-24T11:47:53Z pjb: megachombasss: you can draw little diagrams to better understand: http://sprunge.us/EOND 2018-01-24T11:49:48Z fikka joined #lisp 2018-01-24T11:50:07Z pilfink joined #lisp 2018-01-24T11:52:02Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-24T12:01:06Z FreeBirdLjj joined #lisp 2018-01-24T12:04:29Z python476 joined #lisp 2018-01-24T12:05:19Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-24T12:06:49Z EvW joined #lisp 2018-01-24T12:13:24Z panji left #lisp 2018-01-24T12:14:45Z FreeBirdLjj joined #lisp 2018-01-24T12:16:06Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T12:16:35Z dmiles quit (Ping timeout: 240 seconds) 2018-01-24T12:18:57Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T12:20:03Z red-dot joined #lisp 2018-01-24T12:20:55Z Cymew joined #lisp 2018-01-24T12:21:41Z rumbler31 joined #lisp 2018-01-24T12:22:22Z dmiles joined #lisp 2018-01-24T12:23:27Z zazzerino joined #lisp 2018-01-24T12:25:57Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-24T12:28:44Z luis` joined #lisp 2018-01-24T12:30:06Z FreeBirdLjj joined #lisp 2018-01-24T12:30:21Z luis` is now known as luis 2018-01-24T12:31:49Z smasta joined #lisp 2018-01-24T12:33:06Z paul0 joined #lisp 2018-01-24T12:34:00Z wxie joined #lisp 2018-01-24T12:34:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-24T12:35:23Z DeadTrickster quit (Ping timeout: 276 seconds) 2018-01-24T12:35:45Z __paul0 quit (Ping timeout: 264 seconds) 2018-01-24T12:35:55Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-24T12:36:28Z smasta quit (Ping timeout: 265 seconds) 2018-01-24T12:38:35Z wxie quit (Ping timeout: 240 seconds) 2018-01-24T12:40:50Z otwieracz: Do you have any idea how can I, without `osicat`, check if I don't have access to specific file or it does not exist? 2018-01-24T12:41:03Z otwieracz: Because for #'probe-file there's no difference 2018-01-24T12:45:28Z Xach: otwieracz: Are you looking for a "portable" way, or a "works for me on my implementation/OS combo" way? 2018-01-24T12:45:29Z FreeBirdLjj joined #lisp 2018-01-24T12:47:09Z makomo quit (Ping timeout: 264 seconds) 2018-01-24T12:47:14Z megachombasss: hum 2018-01-24T12:47:17Z megachombasss: i dont understand this 2018-01-24T12:47:18Z megachombasss: (defun load-machine (mv asm) (let ((exp asm) ;; copie (inst (car asm)) 2018-01-24T12:47:30Z megachombasss: wait, i rewrite 2018-01-24T12:47:52Z megachombasss: (defun load-machine (mv asm) (let ((exp asm) ) (inst (car asm)) 2018-01-24T12:48:05Z megachombasss: exp will have the same value than asm right? 2018-01-24T12:48:19Z wxie joined #lisp 2018-01-24T12:48:46Z attila_lendvai joined #lisp 2018-01-24T12:48:46Z attila_lendvai quit (Changing host) 2018-01-24T12:48:46Z attila_lendvai joined #lisp 2018-01-24T12:49:36Z otwieracz: Xach: not really - any modern linux is just enough. 2018-01-24T12:49:50Z otwieracz: Xach: osicat is problematic because it requires external library to be built. 2018-01-24T12:49:55Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-24T12:50:08Z jackdaniel: that could sb-posix for sbcl, don't know what helps with ccl 2018-01-24T12:53:03Z Shinmera: Could CFFI to fstat(2) 2018-01-24T12:53:31Z Shinmera: Or stat if you haven't opened yet. 2018-01-24T12:53:49Z rumbler31 joined #lisp 2018-01-24T12:55:32Z Shinmera: I suppose OPEN would also have to error if you don't have read access. 2018-01-24T12:55:53Z otwieracz: Unfortunately, no. 2018-01-24T12:55:57Z jackdaniel: yes, but you won't be able to extract the errno in a sensible manner 2018-01-24T12:56:06Z jackdaniel: you can parse a string, but this is dependent on system locale 2018-01-24T12:56:09Z openthesky quit (Ping timeout: 260 seconds) 2018-01-24T12:56:27Z jackdaniel: (and the error is all the same for file which doesn't exist and for file which you don't have permission to access) 2018-01-24T12:56:29Z otwieracz: Actually, for *open* it raises *no such file or directory* condition for ENOACCESS. 2018-01-24T12:56:36Z Shinmera: Oh 2018-01-24T12:56:45Z wxie quit (Ping timeout: 264 seconds) 2018-01-24T12:57:24Z fikka quit (Ping timeout: 268 seconds) 2018-01-24T12:57:49Z Shinmera feels the pressure to write a filesystem-utils library again. 2018-01-24T12:58:47Z otwieracz: Could you do this in, like, 1 hour? :) 2018-01-24T12:58:58Z otwieracz: Please? :) 2018-01-24T12:59:08Z Shinmera: Probably could if I was motivated to, but currently I got other things to attend to. 2018-01-24T13:00:14Z pjb: megachombasss: (defun load-machine (mv asm) (let ((exp asm) ) (inst (car asm)) ; is not a form, since it's missing closing parentheses. 2018-01-24T13:00:15Z wxie joined #lisp 2018-01-24T13:00:16Z fikka joined #lisp 2018-01-24T13:00:32Z FreeBirdLjj joined #lisp 2018-01-24T13:00:48Z pjb: megachombasss: (defun load-machine (mv asm) (let ((exp asm) ) (inst (car asm)))) ; is a form, in which the variable exp is unused. Therefore a lisp compiler may remove it altogether. 2018-01-24T13:00:50Z megachombasss: well the thing is longer 2018-01-24T13:00:53Z megachombasss: onesec 2018-01-24T13:01:01Z pjb: megachombasss: leaving: (defun load-machine (mv asm) (inst (car asm))) 2018-01-24T13:01:11Z pjb: megachombasss: you may use sprunge to paste code… 2018-01-24T13:01:16Z pjb: http://sprunge.us 2018-01-24T13:01:42Z Xach: otwieracz: what implementation? 2018-01-24T13:01:49Z megachombasss: https://codepaste.net/355q72 2018-01-24T13:02:39Z nowhereman_ quit (Ping timeout: 246 seconds) 2018-01-24T13:03:24Z pjb: megachombasss: instead of set-hash, we use (setf (gethash key table) value). 2018-01-24T13:03:44Z pjb: megachombasss: (gethash key table) is called a place; it's a form that can be read or written with setf. 2018-01-24T13:04:09Z megachombasss: yes yes, set-hach is a function that does (setf (gethash key table) value) 2018-01-24T13:04:12Z pjb: megachombasss: it less brain burden to use such places, rather than having different functions to read and write. 2018-01-24T13:04:23Z pjb: Don't introduce such set-hash functions… 2018-01-24T13:04:31Z megachombasss: im about to remplace all this useless functions 2018-01-24T13:04:41Z megachombasss: but its a bit clearer to read for me as its not my code for now 2018-01-24T13:04:42Z pjb: megachombasss: your case clauses are redundant. 2018-01-24T13:04:45Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T13:05:12Z pjb: megachombasss: they all contain the symbol CL:QUOTE. Only the first clause would be evaluated if (car inst) returned CL:QUOTE… 2018-01-24T13:05:21Z otwieracz: Xach: SBCL 2018-01-24T13:05:35Z Xach: otwieracz: sb-posix:stat may do what you need. 2018-01-24T13:05:54Z pjb: megachombasss: said otherwise, CASE clauses are not evaluated; you should not quote them. (case (car inst) ((@) (case-adr…)) ((varg) …) …) 2018-01-24T13:05:55Z paule32 joined #lisp 2018-01-24T13:06:02Z paule32: hello 2018-01-24T13:06:07Z Xach: otwieracz: you can extract the errno and get an error string, too, if you wish. 2018-01-24T13:06:33Z paule32: how is it possible to extend a list at runtime? 2018-01-24T13:06:37Z nowhereman_ joined #lisp 2018-01-24T13:06:47Z otwieracz: Xach: will see, thanks! 2018-01-24T13:07:12Z pjb: megachombasss: you can write instead (loop with etiqloc = (make-hash-table …) with etiqlocnr = … for inst on asm do (case (car inst) …)) 2018-01-24T13:07:32Z Xach: paule32: it is pretty easy to extend a list from the front by adding another cons there. it is a little less easy to do the same at the end (but not too hard) 2018-01-24T13:07:44Z pjb: megachombasss: oh: (loop with etiqloc = (make-hash-table …) with etiqlocnr = … initially (setf (gethash 'nb etiqlocnr) 0) for inst on asm do (case (car inst) …)) 2018-01-24T13:07:56Z paule32: hi Xach 2018-01-24T13:08:22Z paule32: i would like code for learning 2018-01-24T13:08:24Z paule32: eg. 2018-01-24T13:09:05Z paule32: user type in "cat is sleeping" 2018-01-24T13:09:37Z paule32: so the word catalog is lookup, if "cat" in list 2018-01-24T13:10:01Z paule32: is it, then add an other list with "is" ... 2018-01-24T13:10:28Z megachombasss: imma try to copy pasta that 2018-01-24T13:10:30Z pjb: megachombasss: more precisely: http://sprunge.us/MIKG 2018-01-24T13:10:52Z Xach: paule32: I don't understand, sorry. 2018-01-24T13:11:30Z pjb: megachombasss: notice that the initially clause is written after the for, but it's actually executed before (but after the for variables are created). 2018-01-24T13:12:24Z pjb: megachombasss: what I like to do when I create and initialize objects, is to do it in the same place with a LET like in: http://sprunge.us/HGLi 2018-01-24T13:12:28Z FreeBirdLjj joined #lisp 2018-01-24T13:12:31Z paule32: Xach: i have a "defvar" , that should be a word catalog, that can be extend at runtime, when user type in "cat", then the program shall search: "if cat exists" => if not => add the word 2018-01-24T13:12:35Z megachombasss: so if i coppy pasta this it does exactly the same function, but without useless clauses 2018-01-24T13:12:37Z pjb: megachombasss: notably if there's a lot of entries to fill in. 2018-01-24T13:13:04Z pjb: megachombasss: yes. The LOOP macro is sophisticated; it will expand to the equivalent let and assignments. 2018-01-24T13:13:12Z wxie: hi 2018-01-24T13:13:12Z wxie: Is single-float a class name in CL? 2018-01-24T13:13:30Z Xach: wxie: no 2018-01-24T13:13:50Z Xach: wxie: it might be in an implementation but is not specified to be by the standard (so you shouldn't rely on its classiness) 2018-01-24T13:13:55Z pjb: float is a system class, but not the subtypes. 2018-01-24T13:13:58Z windblow: is there any implementation that allows integration with C? i am thinking of starting to dive into AI, and figured that both makes a fairly good combo. 2018-01-24T13:14:00Z paule32: Xach, i get it, sorry for missunderstand 2018-01-24T13:14:15Z pjb: windblow: all implementations have a FFI to C. 2018-01-24T13:14:16Z windblow: windows is my target platform. 2018-01-24T13:14:17Z Xach: paule32: you could use (push "cat" *catalog*) 2018-01-24T13:14:21Z pjb: windblow: use CFFI to use them. 2018-01-24T13:14:35Z paule32: thx 2018-01-24T13:14:47Z Xach: windblow: most/all of them integrate with C, and CFFI is a library that presents a consistent interface for doing so. 2018-01-24T13:15:15Z windblow: thank you very much xach and pjb 2018-01-24T13:15:17Z Xach: It is fun to interactively load C libraries and interactively call C functions. 2018-01-24T13:16:12Z pjb: fun but dangerous. If you make a mistake, you crash like any other C program! 2018-01-24T13:16:44Z pjb: It's fun like wingsuit flying… 2018-01-24T13:16:47Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-24T13:17:36Z pilfink quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-24T13:18:30Z wxie quit (Ping timeout: 260 seconds) 2018-01-24T13:21:25Z makomo joined #lisp 2018-01-24T13:22:43Z wxie joined #lisp 2018-01-24T13:23:24Z wxie: Did I missed an answer for Is single-float a class name in CL? 2018-01-24T13:23:33Z Xach: wxie: maybe. i answered "no" 2018-01-24T13:23:37Z Xach: wxie: it is a type name. 2018-01-24T13:24:13Z jackdaniel: wxie: on some implementations make it a builtin-class, but assuming that is not portable 2018-01-24T13:24:25Z wxie: Xach: Thanks. 2018-01-24T13:25:33Z wxie: How could I use it in a class parameter? 2018-01-24T13:25:55Z papachan joined #lisp 2018-01-24T13:26:02Z smasta joined #lisp 2018-01-24T13:26:29Z wxie: like this one: (defmethod m* ((m matrix) (s real)) 2018-01-24T13:26:35Z Xach: wxie: you could not 2018-01-24T13:26:35Z pjb: classes don't have parameters. They have superclasses, slots, etc. 2018-01-24T13:26:38Z jackdaniel: portably you can't. non-portably if it works – it works 2018-01-24T13:26:46Z pjb: You can use the float class. 2018-01-24T13:26:50Z Xach: FLOAT is a system-class, though. 2018-01-24T13:28:47Z EvW quit (Ping timeout: 255 seconds) 2018-01-24T13:29:02Z megachombasss: pjb i got an error with your code. it says GETHASH: argument 0 is not a hash table 2018-01-24T13:29:27Z nullman quit (Ping timeout: 240 seconds) 2018-01-24T13:29:42Z pjb: megachombasss: oops, I forgot to return the table at the end of the LET form. 2018-01-24T13:29:46Z himmAllRight17_ quit (Remote host closed the connection) 2018-01-24T13:29:58Z pjb: add just TABLE after the SETF form. 2018-01-24T13:30:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-24T13:30:28Z pjb: Like this: http://sprunge.us/JcBQ 2018-01-24T13:30:35Z wxie: Xach: float works, but not single-float. Thanks, all. 2018-01-24T13:30:39Z nullman joined #lisp 2018-01-24T13:41:51Z orivej quit (Ping timeout: 248 seconds) 2018-01-24T13:43:34Z DeadTrickster joined #lisp 2018-01-24T13:44:59Z clarkema: Supposing I define a class in one package, and want to use (slot-value obj 'slot) in another package, is there anyway to do so without having to export symbols for each of the slot names? 2018-01-24T13:48:26Z clarkema: I've played around with a function that takes the slot-value symbol name and converts it to a symbol in the package in which the class is defined, but that seems like quite a bit of overhead for every access 2018-01-24T13:48:27Z phoe: clarkema: (slot-value obj 'foo::slot) 2018-01-24T13:48:34Z phoe: but don't do this. 2018-01-24T13:48:40Z EvW joined #lisp 2018-01-24T13:48:45Z phoe: :: means that you are using a package's internal symbols and not its external interface. 2018-01-24T13:48:45Z Colleen: Unknown command. Possible matches: 8, time, set, say, mop, get, login, grant, tell, roll, 2018-01-24T13:48:50Z phoe: Colleen: oh shush 2018-01-24T13:48:50Z Colleen: Unknown command. Possible matches: 8, clhs, set, say, mop, get, time, tell, roll, help, 2018-01-24T13:48:56Z phoe: ... 2018-01-24T13:49:12Z Shinmera: PRs to implement a natural language interface are welcome 2018-01-24T13:49:16Z phoe: clarkema: better if you use accessors, and export them. 2018-01-24T13:49:46Z phoe: Colleen: tell Colleen to learn English 2018-01-24T13:49:46Z Colleen: Colleen: Unknown command. Possible matches: 8, tell, roll, mop, time, set, say, get, login, hello, 2018-01-24T13:51:49Z clarkema: I'm tring to build a 'friendly' DSL for a certain task, so I already have a function that wraps around slot-value. In the DSL you call (attr OBJ 'slot) ATTR is mainly there to automatically handle the case of OBJ being nil in a sensible way, but it could be co-opted to do other munging if required 2018-01-24T13:53:47Z Xach: clarkema: and overhead is a big concern? 2018-01-24T13:54:18Z clarkema: Xach: probably not _huge_, I doubt reinterning the symbols would really hurt 2018-01-24T13:54:32Z clarkema: I was just wondeirng if there was a cleaner way 2018-01-24T13:55:57Z beach: clarkema: Yes, never access slots directly. They are implementation details. 2018-01-24T13:56:03Z beach: Use accessor functions instead. 2018-01-24T13:56:27Z Xach: clarkema: You could be cheeky and do it in SLOT-MISSING, so there's no overhead if there isn't a package issue involved. 2018-01-24T13:57:11Z phoe: ...I think I am close to using a method combination for the first time in my life. 2018-01-24T13:57:20Z Xach: i'm a sucker for working around design problems with clos features! 2018-01-24T13:58:00Z pjb: clarkema: why wouldn't you just export the slot names? 2018-01-24T13:58:09Z clarkema: Xach: ah, that's an interesting idea! I need a SLOT-MISSING anyway, so could add some extra magic to it 2018-01-24T13:58:23Z tfb: clarkema: if the slot names are part of the public interface of the class, then they should be exported 2018-01-24T13:58:47Z wxie quit (Remote host closed the connection) 2018-01-24T13:59:11Z clarkema: tfb: I guess it just feels like I'm polluting the name space that uses the class with some very common symbols, and I'm not sure whether that might bite me further down the road 2018-01-24T13:59:15Z pjb: I use a pjb-cl-expor-definition-at-point bound to H-e (or A-e when H- is not available) to do that easily. http://sprunge.us/bThV 2018-01-24T13:59:15Z beach: tfb: Yes, but the slot names should not be part of the public interface. 2018-01-24T13:59:58Z tfb: beach: then there should be accessors, which are, or something. My point was that if there's a public interface, that should be exported 2018-01-24T14:00:06Z pjb: clarkema: no polution, since you can always NOT use the package, and instead write (your-package:attr obj 'your-package:slot) 2018-01-24T14:00:13Z beach: tfb: Yes, correct. 2018-01-24T14:00:21Z pjb: clarkema: polution occurs when you mutate some global state. 2018-01-24T14:00:29Z clarkema: beach: they aren't, directly. The user never calls slot-value; they call a method called ATTR and supply the name of the attribute that they want 2018-01-24T14:00:48Z guicho joined #lisp 2018-01-24T14:00:55Z clarkema: the fact that this attribute is the same of the slot that holds a value is hidden 2018-01-24T14:01:01Z tfb: well those attribute names (which are slot names, right?) are the part of the public interface 2018-01-24T14:01:32Z pjb: Bow of course the advantage of using accessors, is that you can easily decorate them (have :around, :before, :after methods), and the accessor itself can be implemented to do more than reading or writing the slot (it can ensure consistency, updating other slots, or do some other computation or signaling, eg. in an observer pattern, etc). 2018-01-24T14:01:36Z pjb: s/Bow/Now/ 2018-01-24T14:01:56Z dieggsy joined #lisp 2018-01-24T14:07:00Z clarkema: Good points 2018-01-24T14:07:01Z clarkema: ta 2018-01-24T14:07:10Z Bike joined #lisp 2018-01-24T14:11:49Z windblow quit (Read error: Connection reset by peer) 2018-01-24T14:12:09Z windblow joined #lisp 2018-01-24T14:12:53Z dddddd joined #lisp 2018-01-24T14:17:36Z _paul0 joined #lisp 2018-01-24T14:19:36Z FreeBirdLjj joined #lisp 2018-01-24T14:20:13Z smasta joined #lisp 2018-01-24T14:20:15Z paul0 quit (Ping timeout: 248 seconds) 2018-01-24T14:20:48Z openthesky joined #lisp 2018-01-24T14:24:00Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-24T14:24:57Z smasta quit (Ping timeout: 264 seconds) 2018-01-24T14:25:19Z JuanDaugherty joined #lisp 2018-01-24T14:27:03Z angelo: hi 2018-01-24T14:31:56Z windblow quit (Read error: Connection reset by peer) 2018-01-24T14:32:18Z windblow joined #lisp 2018-01-24T14:34:02Z FreeBirdLjj joined #lisp 2018-01-24T14:36:00Z mnoonan joined #lisp 2018-01-24T14:36:29Z Bike: Yo, angelo. 2018-01-24T14:36:46Z angelo: :) 2018-01-24T14:38:12Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T14:41:00Z himmAllRight17 joined #lisp 2018-01-24T14:43:28Z nopoliti1 quit (Quit: WeeChat 1.9) 2018-01-24T14:45:53Z __rumbler31 joined #lisp 2018-01-24T14:50:16Z FreeBirdLjj joined #lisp 2018-01-24T14:50:19Z oleo joined #lisp 2018-01-24T14:51:14Z __rumbler31: good morning lisp! 2018-01-24T14:51:37Z oleo: sup sup 2018-01-24T14:54:55Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-24T14:55:33Z phoe: How can I access a slot's :INITFORM without instantiating a class which has that slot? 2018-01-24T14:55:44Z orivej joined #lisp 2018-01-24T14:55:47Z phoe: Can MOP help me here? 2018-01-24T14:56:49Z Shinmera: mop slot-definition-initfunction 2018-01-24T14:56:49Z specbot: http://metamodular.com/CLOS-MOP/slot-definition-initfunction.html 2018-01-24T14:56:52Z Shinmera: mop slot-definition-initform 2018-01-24T14:56:52Z specbot: http://metamodular.com/CLOS-MOP/slot-definition-initform.html 2018-01-24T14:56:58Z warweasle joined #lisp 2018-01-24T14:58:29Z phoe: Shinmera: thanks! 2018-01-24T14:59:27Z nowhereman_ quit (Read error: Connection reset by peer) 2018-01-24T14:59:37Z nowhereman_ joined #lisp 2018-01-24T15:00:46Z AxelAlex quit (Quit: AxelAlex) 2018-01-24T15:05:09Z turkja quit (Ping timeout: 264 seconds) 2018-01-24T15:05:36Z rippa joined #lisp 2018-01-24T15:06:10Z moei joined #lisp 2018-01-24T15:06:24Z sz0 joined #lisp 2018-01-24T15:08:05Z _cosmonaut_ quit (Ping timeout: 240 seconds) 2018-01-24T15:10:24Z saki quit (Quit: saki) 2018-01-24T15:11:47Z saki joined #lisp 2018-01-24T15:11:54Z saki quit (Client Quit) 2018-01-24T15:12:22Z saki joined #lisp 2018-01-24T15:12:31Z fikka quit (Ping timeout: 256 seconds) 2018-01-24T15:14:11Z sjl__ joined #lisp 2018-01-24T15:16:35Z iqubic quit (Ping timeout: 276 seconds) 2018-01-24T15:17:27Z Trystam joined #lisp 2018-01-24T15:18:37Z turkja joined #lisp 2018-01-24T15:20:29Z Tristam quit (Ping timeout: 276 seconds) 2018-01-24T15:20:41Z mathi_aihtam joined #lisp 2018-01-24T15:20:45Z mathi_aihtam quit (Remote host closed the connection) 2018-01-24T15:20:52Z Trystam is now known as Tristam 2018-01-24T15:22:03Z lnostdal joined #lisp 2018-01-24T15:32:50Z ghard quit (Ping timeout: 255 seconds) 2018-01-24T15:33:51Z brendyn quit (Ping timeout: 248 seconds) 2018-01-24T15:34:37Z smasta joined #lisp 2018-01-24T15:35:13Z phoe: Does any utility library provide something similar to WITH-ACCESSORS that simplifies things if the variable and the accessor name are the same? 2018-01-24T15:35:43Z phoe: I don't want to (with-accessors ((x x) (y y) (z z)) foo ...) where I can (with-accessors* (x y z) foo ...) 2018-01-24T15:36:58Z FreeBirdLjj joined #lisp 2018-01-24T15:36:59Z billitch joined #lisp 2018-01-24T15:37:20Z FreeBirdLjj quit (Client Quit) 2018-01-24T15:39:26Z smasta quit (Ping timeout: 276 seconds) 2018-01-24T15:40:34Z Bike: i haven't heard of that. it's like a two line definition tho. 2018-01-24T15:40:41Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T15:41:24Z phoe: Bike: almost everything is a two line definition in Lisp. I want to avoid following the NIH syndrome. 2018-01-24T15:41:38Z Bike: which is why i said the first thing 2018-01-24T15:41:49Z phoe: yep, I understand now. 2018-01-24T15:43:59Z Cymew quit (Remote host closed the connection) 2018-01-24T15:44:05Z Xal quit (Ping timeout: 240 seconds) 2018-01-24T15:47:18Z sjl__ is now known as sjl 2018-01-24T15:47:43Z Xach: phoe: you mean you want to mix things, where some are the same and some aren't? 2018-01-24T15:47:55Z Xach: (with-foo ((x y) z) ...)? 2018-01-24T15:48:02Z phoe: Xach: yes, this too. 2018-01-24T15:48:15Z phoe: your example could be equivalent to (with-foo ((x y) (z z)) ...) 2018-01-24T15:48:45Z Xach: so that rules out with-slots 2018-01-24T15:49:08Z phoe: sounds like a wrapper around WITH-ACCESSORS but I can bet $5 that someone has already written and published it. 2018-01-24T15:49:11Z phoe: just where. 2018-01-24T15:49:50Z Xach: For what little it's worth, I tend to think of using with-accessors as a wrong approach, falling into the "objects are buckets of slots" thinking I don't really like. 2018-01-24T15:50:58Z Xal joined #lisp 2018-01-24T15:51:14Z phoe: Xach: I'm defining a macro that will need some variables bound inside its body. I want with-accessors for that, since it uses symbol macros, which is good enough because the actual accessors will be called. 2018-01-24T15:51:27Z phoe: I'm just complaining about a minor syntactical annoyance. 2018-01-24T15:53:29Z raynold joined #lisp 2018-01-24T15:53:33Z red-dot joined #lisp 2018-01-24T15:56:17Z eivarv joined #lisp 2018-01-24T15:56:19Z Cymew joined #lisp 2018-01-24T15:56:48Z eivarv quit (Client Quit) 2018-01-24T15:56:57Z smasta joined #lisp 2018-01-24T15:56:59Z syssiphus quit (Quit: Leaving) 2018-01-24T15:58:46Z FreeBirdLjj joined #lisp 2018-01-24T15:58:55Z orivej quit (Ping timeout: 248 seconds) 2018-01-24T16:00:35Z Cymew quit (Ping timeout: 240 seconds) 2018-01-24T16:01:57Z pjb: I have a with-slots macro that does that… 2018-01-24T16:02:13Z nowhereman_ quit (Read error: Connection reset by peer) 2018-01-24T16:02:23Z Cymew joined #lisp 2018-01-24T16:02:36Z pjb: Err, no, it's in CL:WITH-SLOTS… 2018-01-24T16:03:33Z nowhereman_ joined #lisp 2018-01-24T16:03:34Z pjb: phoe: minor syntactical annoyances are not to be complained about, they're to be avoided with DEFMACRO! 2018-01-24T16:03:38Z pjb: phoe: this is not ##c. 2018-01-24T16:04:33Z saki quit (Remote host closed the connection) 2018-01-24T16:05:21Z dieggsy quit (Ping timeout: 246 seconds) 2018-01-24T16:06:12Z saki joined #lisp 2018-01-24T16:07:10Z orivej joined #lisp 2018-01-24T16:07:20Z Cymew quit (Ping timeout: 268 seconds) 2018-01-24T16:07:24Z dec0n quit (Read error: Connection reset by peer) 2018-01-24T16:08:31Z Cymew joined #lisp 2018-01-24T16:10:17Z Murii quit (Quit: WeeChat 1.4) 2018-01-24T16:12:26Z fikka joined #lisp 2018-01-24T16:12:35Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-24T16:13:02Z Cymew quit (Ping timeout: 255 seconds) 2018-01-24T16:13:27Z billitch quit (Ping timeout: 240 seconds) 2018-01-24T16:13:56Z JonSmith joined #lisp 2018-01-24T16:14:27Z nowhereman_ joined #lisp 2018-01-24T16:14:30Z Cymew joined #lisp 2018-01-24T16:16:23Z eivarv joined #lisp 2018-01-24T16:16:24Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-24T16:16:54Z EvW quit (Ping timeout: 246 seconds) 2018-01-24T16:18:14Z attila_lendvai joined #lisp 2018-01-24T16:18:15Z attila_lendvai quit (Changing host) 2018-01-24T16:18:15Z attila_lendvai joined #lisp 2018-01-24T16:18:26Z flamebeard quit (Quit: Leaving) 2018-01-24T16:18:57Z Cymew quit (Ping timeout: 264 seconds) 2018-01-24T16:20:19Z guicho quit (Remote host closed the connection) 2018-01-24T16:20:33Z Cymew joined #lisp 2018-01-24T16:24:23Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-24T16:24:25Z nowhere_man joined #lisp 2018-01-24T16:24:57Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-24T16:25:00Z FreeBirdLjj joined #lisp 2018-01-24T16:25:03Z Cymew quit (Ping timeout: 256 seconds) 2018-01-24T16:26:09Z orivej quit (Ping timeout: 264 seconds) 2018-01-24T16:26:57Z dyelar quit (Quit: Leaving.) 2018-01-24T16:27:32Z Cymew joined #lisp 2018-01-24T16:29:09Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2018-01-24T16:31:59Z Cymew quit (Ping timeout: 248 seconds) 2018-01-24T16:33:32Z dyelar joined #lisp 2018-01-24T16:33:35Z Cymew joined #lisp 2018-01-24T16:37:54Z Cymew quit (Ping timeout: 246 seconds) 2018-01-24T16:38:35Z oleo quit (Ping timeout: 276 seconds) 2018-01-24T16:39:09Z Denommus joined #lisp 2018-01-24T16:39:31Z Cymew joined #lisp 2018-01-24T16:39:45Z Denommus quit (Client Quit) 2018-01-24T16:39:49Z Chream_ quit (Read error: Connection reset by peer) 2018-01-24T16:40:02Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-24T16:40:22Z Denommus joined #lisp 2018-01-24T16:41:15Z nullman quit (Ping timeout: 268 seconds) 2018-01-24T16:41:34Z Denommus quit (Client Quit) 2018-01-24T16:42:20Z Denommus joined #lisp 2018-01-24T16:42:25Z attila_lendvai joined #lisp 2018-01-24T16:42:54Z nullman joined #lisp 2018-01-24T16:43:32Z Folkol joined #lisp 2018-01-24T16:44:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-24T16:45:39Z Cymew joined #lisp 2018-01-24T16:48:53Z paule32: hello 2018-01-24T16:49:05Z paule32: follwing code: https://pastebin.com/2hYKUrSN 2018-01-24T16:49:31Z paule32: hiw can i make a structure with a hash? 2018-01-24T16:49:39Z paule32: how 2018-01-24T16:49:52Z paule32: i have a super "catalog" 2018-01-24T16:50:11Z Cymew quit (Ping timeout: 256 seconds) 2018-01-24T16:50:27Z paule32: this catalog divides into "animal" and/or "plants" 2018-01-24T16:50:40Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-24T16:51:15Z paule32: the name of the animal should take a "state" 2018-01-24T16:51:20Z paule32: 0 or 1 2018-01-24T16:51:57Z bgardner quit (Ping timeout: 264 seconds) 2018-01-24T16:52:15Z paule32: the problem i have, is, how to add/update the structure, if it a map-hash-table 2018-01-24T16:52:26Z warweasle: I just solved a problem using lisp. I needed multiple "virtual channels" through a serial port. I can use lisp on the server side to parse out (channel . data). 2018-01-24T16:53:20Z attila_lendvai joined #lisp 2018-01-24T16:53:20Z attila_lendvai quit (Changing host) 2018-01-24T16:53:20Z attila_lendvai joined #lisp 2018-01-24T16:53:44Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T16:53:55Z __rumbler31: warweasle you have lisp code talking on a serial port? 2018-01-24T16:54:13Z Xach: warweasle: cool 2018-01-24T16:54:29Z Xach: hey warweasle! i have a bug for you!! 2018-01-24T16:54:41Z red-dot joined #lisp 2018-01-24T16:55:18Z Xach: http://report.quicklisp.org/2018-01-23/failure-report/squirl.html#squirl.demo-2 2018-01-24T16:55:19Z Xach: ; Constant 1.0 conflicts with its asserted type DOUBLE-FLOAT. 2018-01-24T16:56:03Z warweasle: Xach: ? 2018-01-24T16:56:41Z fikka quit (Ping timeout: 255 seconds) 2018-01-24T16:56:46Z warweasle: __rumbler31: I will shortly. I can't be on two networks at once becuase the IT department will shut the second one down. So I'm going to bypass it with a serial port. 2018-01-24T16:56:57Z warweasle: Xach: What do I need to fix? 2018-01-24T16:57:08Z zazzerino: paule32: try reading http://cl-cookbook.sourceforge.net/hashes.html 2018-01-24T16:57:37Z __rumbler31: warweasle: are you just talking over /dev/tty or whatnot? 2018-01-24T16:57:55Z paule32: zazzerino: thank you, i did it done, but put a it to struct image ... 2018-01-24T16:57:57Z shifty quit (Ping timeout: 265 seconds) 2018-01-24T16:58:27Z warweasle: __rumbler31: I will be. 2018-01-24T16:59:02Z warweasle: __rumbler31: I'm going to use named pipes on the unix side. 2018-01-24T17:00:15Z __rumbler31: one thing thats always been a mystery to me is how to correctly set serial speed settings without writing c code, and it seems to be different all the time. Does the terminal that will be talking to the device need "its" speed set with stty? or does stty configure the speed of a /dev/tty for which all other accesses will be correct? 2018-01-24T17:00:23Z __rumbler31: and in hindsight this is totally off topic 2018-01-24T17:04:08Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-24T17:04:38Z Denommus quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2018-01-24T17:05:25Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-24T17:06:32Z attila_lendvai joined #lisp 2018-01-24T17:06:32Z attila_lendvai quit (Changing host) 2018-01-24T17:06:32Z attila_lendvai joined #lisp 2018-01-24T17:07:08Z sjl: warweasle: these struct slots are of type double-float, but whatever lisp xach is running the tests in has *read-default-float-format* as something else (e.g. by default SBCL is SINGLE-FLOAT I think) 2018-01-24T17:07:49Z sjl: so the bare "1.0" in the demo reads as a single-float 2018-01-24T17:10:07Z DeadTrickster_ joined #lisp 2018-01-24T17:10:08Z Xach: sjl, warweasle: well, there's also a "200" in there, an integer... 2018-01-24T17:10:48Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-24T17:11:31Z sjl: heh, also that 2018-01-24T17:13:47Z turkja quit (Ping timeout: 256 seconds) 2018-01-24T17:13:47Z DeadTrickster quit (Ping timeout: 256 seconds) 2018-01-24T17:13:57Z warweasle: sjl: I don't know the topic or what the question is. 2018-01-24T17:14:30Z Xach: warweasle: the topic is squirl demo 2 does not build because of float and integer literals in the code that don't match the declared types. 2018-01-24T17:14:44Z sjl: warweasle: the bug Xach mentioned 15 minutes ago, and you asked what you needed to fix. 2018-01-24T17:17:09Z vertigo quit (Ping timeout: 264 seconds) 2018-01-24T17:17:17Z ineiros quit (Ping timeout: 265 seconds) 2018-01-24T17:18:34Z solyd joined #lisp 2018-01-24T17:19:14Z phoe: pjb: right. on ##c, I would complain about minor syntactical annoyances. on #lisp, I complain about me having to write the DEFMACRO myself and contributing to the global NIH. 2018-01-24T17:19:42Z ineiros joined #lisp 2018-01-24T17:20:18Z Karl_Dscc joined #lisp 2018-01-24T17:20:27Z clarkema quit (Quit: clarkema) 2018-01-24T17:20:57Z warweasle: Sorry, was distracted. 2018-01-24T17:21:33Z Denommus joined #lisp 2018-01-24T17:22:46Z warweasle: I haven't looked at this in forever. I don't think anyone uses it. Cl-chipmunk has replaced it. 2018-01-24T17:23:21Z fikka joined #lisp 2018-01-24T17:23:22Z newcup joined #lisp 2018-01-24T17:23:58Z warweasle: I'll see what I can do tonight to get is working again...but it's strange this suddenly broke. Or was this the first time in quicklisp? 2018-01-24T17:24:11Z smurfrobot quit (Remote host closed the connection) 2018-01-24T17:25:35Z _paul0 quit (Quit: Leaving) 2018-01-24T17:28:16Z smurfrobot joined #lisp 2018-01-24T17:33:42Z shrdlu68 joined #lisp 2018-01-24T17:35:56Z attila_lendvai quit (Quit: Leaving.) 2018-01-24T17:37:08Z Xach: warweasle: no, it's been broken forever 2018-01-24T17:37:14Z Xach: warweasle: i'm going through a backlog 2018-01-24T17:37:26Z Xach: warweasle: there are a ton of demo, test, and ancillary system failures that I have mostly ignored 2018-01-24T17:37:30Z smasta quit (Ping timeout: 260 seconds) 2018-01-24T17:38:06Z smasta joined #lisp 2018-01-24T17:39:06Z warweasle: Xach: I don't think it's used. You can remove it if you like. CL-chipmunk does the same thing faster. 2018-01-24T17:39:15Z Xach: Ok, thanks 2018-01-24T17:40:04Z warweasle: Xach: I'm out of open source development for now. I don't know how long that will last. But I've been swamped with other projects. I miss lisp however. 2018-01-24T17:40:25Z Xach: warweasle: Ok, no worries! 2018-01-24T17:41:38Z al-damiri joined #lisp 2018-01-24T17:45:29Z megachombasss quit (Ping timeout: 260 seconds) 2018-01-24T17:47:05Z hhdave quit (Ping timeout: 240 seconds) 2018-01-24T17:47:05Z warweasle: Ok, it's replaced with bodge-chipmunk 2018-01-24T17:48:18Z vertigo joined #lisp 2018-01-24T17:49:53Z cromachina_ joined #lisp 2018-01-24T17:51:16Z jstypo quit (Read error: Connection reset by peer) 2018-01-24T17:53:05Z cromachina quit (Ping timeout: 248 seconds) 2018-01-24T17:53:59Z drewc_ joined #lisp 2018-01-24T17:54:54Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-24T17:55:00Z smasta quit (Ping timeout: 260 seconds) 2018-01-24T17:55:27Z smasta joined #lisp 2018-01-24T17:56:39Z varjag joined #lisp 2018-01-24T17:56:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-24T17:57:19Z drewc quit (Ping timeout: 248 seconds) 2018-01-24T17:58:20Z openthesky quit (Quit: Page closed) 2018-01-24T17:58:54Z LiamH joined #lisp 2018-01-24T18:00:38Z zazzerino left #lisp 2018-01-24T18:02:47Z fikka joined #lisp 2018-01-24T18:07:58Z jstypo joined #lisp 2018-01-24T18:12:30Z cromachina joined #lisp 2018-01-24T18:13:06Z cromachina_ quit (Ping timeout: 246 seconds) 2018-01-24T18:14:02Z troydm quit (Ping timeout: 276 seconds) 2018-01-24T18:15:31Z shka joined #lisp 2018-01-24T18:17:24Z oleo joined #lisp 2018-01-24T18:26:47Z Karl_Dscc quit (Remote host closed the connection) 2018-01-24T18:35:28Z fikka quit (Ping timeout: 252 seconds) 2018-01-24T18:35:57Z Denommus quit (Ping timeout: 268 seconds) 2018-01-24T18:40:43Z shka: good evening 2018-01-24T18:41:28Z alexmlw joined #lisp 2018-01-24T18:43:29Z fikka joined #lisp 2018-01-24T18:43:39Z alexmlw quit (Client Quit) 2018-01-24T18:44:03Z alexmlw joined #lisp 2018-01-24T18:44:28Z __rumbler31: warweasle: what is taking up your time? 2018-01-24T18:45:24Z alexmlw quit (Client Quit) 2018-01-24T18:47:34Z Jesin joined #lisp 2018-01-24T18:58:12Z warweasle: __rumbler31: I'm doing game development in Unreal and blender. 2018-01-24T18:58:34Z warweasle: That and work and family take more time than I have. 2018-01-24T19:01:33Z nowhere_man quit (Ping timeout: 264 seconds) 2018-01-24T19:04:23Z __rumbler31: right on 2018-01-24T19:05:59Z smasta quit (Ping timeout: 256 seconds) 2018-01-24T19:06:07Z jstypo quit (Quit: I think, therefore I drink) 2018-01-24T19:07:31Z |3b|: warweasle: not sure "use ffi to do 2d physics" is exactly a replacement for "do 2d physics without using ffi" :) 2018-01-24T19:11:26Z warweasle: |3b|: It is when I have never understood the code. Mostly I just fiddled with things until squirl worked. 2018-01-24T19:14:06Z |3b|: yeah, not suggesting you should be required to maintain it :) 2018-01-24T19:14:31Z |3b|: maybe lispgames could take over if you no longer have time, though not sure anyone else there has all that much extra time either 2018-01-24T19:17:50Z EvW1 joined #lisp 2018-01-24T19:17:57Z smasta joined #lisp 2018-01-24T19:19:17Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-24T19:20:11Z warweasle: |3b|: The problem is the lisp curse. We all have individual projects but no community accepted game engine. CEPL is about as close as we have. I think bodge has a fairly nice system but I don't know. I've been out of lispgame dev for a few months now. 2018-01-24T19:20:23Z warweasle: I've been busy learning blender and unreal engine. 2018-01-24T19:22:40Z Chream_ joined #lisp 2018-01-24T19:22:49Z varjagg joined #lisp 2018-01-24T19:25:30Z borodust: warweasle: if only there would have been any engine to accept ;p 2018-01-24T19:25:57Z varjag quit (Ping timeout: 240 seconds) 2018-01-24T19:28:27Z solyd quit (Ping timeout: 240 seconds) 2018-01-24T19:31:31Z warweasle: borodust: True...but it takes a few people to build a whole one. I wasn't up to the task. To be blunt, I'm likely not up to the task I'm doing now. But I've obsessed over it. 2018-01-24T19:31:43Z warweasle: It's the reason I wanted to make a game engine to start with. 2018-01-24T19:32:54Z LocaMocha quit (Ping timeout: 246 seconds) 2018-01-24T19:34:12Z orivej joined #lisp 2018-01-24T19:34:38Z Olgierd quit (Quit: WeeChat 1.9.1) 2018-01-24T19:38:57Z smasta quit (Ping timeout: 240 seconds) 2018-01-24T19:41:45Z saki quit (Ping timeout: 264 seconds) 2018-01-24T19:48:43Z PuercoPope joined #lisp 2018-01-24T19:49:39Z razzy quit (Remote host closed the connection) 2018-01-24T19:50:03Z razzy joined #lisp 2018-01-24T19:59:09Z vlatkoB quit (Remote host closed the connection) 2018-01-24T20:00:57Z JonSmith quit (Ping timeout: 240 seconds) 2018-01-24T20:01:55Z damke joined #lisp 2018-01-24T20:02:21Z smasta joined #lisp 2018-01-24T20:04:15Z solyd joined #lisp 2018-01-24T20:04:33Z damke_ quit (Ping timeout: 263 seconds) 2018-01-24T20:05:19Z igemnace joined #lisp 2018-01-24T20:07:35Z smasta quit (Ping timeout: 240 seconds) 2018-01-24T20:12:46Z nullman quit (Ping timeout: 268 seconds) 2018-01-24T20:14:05Z nullman joined #lisp 2018-01-24T20:15:00Z JonSmith joined #lisp 2018-01-24T20:17:52Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-24T20:20:00Z fiveop joined #lisp 2018-01-24T20:20:52Z fiveop: Xach: what is the simplest way to fetch the whole quicklisp dist into /dist/quicklisp/software ? 2018-01-24T20:21:41Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-24T20:22:09Z Xach: fiveop: ql-dist::(map nil 'ensure-installed (provided-releases (dist "quicklisp"))) 2018-01-24T20:22:35Z pjb: I do (quick-install-all) 2018-01-24T20:23:08Z PinealGlandOptic quit (Quit: leaving) 2018-01-24T20:25:12Z fiveop: thanks 2018-01-24T20:25:17Z smasta joined #lisp 2018-01-24T20:25:53Z fiveop: I want a big test set for my s-expression matching code :) 2018-01-24T20:26:42Z Jesin quit (Quit: Leaving) 2018-01-24T20:27:07Z fiveop: This will match potential canidates for replacement by alexandria's curry for example '(:list lambda (:list (:register 0 :everything)) (:list :everything (:non-greedy-repetition 0 nil :everything) (:back-reference 0)))) 2018-01-24T20:27:48Z fiveop: wait, that should be '(:list lambda (:list (:register 0 :everything)) (:list (:non-greedy-repetition 2 nil :everything) (:back-reference 0)))) 2018-01-24T20:34:53Z Xach: fiveop: that is a little tricky to decode 2018-01-24T20:35:08Z Xach: fiveop: i would really love to see a cool s-expression search syntax. 2018-01-24T20:35:26Z __rumbler31: like xpath? 2018-01-24T20:35:46Z Xach: I'm not familiar with xpath. 2018-01-24T20:36:05Z fiveop: the problem is differentiating between lists and sequences 2018-01-24T20:36:16Z jasom: Xach: xpath is a search syntax for xml 2018-01-24T20:36:22Z __rumbler31: xpath is a query syntax for xml documents 2018-01-24T20:36:31Z Xach: Is it cool? 2018-01-24T20:36:34Z aeth: foo::(+ 1 1) is valid syntax? Wow. 2018-01-24T20:36:46Z Shinmera: aeth: Only in implementations with that extension 2018-01-24T20:36:46Z Xach: aeth: only on sbcl, allegro, and possibly some other systems. 2018-01-24T20:36:51Z phoe: aeth: not standard 2018-01-24T20:37:05Z Xach: I hope it's clear what I mean when I use it, even on systems that don't support it. 2018-01-24T20:37:09Z Jesin joined #lisp 2018-01-24T20:37:19Z Xach: allegroserve has some foo:: syntax baked into its sources :( 2018-01-24T20:37:20Z Shinmera: Xach: I wouldn't say xpath is cool, but then again anything associated with xml sucks a lot, so by comparison I guess it's ok. 2018-01-24T20:37:37Z Xach: Would xpath be a good model for an s-expression query syntax? 2018-01-24T20:37:44Z Shinmera: I don't think so 2018-01-24T20:38:02Z __rumbler31: Xach: I haven't personally needed it but it lets you say things like "/A/B/C" which returns all child objects of type C from all objects of type B from toplevel object A 2018-01-24T20:38:21Z Shinmera: Xpath is very specific to XML 2018-01-24T20:38:37Z smasta quit (Quit: WeeChat 2.0.1) 2018-01-24T20:39:15Z dim: what about using pattern matching tools such as optima etc? 2018-01-24T20:39:15Z fiveop: Xach: I tried to make the syntax as close as possible to cl-ppcre parse-trees 2018-01-24T20:39:22Z Xach: I have a test set up for RSS feeds for quicklisp build failures 2018-01-24T20:39:26Z __rumbler31: but the concept maps I feel, imagine a query string of (* (* ('foo))) which will give you all foo children of all children of some top level 2018-01-24T20:39:27Z fiveop: many are probably familiar with it 2018-01-24T20:39:29Z dim: I though those tools would allow for some s-exp matching already 2018-01-24T20:39:40Z dieggsy joined #lisp 2018-01-24T20:39:44Z __rumbler31: the point is that xpath is a syntax for collecting nodes of an xml tree 2018-01-24T20:40:02Z Xach: Hmm, I need to publish empty feeds for non-failing upstream sources! 2018-01-24T20:40:08Z orivej quit (Ping timeout: 252 seconds) 2018-01-24T20:40:23Z smasta joined #lisp 2018-01-24T20:40:31Z fiveop: I don't want to collect them. I want to match them against patterns. 2018-01-24T20:40:46Z __rumbler31: er like destructuring bind? 2018-01-24T20:40:51Z fiveop: but better 2018-01-24T20:40:51Z __rumbler31: nm 2018-01-24T20:41:13Z fiveop: You cannot do what I did above with destructuring bind 2018-01-24T20:42:20Z __rumbler31: i'm not quite sure what you're trying to do, given an sexp with nested sexps you want to apply a matcher and get what back 2018-01-24T20:43:39Z fiveop: '(:list (:register 0 (:sequence (:register 1 :everything) (:non-greedy-repetition 0 nil (:back-reference 1)))) (:back-reference 0)) 2018-01-24T20:44:00Z fiveop: that matches every list that has an even number (at least 2) of elements that are all #'equal to each other 2018-01-24T20:44:07Z __rumbler31: oh you're making a sexp version of what cl-ppcre expects for a regex 2018-01-24T20:44:14Z fiveop: you could do that differently I guess :P 2018-01-24T20:44:18Z fiveop: (simpler) 2018-01-24T20:44:24Z fiveop: __rumbler31: exactly 2018-01-24T20:44:30Z fiveop: that's what I did (to a certain degree) 2018-01-24T20:44:54Z __rumbler31: where the elements of the lists are equal to each other, or each list is equal to each other list? 2018-01-24T20:45:02Z fiveop: there is just one list 2018-01-24T20:45:06Z fiveop: the elements are equal 2018-01-24T20:45:24Z __rumbler31: oh i see 2018-01-24T20:47:24Z fiveop: though you could do that with LENGTH, EQUAL, and EVERY as well, so that might not be that good of an example 2018-01-24T20:48:49Z fiveop: What prompted me to start was the lack of complexity expressible in macro lambda-lists 2018-01-24T20:50:04Z fiveop: I would like to write at the beginning of a macro that expects complex structure in its input something like (unless (match *macro-arg-pattern* macro-arg) (error "invalid arg to macro foo")) 2018-01-24T20:50:57Z EvW1 quit (Ping timeout: 246 seconds) 2018-01-24T20:51:24Z fiveop: and since there is (:register ) match can actually be used to destructure it as well 2018-01-24T20:52:28Z fiveop: (up to repetitions, that's a problem) 2018-01-24T20:53:15Z fiveop: Xach: how many MB/GB am I going to need for the whole quicklisp corpus? 2018-01-24T20:53:28Z _main_ joined #lisp 2018-01-24T20:53:51Z EvW joined #lisp 2018-01-24T20:53:58Z Xach: fiveop: 1.2GB 2018-01-24T20:54:01Z Xach: ish 2018-01-24T20:54:59Z windblow quit (Ping timeout: 256 seconds) 2018-01-24T20:55:30Z aeth: pillton: Is it intentional that (declare (optimize (speed 3))) works in specialization-store or is that an unintended side-effect of how you wrote it? It's probably great that the user can control the optimization level because sometimes that's necessary (at least in some implementations) 2018-01-24T20:55:46Z aeth: However, if optimization declarations are allowed, type declarations are allowed, too! 2018-01-24T20:56:09Z aeth: (defstore foo (x y)) (defspecialization (foo :name %foo/single-float) ((x single-float) (y single-float)) single-float (declare (optimize (speed 3)) (double-float x)) (+ x y)) 2018-01-24T20:56:33Z __main__ quit (Ping timeout: 246 seconds) 2018-01-24T20:56:51Z aeth: In SBCL, this breaks specialization-store. (foo 2d0 2f0) looks for a specialization that doesn't exist and (foo 1f0 2f0) complains that 1f0 isn't double-float 2018-01-24T20:56:58Z fiveop: thank you for the quicklisp help and thank you for the interesting feedback 2018-01-24T20:57:20Z fiveop quit 2018-01-24T20:58:02Z _main_ is now known as __main__ 2018-01-24T20:58:58Z __main__ quit (Read error: Connection reset by peer) 2018-01-24T20:59:26Z __main__ joined #lisp 2018-01-24T21:09:08Z karswell_ joined #lisp 2018-01-24T21:11:08Z smasta quit (Quit: WeeChat 2.0.1) 2018-01-24T21:11:39Z smasta joined #lisp 2018-01-24T21:12:21Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-24T21:15:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-24T21:16:20Z pagnol joined #lisp 2018-01-24T21:16:48Z windblow joined #lisp 2018-01-24T21:18:09Z Admin__ joined #lisp 2018-01-24T21:19:17Z mfiano quit (Quit: WeeChat 1.9.1) 2018-01-24T21:19:28Z mfiano joined #lisp 2018-01-24T21:19:30Z mfiano quit (Client Quit) 2018-01-24T21:19:50Z fikka joined #lisp 2018-01-24T21:22:58Z warweasle quit (Quit: snooch!) 2018-01-24T21:23:35Z alandipert quit (Quit: Ping timeout (120 seconds)) 2018-01-24T21:23:45Z pierpa joined #lisp 2018-01-24T21:24:12Z alandipert joined #lisp 2018-01-24T21:24:15Z mishoo_ quit (Ping timeout: 248 seconds) 2018-01-24T21:25:35Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-24T21:26:01Z mfiano joined #lisp 2018-01-24T21:26:10Z dented42 joined #lisp 2018-01-24T21:26:20Z solyd quit (Quit: solyd) 2018-01-24T21:31:05Z shka quit (Ping timeout: 268 seconds) 2018-01-24T21:31:49Z AndreasO joined #lisp 2018-01-24T21:34:17Z AndreasO quit (Client Quit) 2018-01-24T21:38:00Z Xach: Shinmera: http://report.quicklisp.org/feeds/Shinmera.rss 2018-01-24T21:38:18Z dieggsy quit (Remote host closed the connection) 2018-01-24T21:39:09Z Shinmera: I suppose I should be happy that I can't tell if that'll actually tell me if there's a failure going on 2018-01-24T21:40:11Z Xach: If it's empty, it means none of your projects has a failure right now. 2018-01-24T21:40:18Z Xach: It will be updated daily. 2018-01-24T21:40:18Z Shinmera: Yeah, that's what I mean. 2018-01-24T21:40:51Z Shinmera: Anyway, thanks! Hopefully you won't have to manually bother me about failures anymore now. 2018-01-24T21:42:36Z Xach: http://report.quicklisp.org/feeds/hu.dwim.rss for example has some stuff 2018-01-24T21:43:40Z orivej joined #lisp 2018-01-24T21:44:57Z Xach: Hmm 2018-01-24T21:45:00Z Xach has some bugs to report 2018-01-24T21:45:08Z Shinmera: What's the rationale for not including the build log in the feed items? 2018-01-24T21:46:10Z fikka quit (Quit: leaving) 2018-01-24T21:46:28Z fikka joined #lisp 2018-01-24T21:49:19Z Baggers joined #lisp 2018-01-24T21:49:27Z dim: wow, I think I managed to make quite some progress on my pgloader COPY batch crazyness, now streaming the bytes directly down the protocol when on-error-stop is picked (default in db-2-db cases) rather than the classis on-error-resume-next 2018-01-24T21:49:47Z dim: better memory usage for sure, maybe better perfs too 2018-01-24T21:49:58Z dim: (seems that way here, but my test cases suck) 2018-01-24T21:51:29Z dim: https://github.com/dimitri/pgloader/blob/master/src/pg-copy/copy-db-write.lisp --- parts of the inner magic, for perf comments inclined people ;-) 2018-01-24T21:54:03Z billitch joined #lisp 2018-01-24T21:57:11Z Admin__ quit (Quit: Admin__) 2018-01-24T21:58:50Z __rumbler31: read through this, your defun descriptions are the same paragraph. Also, was there anything more to your optimizations than including the right (declare... options? 2018-01-24T21:59:13Z dim: yeah, lots, but it's spread in like 4 different patches 2018-01-24T21:59:16Z dim: https://github.com/dimitri/pgloader/commits/master 2018-01-24T21:59:25Z dim: it's mainly arranging things to do less work 2018-01-24T21:59:25Z __rumbler31: er that might have sounded belittling. I'm a novice at this, so the most obvious signal is the declare forms 2018-01-24T21:59:31Z dim: not just localized code edits 2018-01-24T21:59:45Z __rumbler31: ah 2018-01-24T21:59:47Z dim: declare is like trying to get at the last 1% maybe 2018-01-24T22:00:01Z dim: there's no “turbo“ button anymore on our computers 2018-01-24T22:00:11Z __rumbler31: lol 2018-01-24T22:00:24Z dim: the only way to make a program faster is to reduce the amount of work it's doing 2018-01-24T22:00:43Z dim: sometimes just not doing anything if you can accept that ;-) 2018-01-24T22:00:52Z eschatologist quit (Remote host closed the connection) 2018-01-24T22:01:40Z eschatologist joined #lisp 2018-01-24T22:01:56Z dim: https://imgur.com/zAaK1HM for the turbo thing, if for reasons you don't remember about that... 2018-01-24T22:02:23Z _death: is safety 0 really worth it 2018-01-24T22:02:28Z windblow quit (Read error: Connection reset by peer) 2018-01-24T22:02:40Z __rumbler31: i'm old enough to have seen that 2018-01-24T22:02:51Z __rumbler31: young enough for it to have gone away before I fully understood what it did 2018-01-24T22:03:14Z dim: _death: no idea, I copied from Postmodern code in trivial utf-8 2018-01-24T22:03:28Z __rumbler31: I've scrounged together towers with those buttons on them with of course nothing to wire them to. I think I used it once when the wire for the real power button was too short 2018-01-24T22:03:58Z dim: hehe, then turbo would shut it down electrically? nice! ;-) 2018-01-24T22:04:11Z dim: “from faster to done with it” ;-) 2018-01-24T22:05:46Z _death: dim: my advice then is to remove the unsafety declarations and if it's not crawling keep it that way 2018-01-24T22:07:58Z __rumbler31: yes exactly! 2018-01-24T22:08:52Z smasta quit (Ping timeout: 252 seconds) 2018-01-24T22:09:05Z quazimodo joined #lisp 2018-01-24T22:10:23Z Xach: Shinmera: they could be really big 2018-01-24T22:11:03Z Xach: Shinmera: I would like to include more, though 2018-01-24T22:11:38Z smurfrobot quit (Remote host closed the connection) 2018-01-24T22:11:58Z Shinmera: Xach: having the last error/warning + backtrace would be very nice, I think. 2018-01-24T22:12:00Z Xach: Like commit info if applicable, maybe the error, part of the backtrace...not sure 2018-01-24T22:12:31Z dim: _death: sounds reasonable 2018-01-24T22:12:33Z Shinmera: You could use Dissect to handle the error/trace part :) 2018-01-24T22:14:03Z dim: it doesn't seem to have that of an effect in preliminary tests 2018-01-24T22:16:35Z dim: 36s to 38s in a test on CCL 2018-01-24T22:17:00Z dim: 22s to 23.5s on SBCL on the same test 2018-01-24T22:17:04Z dim: now I'm wondering. 2018-01-24T22:17:50Z dim: how much danger would (safety 0) be? what's the default? 2018-01-24T22:19:25Z saki joined #lisp 2018-01-24T22:19:29Z rpg joined #lisp 2018-01-24T22:19:39Z rpg quit (Client Quit) 2018-01-24T22:19:53Z rpg joined #lisp 2018-01-24T22:21:06Z sjl: 1 is the "neutral value" according to the spec. pretty sure most implementations make 1 the default. 2018-01-24T22:21:54Z Karl_Dscc joined #lisp 2018-01-24T22:23:49Z wmannis joined #lisp 2018-01-24T22:23:57Z sjl: the amount of danger is implementation-specific 2018-01-24T22:24:00Z _death: dim: safety 0 means you're on the segfault-corruption scale if something isn't right.. 2018-01-24T22:24:14Z sjl: segfaults/data corruption/buffer overflows 2018-01-24T22:24:45Z smasta joined #lisp 2018-01-24T22:24:56Z dim: well... the patch makes it half as likely for pgloader (using SBCL) to end up in the lldb prompt because if Exhausted its memory space anyway 2018-01-24T22:25:41Z Chream_2 joined #lisp 2018-01-24T22:25:59Z dim: the typical user of pgloader runs the command and then does something else, segfault won't have more impact than another error condition to them I think, it's not as if I was playing with a live dev env from a lib down 2018-01-24T22:26:15Z dim: but yeah, I shoulndn't play (safety 0) that easily 2018-01-24T22:26:22Z _death: segfault is the best case scenario 2018-01-24T22:26:31Z sjl: es 2018-01-24T22:26:33Z sjl: *yes 2018-01-24T22:26:40Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-24T22:27:04Z drewc_ is now known as drewc 2018-01-24T22:27:04Z sjl: silently corrupting data they're inserting into the db would probably be more impactful 2018-01-24T22:27:12Z __rumbler31 quit (Ping timeout: 246 seconds) 2018-01-24T22:27:19Z dim: pushed a patch that removes safety optimisation in the declare forms 2018-01-24T22:27:52Z dim: thanks for your comments/feedback _death 2018-01-24T22:28:07Z dim: (and sjl 2018-01-24T22:28:14Z dim: oops, missed) 2018-01-24T22:28:24Z dim: ok I guess bedtime is calling now 2018-01-24T22:28:55Z dim: once again I didn't think it would be that “easy” to implement this idea of streaming without intermediate buffer when on-error-stop is picked 2018-01-24T22:29:01Z dim: Common-Lisp to the rescue ;-) 2018-01-24T22:29:17Z BitPuffin quit (Remote host closed the connection) 2018-01-24T22:30:38Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-24T22:31:21Z _death: I spent most of my day writing C++.. and a bit of Lisp.. so CL to the rescue here as well :) 2018-01-24T22:34:43Z dim: hehe 2018-01-24T22:34:53Z dented42 joined #lisp 2018-01-24T22:35:10Z dim: for me it feels like I can do in a couple hours in CL what I would have done in a couple days in Python and a week or two in C 2018-01-24T22:35:42Z dim: (doing lots of C code again nowadays) 2018-01-24T22:37:44Z Bike quit (Ping timeout: 260 seconds) 2018-01-24T22:39:40Z z3t0 joined #lisp 2018-01-24T22:39:57Z z3t0: hi 2018-01-24T22:40:13Z z3t0: I have been hacking lisp for a few months and am now starting to write a small program 2018-01-24T22:40:26Z jasom: z3t0: congratulations 2018-01-24T22:40:36Z z3t0: Is there a good resource I can read up that explains how to organize my code? 2018-01-24T22:40:59Z jasom: z3t0: I don't know about good resource, but you should at least be using asdf 2018-01-24T22:41:10Z z3t0: I'll take a look at that, thanks 2018-01-24T22:41:22Z jasom is looking for a decent asdf tutorial 2018-01-24T22:41:39Z Shinmera: z3t0: Take a look at libraries with a lot of downloads I guess. 2018-01-24T22:42:18Z jasom: Shinmera: the downside to that is that there are such varied styles; it's usually easier to start with a single style when beginning 2018-01-24T22:43:57Z aeth: There are a few style guides for CL. Here's Google's: https://google.github.io/styleguide/lispguide.xml 2018-01-24T22:44:18Z aeth: Here's one of many copies of Norvig's: https://www.cs.umd.edu/%7Enau/cmsc421/norvig-lisp-style.pdf 2018-01-24T22:44:21Z rpg: There's one by Robert Strandh, as well. 2018-01-24T22:44:49Z rpg: Speaking of things, does anyone know if Chris Riesbeck's "CS linter" is still out there? 2018-01-24T22:44:59Z rpg: Has anyone taken it under their wing to maintain? 2018-01-24T22:45:03Z Cymew joined #lisp 2018-01-24T22:45:12Z aeth: I don't know anything about the quality of this guide or the author, but I just found this, which is high up on DuckDuckGo's results: http://lisp-lang.org/style-guide/ 2018-01-24T22:45:16Z Xach: rpg: i put it in quicklisp, but it is not really maintained. 2018-01-24T22:45:30Z Xach: rpg: it is called "lisp-critic" 2018-01-24T22:46:23Z jasom: z3t0: I can't find a beginners tutorial, but you can get a skeleton setup using quickproject 2018-01-24T22:47:21Z pillton: aeth: I don't consider that a bug. 2018-01-24T22:47:26Z p_l: at least at one time a package-per-file approach was promoted and integrated into ASDF 2018-01-24T22:48:10Z aeth: pillton: I wasn't sure, which is why I didn't open an issue 2018-01-24T22:48:40Z aeth: It would be hard to do this accidentally. 2018-01-24T22:48:52Z z3t0: jasom: thanks 2018-01-24T22:49:05Z pillton: aeth: SBCL emits a warning anyhow. 2018-01-24T22:49:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-24T22:49:18Z billitch quit (Ping timeout: 240 seconds) 2018-01-24T22:49:19Z rpg: Xach: did you get it from the g000001 repo at github? That seems to be the root of the tree on github. 2018-01-24T22:49:36Z Xach: rpg: yes 2018-01-24T22:50:07Z rpg: thanks! 2018-01-24T22:50:32Z pillton: aeth: I considered doing something like that when implementing template-function. 2018-01-24T22:51:36Z rpg: p_l: package-per-file was integrated into ASDF, but I'm not sure I would say that it's clearly seen as The Right Thing. It is pretty useful if you have complex and changing dependencies (like ASDF and UIOP), because it enables ASDF to figure them out for you. But I can't say I like interacting with systems with that many namespaces, personally. 2018-01-24T22:51:55Z p_l: not calling them "The Right Thing" 2018-01-24T22:52:10Z p_l: especially since I don't do that :) 2018-01-24T22:52:15Z rpg: Especially since completion sometimes turns nice readable exported names into hard-to-read over-specific sub-packages. 2018-01-24T22:52:18Z p_l: just pointing out that it was pushed 2018-01-24T22:53:14Z rpg: I would say if you are writing your first system, then you shouldn't need a zillion packages to avoid name collisions. 2018-01-24T22:53:35Z LiamH quit (Quit: Leaving.) 2018-01-24T22:53:48Z p_l: true :) 2018-01-24T22:53:54Z p_l: I used to go for package-per-directory 2018-01-24T22:54:10Z p_l: with `package.lisp` in each directory that did defpackage et al 2018-01-24T22:55:23Z Shinmera: I consider packages part of the user interface. They don't have much to do with how the code is organised internally, really. 2018-01-24T22:55:33Z varjagg quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-24T22:55:58Z Xach: Sometimes my project is also the user 2018-01-24T22:56:56Z rpg: Shinmera: Occasionally I find myself introducing sub-packages, in cases where there's a clearly delineated sub-function (e.g., some specialized form of tree search), and I want to not have to worry about using common names like "search", "visited," etc. 2018-01-24T22:57:12Z Shinmera: Sure. 2018-01-24T22:57:31Z Cymew joined #lisp 2018-01-24T22:57:54Z p_l: Shinmera: If I were to go with package-per-file, I'd probably cleanly separate an "user-facing" package (possibly multiple) that would cover the APIs 2018-01-24T22:58:24Z rpg: p_l: that's what ASDF does. It has its ASDF/INTERFACE package, that is nicknamed just ASDF. 2018-01-24T22:58:36Z Shinmera: I guess. I just feel like p-p-f encourages writing huge files, and incurs tedious symbol juggling. 2018-01-24T22:58:56Z _death: Shinmera: not in my experience 2018-01-24T22:59:31Z _death: Shinmera: I've already talked about package-inferred-systems advantages/disadvantages in the past though 2018-01-24T22:59:40Z Shinmera: I know. 2018-01-24T22:59:46Z rpg: Actually, since we're off into the package rabbithole, I should say that though I don't enjoy p-p-f, I *do* think that Fare's macros for defining packages have some really useful features. Especially for p_l's example -- it's nice to have a defpackage variant that will import and then export a symbol with a single specification. 2018-01-24T23:00:09Z p_l: I just used conduits for that 2018-01-24T23:00:32Z drewbert joined #lisp 2018-01-24T23:01:00Z brendyn joined #lisp 2018-01-24T23:01:17Z p_l: actually I'd often create a `cl3` package or similar that would use conduits to bridge conduits, closer-mop and bunch of other similar libs into common base language 2018-01-24T23:01:24Z damke_ joined #lisp 2018-01-24T23:01:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-24T23:02:22Z drewbert: Hi peeps. I'm super new to lisp. I'm looking at the core for a lisp I want to use in a project. I see it has def, which it uses to define defmacro, and defmacro defines defn, and defn seems to be defining runtime functions. What is `def` ? 2018-01-24T23:02:42Z Karl_Dscc quit (Remote host closed the connection) 2018-01-24T23:02:44Z Shinmera: Not Common Lisp. 2018-01-24T23:03:15Z sjl: sounds like clojure 2018-01-24T23:03:17Z oleo quit (Ping timeout: 276 seconds) 2018-01-24T23:03:28Z z3t0_ joined #lisp 2018-01-24T23:04:06Z Shinmera: drewbert: Note the channel topic. This channel is for Common Lisp only. Other lisps have their own channels (#scheme, #clojure, for instance). 2018-01-24T23:04:24Z drewbert: gotcha, thanks. Sorry y'all. 2018-01-24T23:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-24T23:04:49Z Shinmera: drewbert: There's also ##lisp for the family of languages, but I don't know how active it is. 2018-01-24T23:04:51Z aeth: ##lisp is the channel for the Lisp family of languages 2018-01-24T23:05:00Z aeth: oops, I was beaten to it 2018-01-24T23:05:05Z moei quit (Quit: Leaving...) 2018-01-24T23:07:10Z iqubic` joined #lisp 2018-01-24T23:07:10Z z3t0 quit (Ping timeout: 252 seconds) 2018-01-24T23:07:54Z iqubic` is now known as iqubic 2018-01-24T23:08:09Z sjl quit (Ping timeout: 264 seconds) 2018-01-24T23:09:13Z wxie joined #lisp 2018-01-24T23:12:00Z pagnol quit (Ping timeout: 246 seconds) 2018-01-24T23:12:08Z eivarv quit (Quit: Sleep) 2018-01-24T23:12:33Z ikopico quit (Quit: ZNC 1.6.4+deb1 - http://znc.in) 2018-01-24T23:12:56Z wxie quit (Client Quit) 2018-01-24T23:16:30Z Bike joined #lisp 2018-01-24T23:17:32Z fikka quit (Ping timeout: 260 seconds) 2018-01-24T23:19:03Z igemnace quit (Read error: Connection reset by peer) 2018-01-24T23:19:50Z igemnace joined #lisp 2018-01-24T23:20:19Z __rumbler31 joined #lisp 2018-01-24T23:20:29Z __rumbler31 quit (Read error: Connection reset by peer) 2018-01-24T23:23:24Z python476 quit (Read error: Connection reset by peer) 2018-01-24T23:26:58Z ikopico joined #lisp 2018-01-24T23:30:49Z nirved quit (Quit: Leaving) 2018-01-24T23:31:57Z smasta quit (Ping timeout: 268 seconds) 2018-01-24T23:35:09Z smasta joined #lisp 2018-01-24T23:36:13Z PuercoPope quit (Remote host closed the connection) 2018-01-24T23:36:14Z attila_lendvai joined #lisp 2018-01-24T23:36:46Z chrisb joined #lisp 2018-01-24T23:37:59Z z3t0_: are there any oauth2 libraries in common lisp? 2018-01-24T23:39:26Z smasta quit (Ping timeout: 252 seconds) 2018-01-24T23:40:59Z EvW quit (Ping timeout: 276 seconds) 2018-01-24T23:41:46Z pjb: Yes, there are. 2018-01-24T23:43:48Z fikka joined #lisp 2018-01-24T23:43:49Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-24T23:45:08Z dieggsy joined #lisp 2018-01-24T23:45:24Z Chream_ joined #lisp 2018-01-24T23:46:35Z makomo quit (Ping timeout: 240 seconds) 2018-01-24T23:47:13Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-24T23:47:28Z wigust joined #lisp 2018-01-24T23:48:15Z EvW joined #lisp 2018-01-24T23:48:21Z smasta joined #lisp 2018-01-24T23:49:25Z igemnace quit (Read error: Connection reset by peer) 2018-01-24T23:49:27Z wigust- quit (Ping timeout: 240 seconds) 2018-01-24T23:50:17Z milanj quit (Read error: Connection reset by peer) 2018-01-24T23:50:33Z igemnace joined #lisp 2018-01-24T23:54:50Z dieggsy quit (Remote host closed the connection) 2018-01-24T23:59:57Z markong quit (Ping timeout: 246 seconds) 2018-01-25T00:00:42Z erikc joined #lisp 2018-01-25T00:01:24Z Chream_ quit (Ping timeout: 260 seconds) 2018-01-25T00:01:35Z Chream_ joined #lisp 2018-01-25T00:10:56Z z3t0_: What is the difference between nth-value and second, third etc? 2018-01-25T00:11:14Z Xach: z3t0_: nth-value relates to getting one of the multiple-values returned from a function via values 2018-01-25T00:11:14Z z3t0_: From what i can tell one of them is for cons but what is nth-value used for then? 2018-01-25T00:11:35Z z3t0_: ahh okay I see 2018-01-25T00:11:36Z Xach: z3t0_: common lisp can return multiple values from a function, like with decode-universal-time 2018-01-25T00:11:43Z z3t0_: Thanks 2018-01-25T00:11:48Z Xach: no problem 2018-01-25T00:12:14Z jasom: what does the prefix "dx-" mean in sbcl's internals (e.g. dx-flet) 2018-01-25T00:12:20Z aeth: z3t0_: you might be looking for nth 2018-01-25T00:12:22Z randomstrangerb joined #lisp 2018-01-25T00:12:28Z z3t0_: aeth: yes that was it! 2018-01-25T00:12:29Z Xach: jasom: dynamic-extent was my impression. 2018-01-25T00:13:09Z pjb: (defun nth-value (n form) `(nth ,n (multiple-value-list ,form))) 2018-01-25T00:13:47Z pjb: only implementations will implement nth-value without consing the list! 2018-01-25T00:13:53Z Baggers quit (Remote host closed the connection) 2018-01-25T00:14:00Z jasom: ugh, so dx-flet is a dynamic-extent flet? That's confusing 2018-01-25T00:14:54Z jasom: wouldit work like this then? (defun foo () (bar)) (dx-flet ((bar () 1)) (foo)) => 1 2018-01-25T00:17:27Z z3t0_: how would i iterate over a cons 2018-01-25T00:17:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T00:17:50Z rumbler31 quit (Remote host closed the connection) 2018-01-25T00:17:53Z z3t0_: actually, that's a silly question, never mind :) 2018-01-25T00:18:01Z Xach: z3t0_: you normally wouldn't. but it is normal to iterate over a chain of conses (a list) with dolist or loop. 2018-01-25T00:18:27Z nullman quit (Ping timeout: 240 seconds) 2018-01-25T00:18:40Z smasta quit (Ping timeout: 260 seconds) 2018-01-25T00:18:46Z jasom: minion: tell z3t0_ about book 2018-01-25T00:18:47Z minion: book: No definition was found in the first 5 lines of http://www.cliki.net/book 2018-01-25T00:18:49Z z3t0_: I have a cons of elements that I need to go over in order to process each one, initially i thought of using loop for x in data but that doesn't seem to work 2018-01-25T00:18:51Z jasom: minion: tell z3t0_ about pcl 2018-01-25T00:18:51Z minion: z3t0_: please see pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 2018-01-25T00:19:00Z jasom: z3t0_: just in case you haven't found it 2018-01-25T00:19:03Z fikka joined #lisp 2018-01-25T00:19:12Z z3t0_: thanks 2018-01-25T00:19:15Z nullman joined #lisp 2018-01-25T00:19:24Z Xach: z3t0_: a cons has only two things in it, the car and the cdr. 2018-01-25T00:19:58Z jasom: z3t0_: a cons is just a pair; however they are often used to make a linked list (are you familiar with the linked-list data structure from other languages?) 2018-01-25T00:20:24Z z3t0_: Yes I am familiar with linked lists, not too sure about how to deal with them in cl htough 2018-01-25T00:20:26Z z3t0_: though* 2018-01-25T00:20:28Z pjb: The interesting thing is that in theory, everything can be built from pairs. 2018-01-25T00:20:53Z Xach: they are made of conses in cl 2018-01-25T00:21:05Z pjb: In practice, it's more efficient if the implementation provides primitive implementations of some other types, but it wouldn't be necessary. 2018-01-25T00:22:53Z jasom: z3t0_: when a CONS is used as a list (car FOO) gets you the data element and (cdr FOO) gets you the next cons in the chain 2018-01-25T00:23:24Z jasom: z3t0_: and similarly (loop for item in FOO ...) will iterate over the items in FOO, assuming FOO is a list 2018-01-25T00:24:24Z jasom: e.g. (loop for item in '(1 2 3 4 5) do (print item)) 2018-01-25T00:26:43Z z3t0_: mapcar seems to achieve what I want 2018-01-25T00:29:08Z jasom: hmm, any ideas on how I could get an unhandled memory fault when not using FFI and restricting safety to 3? 2018-01-25T00:36:36Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T00:36:44Z Pixel_Outlaw joined #lisp 2018-01-25T00:38:37Z earl-ducaine quit (Remote host closed the connection) 2018-01-25T00:38:38Z paule32: hello 2018-01-25T00:38:45Z paule32: where is the error? 2018-01-25T00:38:47Z paule32: https://pastebin.com/LX1H7w3K 2018-01-25T00:38:56Z earl-ducaine joined #lisp 2018-01-25T00:44:47Z z3t0_ quit (Remote host closed the connection) 2018-01-25T00:45:20Z z3t0 joined #lisp 2018-01-25T00:45:27Z nowhere_man joined #lisp 2018-01-25T00:46:44Z Xach: paule32: the error is not adding what you tried, what you expected, and what you got instead of what you expected. 2018-01-25T00:47:23Z paule32: hello Xach 2018-01-25T00:47:36Z nowhereman_ joined #lisp 2018-01-25T00:47:40Z wigust quit (Ping timeout: 240 seconds) 2018-01-25T00:47:45Z paule32: Xach: i would like to test a "half" adder, and "full" adder 2018-01-25T00:48:02Z paule32: the input: (2 3) 2018-01-25T00:48:14Z paule32: A = 2 2018-01-25T00:48:18Z paule32: B = 3 2018-01-25T00:48:30Z paule32: Cin = 0 ;; initial = 0 2018-01-25T00:49:56Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-25T00:50:56Z nowhere_man quit (Ping timeout: 252 seconds) 2018-01-25T00:50:58Z paule32: so first: A + B = 5 2018-01-25T00:52:08Z pagnol joined #lisp 2018-01-25T00:52:34Z Xach: I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. 2018-01-25T00:53:04Z jasom: paule32: half-adder has no effects whatsoever 2018-01-25T00:53:18Z Xach: paule32: i enjoy helping but the code you offer seems very far from the mark 2018-01-25T00:53:21Z fikka quit (Ping timeout: 268 seconds) 2018-01-25T00:53:39Z jasom: paule32: it could be replaced by just a function that always returns 'ok 2018-01-25T00:53:39Z Xach: paule32: my understanding of a half adder is that it works on bits, as well, and not something like 2 and 3... 2018-01-25T00:54:45Z paule32: first, i have wire / cable's 2018-01-25T00:55:03Z paule32: as structure 2018-01-25T00:55:20Z paule32: (for later => calculations) 2018-01-25T00:55:50Z paule32: then, i have circuits or, and, inv 2018-01-25T00:56:49Z paule32: A connect(ion) go into D => or-gate 2018-01-25T00:57:13Z paule32: B connect(ion) go into and-gate 2018-01-25T00:58:15Z paule32: so and-gate has 2018-01-25T00:58:37Z paule32: wire a b c 2018-01-25T00:59:15Z paule32: that is B 2018-01-25T00:59:15Z fikka joined #lisp 2018-01-25T00:59:26Z paule32: A is 2018-01-25T00:59:43Z paule32: or-gate a b D 2018-01-25T00:59:46Z jasom: paule32: can you make a simple buffer out of two inverters with this, and show us it working? Because right now this code literally does nothing other than return 'ok 2018-01-25T01:00:35Z paule32: yes, that is the problem 2018-01-25T01:00:53Z paule32: no condition 2018-01-25T01:01:23Z wigust joined #lisp 2018-01-25T01:01:32Z jasom: presumably an and gate would have two wires on its input, and then assert some signal on its output; right now there are no side effects at all. 2018-01-25T01:02:02Z attila_lendvai quit (Quit: Leaving.) 2018-01-25T01:03:01Z paule32: and-gate a b c => a = 2 b = 3 c = 5 2018-01-25T01:03:04Z paule32: ? 2018-01-25T01:04:06Z paule32: https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3 2018-01-25T01:04:23Z paule32: figure 3.25 2018-01-25T01:04:40Z jasom: paule32: note that there is a function-call there, you've just put some symbols next to each other 2018-01-25T01:05:08Z jasom: e.g. if you type in: "1 2 3 4" you haven't made a function call, you've just evaluated 4 expressions that do nothing 2018-01-25T01:05:25Z paule32: oh 2018-01-25T01:05:31Z jasom: "(or-gate a b d)" is not the same as "or-gate a b d" 2018-01-25T01:06:05Z z3t0 joined #lisp 2018-01-25T01:06:35Z paule32: compare with pasted code 2018-01-25T01:08:01Z paule32: common lisp 2018-01-25T01:08:21Z jasom: right, but this part scheme and common lisp are the same; no parens means no function call 2018-01-25T01:08:58Z jasom: your wires are also missing actions; without actions you can't define the gate functions yet. 2018-01-25T01:09:06Z jasom: see add-action! in SICP 2018-01-25T01:09:54Z jasom: the inverter and and gates are provided in the book, but the or-gate is an exercise 2018-01-25T01:10:55Z raydeejay quit (Ping timeout: 256 seconds) 2018-01-25T01:11:32Z paule32: that means, i have to add condition by my self? 2018-01-25T01:11:52Z jasom: paule32: yes, CL doesn't come with a built-in logic simulator 2018-01-25T01:12:01Z paule32: haha 2018-01-25T01:13:02Z Cymew joined #lisp 2018-01-25T01:13:22Z paule32: 1: and-gate = A & B => into and-gate 2018-01-25T01:13:47Z paule32: if a & b the same => C 2018-01-25T01:13:53Z zooey quit (Ping timeout: 255 seconds) 2018-01-25T01:14:33Z paule32: else 2018-01-25T01:14:52Z paule32: a & b => Einv 2018-01-25T01:15:03Z jasom: Thats an xnor actually 2018-01-25T01:15:31Z jasom: and is if A & B are logical high, C goes to logical high, otherwise C goes to logical low 2018-01-25T01:16:23Z zooey joined #lisp 2018-01-25T01:16:41Z jasom: look at (define (and-gate a1 a2 output) ...) in SICP 2018-01-25T01:16:48Z jasom: anyway I have dinner now, good luck paule32 2018-01-25T01:16:59Z paule32: thx 2018-01-25T01:17:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-25T01:17:33Z FreeBirdLjj joined #lisp 2018-01-25T01:18:16Z wmannis quit (Quit: wmannis) 2018-01-25T01:20:51Z damke joined #lisp 2018-01-25T01:22:20Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-25T01:23:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-25T01:24:02Z chrisb left #lisp 2018-01-25T01:25:06Z nowhereman_ quit (Read error: Connection reset by peer) 2018-01-25T01:25:11Z nowhere_man joined #lisp 2018-01-25T01:25:12Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T01:25:18Z wigust quit (Ping timeout: 240 seconds) 2018-01-25T01:30:37Z dented42 joined #lisp 2018-01-25T01:30:51Z shifty joined #lisp 2018-01-25T01:32:12Z fikka quit (Ping timeout: 268 seconds) 2018-01-25T01:32:52Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-25T01:33:02Z nowhere_man joined #lisp 2018-01-25T01:33:50Z zazzerino joined #lisp 2018-01-25T01:35:45Z openthesky joined #lisp 2018-01-25T01:35:53Z nowhereman_ joined #lisp 2018-01-25T01:36:29Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-25T01:38:40Z EvW quit (Ping timeout: 240 seconds) 2018-01-25T01:39:29Z nowhereman_ quit (Read error: Connection reset by peer) 2018-01-25T01:39:40Z nowhereman_ joined #lisp 2018-01-25T01:44:16Z xrash joined #lisp 2018-01-25T01:44:30Z fikka joined #lisp 2018-01-25T01:50:12Z z3t0 quit (Remote host closed the connection) 2018-01-25T01:50:31Z z3t0 joined #lisp 2018-01-25T01:51:46Z nowhereman_ quit (Read error: Connection reset by peer) 2018-01-25T01:51:55Z nowhereman_ joined #lisp 2018-01-25T01:56:24Z nowhere_man joined #lisp 2018-01-25T01:59:18Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-25T01:59:51Z Zhivago quit (Ping timeout: 256 seconds) 2018-01-25T02:04:38Z karswell_ quit (Ping timeout: 252 seconds) 2018-01-25T02:04:54Z Orion3k joined #lisp 2018-01-25T02:04:56Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T02:09:44Z z3t0 quit (Remote host closed the connection) 2018-01-25T02:10:11Z z3t0 joined #lisp 2018-01-25T02:14:32Z z3t0 quit (Ping timeout: 252 seconds) 2018-01-25T02:18:21Z rumbler31 joined #lisp 2018-01-25T02:21:40Z orivej quit (Ping timeout: 240 seconds) 2018-01-25T02:22:18Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-25T02:36:17Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-25T02:43:31Z d4ryus1 joined #lisp 2018-01-25T02:44:34Z dieggsy joined #lisp 2018-01-25T02:46:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-25T02:46:49Z d4ryus quit (Ping timeout: 268 seconds) 2018-01-25T02:47:32Z pagnol quit (Ping timeout: 252 seconds) 2018-01-25T02:50:02Z jack_rabbit: o/ 2018-01-25T02:51:57Z Pixel_Outlaw joined #lisp 2018-01-25T02:52:53Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T02:57:39Z fikka joined #lisp 2018-01-25T03:00:53Z pjb quit (Ping timeout: 255 seconds) 2018-01-25T03:01:04Z damke_ joined #lisp 2018-01-25T03:01:04Z al-damiri quit (Quit: Connection closed for inactivity) 2018-01-25T03:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-25T03:12:10Z loli quit (Quit: WeeChat 2.0.1) 2018-01-25T03:12:35Z loli joined #lisp 2018-01-25T03:19:47Z Cymew joined #lisp 2018-01-25T03:24:15Z dddddd quit (Remote host closed the connection) 2018-01-25T03:24:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-25T03:25:35Z dieggsy quit (Remote host closed the connection) 2018-01-25T03:25:57Z Cymew joined #lisp 2018-01-25T03:28:07Z pjb joined #lisp 2018-01-25T03:28:10Z pjb is now known as Guest4756 2018-01-25T03:28:50Z Oladon joined #lisp 2018-01-25T03:29:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-25T03:30:36Z Cymew quit (Ping timeout: 268 seconds) 2018-01-25T03:38:17Z fikka joined #lisp 2018-01-25T03:40:29Z FreeBirdLjj joined #lisp 2018-01-25T03:43:47Z sjl joined #lisp 2018-01-25T03:44:40Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-25T03:45:13Z Cymew joined #lisp 2018-01-25T03:48:10Z sjl quit (Ping timeout: 240 seconds) 2018-01-25T03:49:30Z Cymew quit (Ping timeout: 252 seconds) 2018-01-25T03:52:03Z smasta joined #lisp 2018-01-25T03:59:48Z zazzerino quit (Ping timeout: 240 seconds) 2018-01-25T04:00:40Z Guest4756 quit (Ping timeout: 240 seconds) 2018-01-25T04:01:51Z Zhivago joined #lisp 2018-01-25T04:04:24Z marusich joined #lisp 2018-01-25T04:10:04Z Chream_2 joined #lisp 2018-01-25T04:10:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T04:11:12Z Chream_ quit (Ping timeout: 248 seconds) 2018-01-25T04:13:57Z fikka joined #lisp 2018-01-25T04:18:46Z dieggsy joined #lisp 2018-01-25T04:19:31Z dieggsy quit (Client Quit) 2018-01-25T04:21:34Z igemnace quit (Read error: Connection reset by peer) 2018-01-25T04:22:39Z igemnace joined #lisp 2018-01-25T04:25:34Z dieggsy joined #lisp 2018-01-25T04:30:28Z pierpa quit (Quit: Page closed) 2018-01-25T04:31:17Z z3t0 joined #lisp 2018-01-25T04:33:44Z beach: Good morning everyone! 2018-01-25T04:34:49Z LocaMocha joined #lisp 2018-01-25T04:38:24Z erikc quit 2018-01-25T04:41:56Z LocaMocha is now known as Sauvin 2018-01-25T04:47:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T04:48:22Z iqubic: Morning Beach. 2018-01-25T04:48:30Z iqubic: I hope your day has been well. 2018-01-25T04:52:04Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-25T04:52:07Z fikka joined #lisp 2018-01-25T04:52:41Z Bike quit (Quit: Lost terminal) 2018-01-25T04:56:31Z schoppenhauer quit (Ping timeout: 248 seconds) 2018-01-25T04:57:20Z beach: iqubic: Yes, thanks, but it has only lasted for an hour or so. 2018-01-25T04:58:26Z schoppenhauer joined #lisp 2018-01-25T05:00:51Z oleo joined #lisp 2018-01-25T05:02:04Z heurist_ joined #lisp 2018-01-25T05:03:43Z heurist`_ quit (Ping timeout: 268 seconds) 2018-01-25T05:04:57Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-25T05:07:45Z dented42 joined #lisp 2018-01-25T05:07:49Z xrash quit (Read error: Connection reset by peer) 2018-01-25T05:09:41Z zooey quit (Ping timeout: 255 seconds) 2018-01-25T05:10:21Z zooey joined #lisp 2018-01-25T05:25:56Z fikka quit (Ping timeout: 252 seconds) 2018-01-25T05:27:39Z fikka joined #lisp 2018-01-25T05:30:08Z turkja joined #lisp 2018-01-25T05:33:17Z Oladon quit (Quit: Leaving.) 2018-01-25T05:37:34Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-25T05:39:07Z smurfrobot joined #lisp 2018-01-25T05:39:44Z Chream_2 quit (Ping timeout: 248 seconds) 2018-01-25T05:39:44Z Chream_ joined #lisp 2018-01-25T05:41:25Z Chream_2 joined #lisp 2018-01-25T05:41:25Z fortitude quit (Ping timeout: 256 seconds) 2018-01-25T05:44:03Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-25T05:44:10Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-25T05:45:25Z iqubic: Oh, I see. 2018-01-25T05:45:59Z iqubic: I thought you were doing the thing where it's always "morning" when you enter an IRC channel and "night" when you leave. 2018-01-25T05:49:13Z oleo quit (Quit: Leaving) 2018-01-25T05:51:15Z fortitude joined #lisp 2018-01-25T05:53:58Z dieggsy joined #lisp 2018-01-25T05:55:22Z dieggsy quit (Client Quit) 2018-01-25T05:56:31Z lnostdal quit (Ping timeout: 256 seconds) 2018-01-25T06:01:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-25T06:03:46Z damke joined #lisp 2018-01-25T06:04:52Z dieggsy joined #lisp 2018-01-25T06:05:38Z fikka joined #lisp 2018-01-25T06:05:51Z makomo joined #lisp 2018-01-25T06:06:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-25T06:13:24Z shka joined #lisp 2018-01-25T06:14:26Z z3t0 quit (Remote host closed the connection) 2018-01-25T06:15:04Z z3t0 joined #lisp 2018-01-25T06:19:27Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-25T06:27:09Z windblow joined #lisp 2018-01-25T06:27:10Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-25T06:30:51Z beach: Wow, more offers to help me with the work on SICL. Perhaps I should convert to being a project manager instead of writing the code myself. 2018-01-25T06:32:26Z whoman: yeah! i think it is a good idea. 2018-01-25T06:32:47Z whoman: i've coded enough in my time i should be consulting rather than coding myself .. hmm 2018-01-25T06:34:35Z beach: I have always explored the design space by writing code, so that would have to change. Or at least, I would have to stick to small code snippets for showing the consequences of some particular design decision. 2018-01-25T06:35:45Z whoman: hmm makes sense. architecting the garden geometry itself rather than tilling and plotting and weeding 2018-01-25T06:36:01Z beach: Sort of, yes. 2018-01-25T06:36:51Z whoman: oh, meta programming. program the programmers 2018-01-25T06:36:59Z whoman: real life macro 2018-01-25T06:37:44Z pillton: That is actually a better definition of the term meta programming. 2018-01-25T06:40:22Z phoe: why program the programs if you can program the programmers 2018-01-25T06:41:08Z Karl_Dscc joined #lisp 2018-01-25T06:46:08Z Orion3k quit (Remote host closed the connection) 2018-01-25T06:47:34Z d4ryus1 is now known as d4ryus 2018-01-25T06:49:13Z ninegrid joined #lisp 2018-01-25T06:49:57Z rumbler31 joined #lisp 2018-01-25T06:50:30Z cess11: because the programs are more obedient 2018-01-25T06:52:33Z vlatkoB joined #lisp 2018-01-25T06:54:21Z rumbler31 quit (Ping timeout: 246 seconds) 2018-01-25T06:56:08Z smasta quit (Ping timeout: 252 seconds) 2018-01-25T06:59:04Z marusich quit (Ping timeout: 252 seconds) 2018-01-25T06:59:46Z marusich joined #lisp 2018-01-25T06:59:48Z mishoo_ joined #lisp 2018-01-25T07:02:22Z whoman quit (Remote host closed the connection) 2018-01-25T07:02:31Z heurist_ is now known as heurist 2018-01-25T07:02:47Z whoman joined #lisp 2018-01-25T07:04:34Z marusich quit (Ping timeout: 252 seconds) 2018-01-25T07:05:23Z marusich joined #lisp 2018-01-25T07:08:48Z chens joined #lisp 2018-01-25T07:09:52Z heurist` joined #lisp 2018-01-25T07:10:18Z heurist quit (Ping timeout: 240 seconds) 2018-01-25T07:10:29Z dec0n joined #lisp 2018-01-25T07:11:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T07:15:28Z flamebeard joined #lisp 2018-01-25T07:16:34Z smurfrobot joined #lisp 2018-01-25T07:17:33Z fikka joined #lisp 2018-01-25T07:19:54Z sjl joined #lisp 2018-01-25T07:23:16Z smurfrobot quit (Ping timeout: 252 seconds) 2018-01-25T07:24:21Z sjl quit (Ping timeout: 256 seconds) 2018-01-25T07:24:51Z Karl_Dscc quit (Remote host closed the connection) 2018-01-25T07:28:14Z smurfrobot joined #lisp 2018-01-25T07:28:53Z scymtym quit (Ping timeout: 256 seconds) 2018-01-25T07:32:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-25T07:39:40Z shifty quit (Ping timeout: 240 seconds) 2018-01-25T07:39:44Z Chream_2 quit (Ping timeout: 268 seconds) 2018-01-25T07:41:08Z rumbler31 joined #lisp 2018-01-25T07:44:18Z smasta joined #lisp 2018-01-25T07:45:10Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-25T07:48:18Z smasta quit (Ping timeout: 240 seconds) 2018-01-25T07:51:33Z fikka quit (Ping timeout: 256 seconds) 2018-01-25T07:53:36Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T07:53:48Z chens quit (Remote host closed the connection) 2018-01-25T07:53:58Z chens joined #lisp 2018-01-25T07:54:07Z dented42 joined #lisp 2018-01-25T07:54:45Z dented42 quit (Client Quit) 2018-01-25T07:55:22Z dented42 joined #lisp 2018-01-25T07:55:33Z shka: hello 2018-01-25T07:55:56Z shka: how should i call category of data structures that are sequences? 2018-01-25T07:56:04Z shka: as in: defclass 2018-01-25T07:56:44Z smurfrobot joined #lisp 2018-01-25T07:57:13Z shka: so i should not try to use 'sequence' because it is taken by cl itself 2018-01-25T07:57:56Z chens quit (Remote host closed the connection) 2018-01-25T07:58:33Z phoe: ds:sequencec 2018-01-25T07:58:41Z phoe: I mean, ds:sequence 2018-01-25T07:59:46Z phoe: or, simply use an implementation that allows you to extend CL:SEQUENCE, see http://www.doc.gold.ac.uk/~mas01cr/papers/ilc2007/sequences-20070301.pdf 2018-01-25T08:00:16Z shka: uh, none of the options provided is actually good 2018-01-25T08:00:21Z fikka joined #lisp 2018-01-25T08:00:27Z shka: whatever 2018-01-25T08:00:37Z phoe: but some are/will be better than others for what you are doing. 2018-01-25T08:00:49Z phoe: your decision. (: 2018-01-25T08:01:24Z smurfrobot quit (Ping timeout: 252 seconds) 2018-01-25T08:03:34Z dtornabene joined #lisp 2018-01-25T08:08:11Z pfdietz quit (Ping timeout: 256 seconds) 2018-01-25T08:08:56Z pfdietz joined #lisp 2018-01-25T08:09:33Z varjag joined #lisp 2018-01-25T08:11:08Z windblow quit (Quit: windblow) 2018-01-25T08:14:14Z Ven`` joined #lisp 2018-01-25T08:21:18Z shrdlu68 joined #lisp 2018-01-25T08:22:18Z Cymew joined #lisp 2018-01-25T08:25:14Z marusich quit (Ping timeout: 252 seconds) 2018-01-25T08:25:46Z marusich joined #lisp 2018-01-25T08:29:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-25T08:29:29Z scymtym joined #lisp 2018-01-25T08:32:12Z shka quit (Ping timeout: 252 seconds) 2018-01-25T08:35:27Z beach: Let's suppose I have an initial executable containing the image of a minimal Common Lisp system. In particular, it does not contain an evaluator. Now, I can cross compile DEFMETHOD forms so that the result is in a FASL file that can be loaded into that minimal image. 2018-01-25T08:35:41Z beach: The code for a method has already been processed by MAKE-METHOD-LAMBDA, so the METHOD-FUNCTION of the method already contains definitions of NEXT-METHOD-P and CALL-NEXT-METHOD (we assume the default situation where a method function is called with a list of arguments and a list of next methods). 2018-01-25T08:35:50Z beach: So, in this minimal image, I must be able to call the applicable methods according to the method combination of the generic function. I can't really call COMPUTE-APPLICABLE-METHODS or COMPUTE-APPLICABLE-METHODS-USING-CLASSES each time I call a generic function, because these are generic functions as well, so I would get into an infinite computation. 2018-01-25T08:36:14Z beach: But in SICL, I have a call history in every generic function. It contains a list of pairs (S,E) where S is a signature consisting of classes of specialized arguments that have already been seen, and E is something that we can call an "effective method function". 2018-01-25T08:36:20Z beach: It is not an "effective method" because that term is define in the AMOP to be a form that needs to be converted by the evaluator to a function. Now, after some methods have been loaded from FASL files, I need to be able to take them into account when I call the generic function. 2018-01-25T08:36:32Z beach: So when the call fails because the call history does not contain an existing pair that will do, I need to compute a new such pair. But I can't do that by calling COMPUTE-EFFECTIVE-METHOD, because the result of such a call would have to be evaluated. So here is my tentative solution that I would like comments on: 2018-01-25T08:36:41Z beach: In the initial image, when a call to a generic function fails because there is no appropriate pair in the call history, I create a new one as follows: I call COMPUTE-APPLICABLE-METHODS-USING-CLASSES and perhaps also COMPUTE-APPLICABLE-METHODS as usual. Then, instead of calling COMPUTE-EFFECTIVE-METHOD, I call a different SICL-specific function called (say) COMPUTE-EFFECTIVE-METHOD-FUNCTION. 2018-01-25T08:36:42Z beach: It takes the applicable methods and returns a closure that can be used as the E component of the pair. The CODE for that closure is already in the image, so it is compiled. Therefore, creating the effective method function does not require any evaluator. Does this sound right, or am I missing something? 2018-01-25T08:36:47Z beach: Sorry for the long rant. 2018-01-25T08:36:52Z fikka joined #lisp 2018-01-25T08:37:05Z beach: But it is quiet here, and it is on topic, so I guess it is OK. 2018-01-25T08:38:02Z smasta joined #lisp 2018-01-25T08:41:38Z Cymew quit (Remote host closed the connection) 2018-01-25T08:42:18Z smasta quit (Ping timeout: 240 seconds) 2018-01-25T08:44:11Z fdfdf joined #lisp 2018-01-25T08:45:37Z solyd joined #lisp 2018-01-25T08:45:47Z Chream_ joined #lisp 2018-01-25T08:46:22Z TMA: mop COMPUTE-EFFECTIVE-METHOD 2018-01-25T08:46:22Z specbot: http://metamodular.com/CLOS-MOP/compute-effective-method.html 2018-01-25T08:52:08Z scymtym: beach: are the individual precompiled method functions compiled with particular lexical function bindings for NEXT-METHOD-P and CALL-NEXT-METHOD that are aware of this scheme? 2018-01-25T08:52:27Z beach: I don't think they have to be. 2018-01-25T08:52:59Z beach: When a method is defined, MAKE-METHOD-LAMBDA is called to create a "method function". 2018-01-25T08:53:30Z beach: That method function, by default, takes a list of arguments to the generic function and a list of next methods. 2018-01-25T08:53:56Z beach: So, the cross compiler has already inserted definitions of NEXT-METHOD-P and CALL-NEXT-METHOD. 2018-01-25T08:53:58Z scymtym: sure, i was uncertain whether the way in which the list of next methods is passed is compatible between this scheme and the scheme eventually used once the compiler becomes available 2018-01-25T08:54:18Z beach: Yes, that would be the same scheme, at least by default. 2018-01-25T08:54:27Z scymtym: ok 2018-01-25T08:54:47Z beach: But later on, I will specify optimized versions for standard generic functions, so the methods would then have to be compiled again. 2018-01-25T08:56:00Z scymtym: i see 2018-01-25T08:56:06Z beach: Once I have the compiler in the image, I can ditch the first-class global environment that has been used for the initial image, and create a completely new first-class global environment that contains optimized versions of everything. 2018-01-25T08:57:31Z beach: Well, not "ditch". It has to be kept around, but I can start a new one from scratch. 2018-01-25T08:58:33Z nowhere_man quit (Ping timeout: 264 seconds) 2018-01-25T08:59:32Z scymtym: i will have to read more about the bootstrapping procedure to understand why that couldn't be done in the host lisp 2018-01-25T09:00:22Z beach: It probably could. 2018-01-25T09:00:33Z beach: But I want to keep the initial image as simple as possible. 2018-01-25T09:01:10Z damke_ joined #lisp 2018-01-25T09:02:01Z Cymew joined #lisp 2018-01-25T09:02:15Z dim: what's the advantage of that design choice? 2018-01-25T09:02:25Z beach: The simple image? 2018-01-25T09:02:40Z beach: Or more generally? 2018-01-25T09:03:12Z wigust joined #lisp 2018-01-25T09:03:16Z chens joined #lisp 2018-01-25T09:03:34Z dec0n_ joined #lisp 2018-01-25T09:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-25T09:04:28Z dim: the very simple image that depends on possibly nothing from the host? do you want to be able to bootstrap SICL from itself someday? I mean we have quite advanced Open Source standard CL implementations around that you could choose to depend on? 2018-01-25T09:06:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-25T09:06:44Z beach: The executable image is supposed to be a complete Common Lisp implementation, so it can't depend on any existing implementation. The host Common Lisp system, used to cross compile code to generate SICL FASLs and to create the initial image can in theory be any conforming Common Lisp implementation that also supports closer-mop. 2018-01-25T09:06:45Z lnostdal joined #lisp 2018-01-25T09:06:48Z dec0n quit (Ping timeout: 240 seconds) 2018-01-25T09:07:23Z beach: So, yes, I do depend on existing Common Lisp implementations for bootstrapping. 2018-01-25T09:07:47Z beach: I am not sure that answers your question, though. :( 2018-01-25T09:09:04Z dim: I think it does 2018-01-25T09:09:18Z beach: Whew! :) 2018-01-25T09:09:45Z dim: the simple image you're talking to is its own thing, you cross-compile it but then it runs by itself, without the need of any CL host around, right? 2018-01-25T09:09:55Z beach: Correct. 2018-01-25T09:10:12Z dim: ok I didn't understand that from reading you here before ;-) 2018-01-25T09:10:52Z beach: Sorry! It is hard for me to describe something that I have been so familiar with for such a long time. 2018-01-25T09:11:01Z dim: sure 2018-01-25T09:11:46Z dim: I though SICL was about offering pieces of CL implemented in CL, following the metamodular idea, so that if e.g. an implementation has loop and other things but not CLOS, it could use SICL implementation of CLOS 2018-01-25T09:12:00Z dim: or the other way around, provide CLOS and then get loop from SICL 2018-01-25T09:12:31Z dim: didn't understand that you want to produce a full CL image from SICL sources, and now the whole bootstrapping idea makes more sense 2018-01-25T09:12:41Z hhdave joined #lisp 2018-01-25T09:12:45Z Shinmera: SICL's LOOP uses LOOP, if I remember correctly 2018-01-25T09:13:12Z Shinmera: So it can't be used as a "plug in" source for features. 2018-01-25T09:14:32Z dim: so can you compile the SICL image from CL+SICL, then use this first SICL image to compile SICL again, and then use that second SICL image as a CL compiler/env? 2018-01-25T09:15:14Z dim: I think that's the classic compiler bootstrapping, in 3 stages, right? (I kind of remember that from classes ~20 years ago) 2018-01-25T09:16:06Z Chream_2 joined #lisp 2018-01-25T09:16:35Z beach: Shinmera: Correct, and it uses CLOS as well, which uses LOOP. 2018-01-25T09:17:26Z beach: dim: Sure, that's pretty much the plan. 2018-01-25T09:17:40Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-25T09:19:25Z beach: dim: My initial plan was to define some kind of order between modules, so that one could start with some minimal Common Lisp implementation and then load modules in that order. However, that turned out to be too painful because one would have to keep track of what subset of Common Lisp to use for each module. 2018-01-25T09:19:26Z beach: Also, the maintainability of the code would suffer from not being able to use the full language. So I abandoned that idea. 2018-01-25T09:19:48Z fikka joined #lisp 2018-01-25T09:24:22Z dddddd joined #lisp 2018-01-25T09:24:45Z windblow joined #lisp 2018-01-25T09:25:05Z Cymew quit (Remote host closed the connection) 2018-01-25T09:25:15Z Cymew joined #lisp 2018-01-25T09:27:45Z dim: yeah, and it's not like you are pioneering CL anymore, you can trust/depend on having a good solid first implementation of the standard to use ; hell you even have a choice of Open Source solutions 2018-01-25T09:28:08Z beach: Exactly. 2018-01-25T09:28:48Z Ven`` quit (Ping timeout: 240 seconds) 2018-01-25T09:29:42Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T09:30:14Z dmiles: How does SICL do on cl-ansi ? 2018-01-25T09:31:07Z dmiles: well i mean ansi-tests 2018-01-25T09:31:53Z beach: SICL doesn't exist, so currently it is not doing anything at all. 2018-01-25T09:32:07Z smasta joined #lisp 2018-01-25T09:33:34Z dmiles: What do you mean by not existing? 2018-01-25T09:34:25Z dmiles: (not finished with the impl of SICL to have it run the tests?) 2018-01-25T09:34:37Z beach: There is not an executable file named `sicl' that you can start by typing `sicl' to your shell prompt. 2018-01-25T09:34:57Z beach: And there is currently no way of producing such an executable. 2018-01-25T09:35:30Z nirved joined #lisp 2018-01-25T09:35:42Z dmiles: ah.. so right now one doesnt build an image that has a REPL ? 2018-01-25T09:35:53Z beach: It doesn't build an image at all. 2018-01-25T09:36:40Z smasta quit (Ping timeout: 240 seconds) 2018-01-25T09:37:16Z dmiles: ah I thought it was when you said the executable image is supposed to be a complete Common Lisp implementation, so it can't depend on any existing implementation. 2018-01-25T09:37:31Z TMA quit (Ping timeout: 256 seconds) 2018-01-25T09:37:31Z hhdave quit (Ping timeout: 268 seconds) 2018-01-25T09:37:49Z Ven`` joined #lisp 2018-01-25T09:38:21Z beach: I may have used present tense rather than future tense 2018-01-25T09:38:34Z TMA joined #lisp 2018-01-25T09:38:52Z dmiles: naw you been using future tense correctly. 2018-01-25T09:39:15Z beach: It becomes too boring to write things like "the executable image (should I live long enough to make the bootstrapping procedure complete enough that such an image might actually work)...." 2018-01-25T09:40:16Z dmiles: *nod* 2018-01-25T09:44:31Z TMA quit (Ping timeout: 248 seconds) 2018-01-25T09:45:34Z dim: but at least you have a vision to share ;-) 2018-01-25T09:45:44Z beach: And a plan. 2018-01-25T09:45:50Z dim: and a plan, at that 2018-01-25T09:46:24Z dim: so SICL is about being able to write a full CL implementation in (only) CL, and with native first-class environments and some other nice improvements to the current standard, is that right? 2018-01-25T09:46:55Z smurfrobot joined #lisp 2018-01-25T09:47:18Z beach: Right. The first-class global environments were invented mainly for the purpose of bootstrapping, but they can obviously be used for other purposes like sandboxing. 2018-01-25T09:47:41Z smurfrobot quit (Remote host closed the connection) 2018-01-25T09:48:33Z beach: There are very few "improvements to the standard". Mainly implementation techniques that I hope will be better than what currently exists. Like the fast dispatch technique, and the implementation of the sequence functions. 2018-01-25T09:50:19Z TMA joined #lisp 2018-01-25T09:50:24Z hhdave joined #lisp 2018-01-25T09:51:52Z Tobbi joined #lisp 2018-01-25T09:53:14Z dim: in my book having generic “APIs” over sequences and streams (ala grey streams but natively so) and maybe hash table functions would be significant improvements to the standard “grey areas” (pun intended) 2018-01-25T09:53:28Z dim: (maybe s/grey/gray/) 2018-01-25T09:53:31Z _cosmonaut_ joined #lisp 2018-01-25T09:53:46Z dim: but well I don't have a solid book about CL (yet?) anyway ;-) 2018-01-25T09:54:10Z orivej joined #lisp 2018-01-25T09:54:15Z beach: Sure, those improvements are not terribly difficult. 2018-01-25T09:56:47Z dim: I wonder if stream level abstractions make sense for higher level (network) protocols, such as MySQL or PostgreSQL protocols 2018-01-25T09:57:41Z Shinmera: Having a streams API for arbitrary element types would be neat. 2018-01-25T09:59:07Z Kaisyu joined #lisp 2018-01-25T10:02:07Z Intensity quit (Remote host closed the connection) 2018-01-25T10:02:12Z smurfrobot joined #lisp 2018-01-25T10:03:07Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-25T10:03:59Z zooey quit (Ping timeout: 255 seconds) 2018-01-25T10:05:05Z misv quit (Ping timeout: 240 seconds) 2018-01-25T10:05:12Z misv joined #lisp 2018-01-25T10:05:43Z chens quit (Remote host closed the connection) 2018-01-25T10:06:01Z mishoo_ quit (Quit: (save-lisp-and-die)) 2018-01-25T10:06:50Z zooey joined #lisp 2018-01-25T10:06:57Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-25T10:07:37Z Chream_ joined #lisp 2018-01-25T10:08:22Z mishoo joined #lisp 2018-01-25T10:08:33Z jdz: Shinmera: you mean records? 2018-01-25T10:08:44Z jdz: Or binary/characters? 2018-01-25T10:14:55Z TMA quit (Ping timeout: 248 seconds) 2018-01-25T10:17:55Z funnel quit (Ping timeout: 260 seconds) 2018-01-25T10:19:02Z TMA joined #lisp 2018-01-25T10:23:11Z damke joined #lisp 2018-01-25T10:23:53Z TMA quit (Ping timeout: 265 seconds) 2018-01-25T10:24:55Z Shinmera: I mean being able to use streams for stuff other than integers and characters. 2018-01-25T10:25:26Z funnel joined #lisp 2018-01-25T10:25:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-25T10:25:34Z beach: Like functions? 2018-01-25T10:25:38Z Shinmera: For instance you could model exchange protocols with streams that emit objects representing messages. 2018-01-25T10:25:50Z Shinmera: So you could hide the wire details away. 2018-01-25T10:26:12Z smasta joined #lisp 2018-01-25T10:26:59Z TMA joined #lisp 2018-01-25T10:30:44Z attila_lendvai joined #lisp 2018-01-25T10:30:44Z attila_lendvai quit (Changing host) 2018-01-25T10:30:44Z attila_lendvai joined #lisp 2018-01-25T10:30:45Z smasta quit (Ping timeout: 260 seconds) 2018-01-25T10:33:37Z Shinmera: Would require a generic read-stream function to really be useful though. 2018-01-25T10:34:15Z smurfrobot joined #lisp 2018-01-25T10:34:22Z markong joined #lisp 2018-01-25T10:38:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-25T10:38:52Z ebrasca joined #lisp 2018-01-25T10:42:32Z ghard joined #lisp 2018-01-25T10:45:25Z smurfrobot joined #lisp 2018-01-25T10:49:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-25T10:55:59Z sjl joined #lisp 2018-01-25T10:57:00Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T10:57:41Z ebrasca: How to translate "(sum & 1)" to lisp? 2018-01-25T10:58:00Z Shinmera: That depends on what it's supposed to mean 2018-01-25T10:59:48Z pok quit (Quit: leaving) 2018-01-25T10:59:48Z loke: ebrasca: Is that C? 2018-01-25T10:59:57Z loke: Then it's (logand sum 1) 2018-01-25T11:00:18Z sjl quit (Ping timeout: 240 seconds) 2018-01-25T11:00:21Z ebrasca: It come from http://termbin.com/l3vi probably it is C. 2018-01-25T11:00:43Z damke_ joined #lisp 2018-01-25T11:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-25T11:02:48Z Shinmera: (ldb (byte 1 0) sum) may or may not be a more clear way to write it. 2018-01-25T11:04:00Z fikka quit (Ping timeout: 252 seconds) 2018-01-25T11:04:54Z ebrasca: I have write http://termbin.com/b11k but for some reason don't give expected checksums. 2018-01-25T11:07:56Z pok joined #lisp 2018-01-25T11:09:46Z fikka joined #lisp 2018-01-25T11:17:28Z m00natic joined #lisp 2018-01-25T11:17:36Z stylewarning: ebrasca: if you’re using SBCL there’s a dedicated function for that in the module SB-ROTATE-BYTE 2018-01-25T11:19:12Z ebrasca: stylewarning: I am implementing FAT32 for mezzano OS. 2018-01-25T11:19:35Z rumbler31 joined #lisp 2018-01-25T11:19:54Z stylewarning: ebrasca: then it might be worth abstracting it into a portable function and implementing the assembly code for it! :D 2018-01-25T11:20:16Z Guest93224 joined #lisp 2018-01-25T11:20:17Z smasta joined #lisp 2018-01-25T11:20:26Z stylewarning: ROL or ROR instructions 2018-01-25T11:21:40Z damke joined #lisp 2018-01-25T11:23:51Z rumbler31 quit (Ping timeout: 246 seconds) 2018-01-25T11:24:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-25T11:24:54Z smasta quit (Ping timeout: 252 seconds) 2018-01-25T11:29:10Z makomo quit (Ping timeout: 240 seconds) 2018-01-25T11:32:20Z Orion3k joined #lisp 2018-01-25T11:36:58Z Cymew quit (Remote host closed the connection) 2018-01-25T11:41:07Z attila_lendvai quit (Quit: Leaving.) 2018-01-25T11:45:05Z fikka quit (Ping timeout: 265 seconds) 2018-01-25T11:45:55Z fikka joined #lisp 2018-01-25T11:46:10Z orivej quit (Ping timeout: 240 seconds) 2018-01-25T11:49:16Z papachan joined #lisp 2018-01-25T11:49:27Z shifty joined #lisp 2018-01-25T11:50:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T11:51:35Z ebrasca: Yea my checksum work . First working version http://termbin.com/1p42 2018-01-25T11:52:38Z ebrasca: Shinmera , loke and stylewarning : Thanks you. 2018-01-25T11:52:40Z fikka joined #lisp 2018-01-25T11:54:11Z Chream_ quit (Ping timeout: 276 seconds) 2018-01-25T11:57:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T11:57:37Z billitch joined #lisp 2018-01-25T11:59:25Z sz0 joined #lisp 2018-01-25T12:00:10Z eminhi joined #lisp 2018-01-25T12:00:43Z Cymew joined #lisp 2018-01-25T12:01:12Z fikka joined #lisp 2018-01-25T12:05:27Z wxie joined #lisp 2018-01-25T12:08:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-25T12:09:35Z wxie quit (Ping timeout: 240 seconds) 2018-01-25T12:13:14Z fikka joined #lisp 2018-01-25T12:14:22Z Guest93224 left #lisp 2018-01-25T12:14:28Z smasta joined #lisp 2018-01-25T12:14:36Z pjb joined #lisp 2018-01-25T12:18:28Z fikka quit (Ping timeout: 268 seconds) 2018-01-25T12:18:48Z smasta quit (Ping timeout: 240 seconds) 2018-01-25T12:28:09Z fikka joined #lisp 2018-01-25T12:32:17Z EvW1 joined #lisp 2018-01-25T12:35:40Z iqubic quit (Ping timeout: 252 seconds) 2018-01-25T12:36:04Z raynold quit (Quit: Connection closed for inactivity) 2018-01-25T12:37:30Z red-dot joined #lisp 2018-01-25T12:39:41Z smurfrobot joined #lisp 2018-01-25T12:44:48Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-25T12:47:06Z chenbin joined #lisp 2018-01-25T12:47:21Z chenbin: emacswiki's install-elisp and melpa's package-archives, which is 2018-01-25T12:47:21Z chenbin: suggested? 2018-01-25T12:48:11Z Shinmera: Try #emacs 2018-01-25T12:51:29Z chenbin left #lisp 2018-01-25T12:55:28Z shifty quit (Ping timeout: 268 seconds) 2018-01-25T13:00:29Z rpg joined #lisp 2018-01-25T13:01:15Z zazzerino joined #lisp 2018-01-25T13:01:30Z deng_cn joined #lisp 2018-01-25T13:01:41Z rpg quit (Client Quit) 2018-01-25T13:03:07Z solyd quit (Quit: solyd) 2018-01-25T13:05:22Z megachombasss joined #lisp 2018-01-25T13:05:52Z megachombasss: hello guys. do you see any redundant code, errors, or things i could do in other way in this code? https://codepaste.net/bc72wz 2018-01-25T13:06:08Z beach: Plenty. 2018-01-25T13:06:22Z beach: Never put a parenthesis by itself on a line. 2018-01-25T13:06:33Z beach: In fact, never put whitespace after ( or before ). 2018-01-25T13:06:43Z beach: Use three semicolons on the top level. 2018-01-25T13:07:00Z beach: Don't have blank lines inside top-level expressions. 2018-01-25T13:07:10Z beach: Indent your code properly. 2018-01-25T13:07:44Z beach: Don't use CamelCase. Use dashes to separate words in a name. 2018-01-25T13:07:53Z beach: And use just lower-case symbols. 2018-01-25T13:08:34Z beach: And it's a bad idea to use identifiers in some language other than English, especially if, like now, you want an international crowd to understand it. 2018-01-25T13:09:40Z megachombasss: hum, could you give me an example of these error fix on one of my functions? 2018-01-25T13:09:42Z beach: Don't use the "get-" prefix in Common Lisp. Don't use the "is-" prefix either. Use the "p" suffix instead. 2018-01-25T13:09:59Z beach: Is it not clear what I mean? 2018-01-25T13:10:16Z megachombasss: i have some troubles with english sorry 2018-01-25T13:11:50Z beach: OK, let's start over. 2018-01-25T13:12:09Z beach: Do you know what whitespace is? Like blanks, tabs, and newlines? 2018-01-25T13:12:43Z megachombasss: whitespace yes 2018-01-25T13:12:46Z beach: Never put one of those before a closing parenthesis or after an opening parenthesis. 2018-01-25T13:12:58Z beach: In particular, do not put a closing parenthesis on a line by itself. 2018-01-25T13:13:16Z megachombasss: okey. what abou three semicolons on the top level 2018-01-25T13:13:19Z megachombasss: i dont understand that 2018-01-25T13:13:35Z beach: You have ;; ******** Fonction pour .... 2018-01-25T13:13:46Z beach: You should have ;;; ******* Function for.... 2018-01-25T13:13:53Z beach: With three semicolons. 2018-01-25T13:13:57Z megachombasss: what does it change? 2018-01-25T13:13:57Z solyd joined #lisp 2018-01-25T13:14:07Z beach: It will then follow conventions. 2018-01-25T13:14:13Z megachombasss: oh ok 2018-01-25T13:14:22Z megachombasss: Don't use CamelCase. Use dashes to separate words in a name. 2018-01-25T13:14:26Z megachombasss: dont understand that neither 2018-01-25T13:14:33Z beach: Emacs indents three semicolons so that they are at the left margin, but two semicolons so that it is indented with the code. 2018-01-25T13:15:04Z beach: CamelCase, is when you have a capital letter in the middle of a word, like resolutionEtiquette. 2018-01-25T13:15:38Z beach: In Common Lisp, we don't use CamelCase. Use resolution-etiquette, or rather resolution-label instead. 2018-01-25T13:16:07Z beach: Indent your code properly. Use an editor that knows about indentation. 2018-01-25T13:16:23Z beach: For instance Emacs, SLIME, and the SLIME contribution called slime-indentation. 2018-01-25T13:16:37Z paule32: hello 2018-01-25T13:16:40Z paule32: (defvar *or-gate* (list a b d)) 2018-01-25T13:16:56Z paule32: (defun half-adder (a b d) (find *or-gate* (list a b d) :test #'equal)) 2018-01-25T13:17:05Z beach: megachombasss: Perhaps it is a problem with TAB characters. In that case, make sure you don't use TABs in the code. 2018-01-25T13:17:12Z paule32: the result is always nil 2018-01-25T13:17:26Z megachombasss: y i use mix of tab and space 2018-01-25T13:17:55Z beach: megachombasss: Some paste services can handle it. Some others can't. It is best to avoid TABs. 2018-01-25T13:18:36Z stylewarning: paule32: what are A B D? 2018-01-25T13:18:41Z solyd quit (Client Quit) 2018-01-25T13:18:47Z stylewarning: In the *or-gate* 2018-01-25T13:18:55Z beach: stylewarning: You are wasting your time. 2018-01-25T13:19:00Z stylewarning: Oh ok 2018-01-25T13:19:09Z paule32: (defstruct wire (p1 100 :type integer)) 2018-01-25T13:19:17Z paule32: (defvar a (make-wire :p1 0)) 2018-01-25T13:19:21Z stylewarning: beach: how’s it going? 2018-01-25T13:19:29Z beach: megachombasss: Don't use the "set-" prefix. Use a SETF function instead. LIke (defun (setf drapeaux) ...). Even better, (defun (setf flag) ...). 2018-01-25T13:19:35Z paule32: (defvar b (make-wire :p1 0)) 2018-01-25T13:19:38Z beach: stylewarning: Fine thanks. And you? 2018-01-25T13:19:47Z paule32: (defvar c (make-wire :p1 0)) 2018-01-25T13:20:01Z stylewarning: Well as well. Hope to chip away at some substantive ELS writing today 2018-01-25T13:20:04Z beach: paule32: Stop it, please. 2018-01-25T13:20:17Z beach: stylewarning: Excellent. 2018-01-25T13:20:20Z Ven`` joined #lisp 2018-01-25T13:20:57Z rumbler31 joined #lisp 2018-01-25T13:21:06Z beach: megachombasss: So, fix the whitespace, the semicolons, the CamelCase, and the language, and then resubmit. 2018-01-25T13:21:47Z megachombasss: got another question 2018-01-25T13:21:55Z megachombasss: right now i have an error when i load this file 2018-01-25T13:22:03Z megachombasss: says that i have a , before a backquote 2018-01-25T13:22:03Z beach: megachombasss: Also, go read a text book on Common Lisp, and you will see how different their code looks from yours. 2018-01-25T13:22:13Z megachombasss: hence it doesnt says where the error is 2018-01-25T13:22:17Z megachombasss: so its like so hard to fix 2018-01-25T13:22:18Z ssake joined #lisp 2018-01-25T13:22:47Z stylewarning: megachombasss: is it hard to search for a misplaced ,? 2018-01-25T13:22:58Z megachombasss: i dont have the contrl+Z 2018-01-25T13:23:02Z megachombasss: so it can be anywhere 2018-01-25T13:23:08Z beach: (format t "~%print pour make-hash-table ~a", <- there 2018-01-25T13:23:33Z dtornabene quit (Remote host closed the connection) 2018-01-25T13:23:36Z beach: megachombasss: What implementation of Common Lisp are you using that it doesn't tell you where it is? 2018-01-25T13:24:10Z megachombasss: nvm, found it 2018-01-25T13:24:26Z megachombasss: im using clisp 2.49 2018-01-25T13:24:30Z beach: megachombasss: Most people here recommend SBCL, CCL, or ECL. 2018-01-25T13:24:54Z beach: megachombasss: So if you want help, it is better to use one of the more widely used implementations. 2018-01-25T13:25:17Z megachombasss: well, i have to use the one installed on university pc's 2018-01-25T13:25:18Z megachombasss: oldshcool 2018-01-25T13:25:31Z beach: What university is that? 2018-01-25T13:25:56Z stylewarning: megachombasss: your CASE INST shouldn’t have the case clause symbols quoted 2018-01-25T13:26:07Z Shinmera: You could try https://portacle.github.io, which will ship SBCL and should run without installation or admin privs. 2018-01-25T13:26:56Z megachombasss: well, knowing i have only 1 day left for refactor this code , gonna be hard 2018-01-25T13:27:32Z windblow quit (Quit: windblow) 2018-01-25T13:27:40Z beach: Oh, so I am wasting my time. You are not going to want to learn Common Lisp after this assignment is due. I guess I'll go do something else then. 2018-01-25T13:31:39Z megachombasss: tbh lisp itself doesnt interest me at all, knowing i have to do this project and teacher didnt give a single course on how lisp works 2018-01-25T13:31:54Z megachombasss: we must do a lisp VM and a lisp COMPILER without a course of lisp 2018-01-25T13:32:21Z Shinmera: Well you won't endear us to doing your course work for you 2018-01-25T13:32:30Z stylewarning: megachombasss: Lisp is a wonderful language to write such things. 2018-01-25T13:33:12Z megachombasss: nono, dont ask you to do my course work (as i literally had no courses about it) 2018-01-25T13:33:25Z megachombasss: just you to see if there are things that can be made diferrently 2018-01-25T13:34:00Z beach: You never told us what university this is. 2018-01-25T13:34:12Z stylewarning: megachombasss: If you’re a beginning programmer, then the book Common Lisp: A Gentle Intro by Touretzky is a great book to teach yourself Lisp. If you know another programming language at an advanced level, then Practical Common Lisp is a great resource. 2018-01-25T13:35:23Z stylewarning: megachombasss: unfortunately for beginners, it’s easy to write bad Lisp code, with poor efficiency, style, and use of the language features 2018-01-25T13:36:04Z openthesky quit (Ping timeout: 260 seconds) 2018-01-25T13:37:21Z paule32: stylewarning: https://pastebin.com/njYeQzyA 2018-01-25T13:37:32Z groovy2shoes quit (Ping timeout: 276 seconds) 2018-01-25T13:38:39Z beach: paule32: Why do you keep doing this? I don't understand. 2018-01-25T13:39:24Z paule32: beach: i would ask, why the result of "compare" always is nil 2018-01-25T13:40:02Z stylewarning: paule32: Write a function called GATE-EQUAL which tests if two gates are the same for your purpose. Happy to help after you’ve done that and can explain that function to me. 2018-01-25T13:40:29Z beach: paule32: I am asking you why, despite being told an uncountable number of times, you continue submitting code that does not respect the conventions. I have told you over and over again that it is very impolite. And you keep right on doing it. 2018-01-25T13:43:52Z fikka quit (Ping timeout: 252 seconds) 2018-01-25T13:44:20Z rumbler31 quit (Remote host closed the connection) 2018-01-25T13:48:19Z Chream_ joined #lisp 2018-01-25T13:50:12Z groovy2shoes joined #lisp 2018-01-25T13:53:08Z muyinliu joined #lisp 2018-01-25T13:53:15Z deng_cn quit (Read error: Connection reset by peer) 2018-01-25T13:54:24Z mnoonan quit (Remote host closed the connection) 2018-01-25T13:55:12Z deng_cn joined #lisp 2018-01-25T13:56:24Z pfdietz_ joined #lisp 2018-01-25T13:57:02Z Jesin quit (Quit: Leaving) 2018-01-25T13:57:30Z KZiemian joined #lisp 2018-01-25T13:57:34Z KZiemian: hello world! 2018-01-25T13:58:14Z KZiemian: do you know that book "Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS" by Sonya Keene is free to download 2018-01-25T13:58:31Z KZiemian: or it need to be bought to read it with clear concience? 2018-01-25T13:59:06Z KZiemian: I don't want steel work of better programer than me 2018-01-25T13:59:10Z pfdietz quit (Ping timeout: 240 seconds) 2018-01-25T13:59:18Z beach: Hello KZiemian. It didn't use to be downloadable. May it has changed. 2018-01-25T13:59:42Z Cymew quit (Read error: Connection reset by peer) 2018-01-25T13:59:49Z Cymew joined #lisp 2018-01-25T14:00:01Z smurfrobot quit (Remote host closed the connection) 2018-01-25T14:00:30Z Xach: KZiemian: i am nearly certain it is not free to download 2018-01-25T14:02:15Z KZiemian: Xach: thank you for information 2018-01-25T14:02:30Z smasta joined #lisp 2018-01-25T14:02:48Z quazimodo quit (Ping timeout: 260 seconds) 2018-01-25T14:03:12Z shrdlu68 joined #lisp 2018-01-25T14:04:32Z Bike joined #lisp 2018-01-25T14:05:08Z EvW1 quit (Ping timeout: 252 seconds) 2018-01-25T14:06:48Z smasta quit (Ping timeout: 240 seconds) 2018-01-25T14:06:59Z KZiemian quit (Ping timeout: 260 seconds) 2018-01-25T14:07:14Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-25T14:10:16Z fittestbits left #lisp 2018-01-25T14:10:31Z JonSmith quit (Remote host closed the connection) 2018-01-25T14:11:00Z megachombasss: https://codepaste.net/3nyez7 i dont manage to see where the hell he finds more than 2 params for the if? 2018-01-25T14:12:03Z Bike: (if (gethash ...) (setmemoire ...) (gethash ...) (progn ...)) 2018-01-25T14:12:21Z Bike: four 2018-01-25T14:13:55Z pjb: megachombasss: http://sprunge.us/gdaZ 2018-01-25T14:13:57Z dec0n joined #lisp 2018-01-25T14:14:32Z pjb: megachombasss: look at the parentheses under the IF. There should be only one or two! 2018-01-25T14:15:28Z pjb: megachombasss: notice, if you used setf as I told you yesterday, and as I explain again in my sprunge, you wouldn't have to call gethash twice, since setf already returns the last value assigned! 2018-01-25T14:16:32Z megachombasss: wait a sec, the source code of what you've sent me seems exactly as the same i using, hence the one im using wasnt that one 2018-01-25T14:16:45Z megachombasss: so im refactoring a code that someone refactored of another code? dafuk 2018-01-25T14:17:09Z dec0n_ quit (Ping timeout: 264 seconds) 2018-01-25T14:17:45Z pjb: megachombasss: it looks like the code shown in the error message you get is expanded from a macro. 2018-01-25T14:18:00Z Guest95035 is now known as kolb 2018-01-25T14:18:57Z pjb: megachombasss: have a look at: http://cliki.net/TutorialClispDebugger 2018-01-25T14:19:17Z megachombasss: could you link me the source code of what you've sent me? 2018-01-25T14:19:36Z Xach: megachombasss: who? 2018-01-25T14:19:42Z pjb: megachombasss: when you get an error, you need to locate the source of the error; it's not always the form or the frame the debugger shows; you have to look up in the stack frames, to locate the actual source form or frame where the error occured. 2018-01-25T14:19:50Z pjb: megachombasss: http://sprunge.us/gdaZ 2018-01-25T14:19:50Z megachombasss: coz he may explain some fonctions i got no clue of what they do 2018-01-25T14:20:18Z pjb: megachombasss: so in the case of your error, it's actually in case-saut! 2018-01-25T14:20:35Z megachombasss: ye , but is that the only source? coz they should be more fonctions 2018-01-25T14:20:39Z megachombasss: where did you get that from 2018-01-25T14:21:15Z pjb: what? 2018-01-25T14:21:44Z pjb: I get a lot of things from a lot of different sources. 2018-01-25T14:22:13Z thijso joined #lisp 2018-01-25T14:22:15Z megachombasss: well, the code you just pasted me, its exactly what i need. BUT, they should be more functions in that code 2018-01-25T14:22:22Z megachombasss: so i was wondering where did you get that from 2018-01-25T14:22:41Z pjb: megachombasss: I'm not rewriting your whole project! It comes from my brains! 2018-01-25T14:23:24Z deng_cn quit (Read error: Connection reset by peer) 2018-01-25T14:23:31Z makomo joined #lisp 2018-01-25T14:23:36Z pjb: Youngsters these days! They believe things come from out there, from the Internet, instead of from the brains of somebody, including themselves! 2018-01-25T14:23:41Z pjb: You are hopeless! 2018-01-25T14:24:03Z Bike: well there's no case-saut in your paste 2018-01-25T14:24:09Z megachombasss: oh wait a sec 2018-01-25T14:24:19Z quazimodo joined #lisp 2018-01-25T14:24:19Z megachombasss: so you actually wrote that from what i've sent earlyer? 2018-01-25T14:24:21Z pjb: Bike: case-saut is in megachombasss's code. 2018-01-25T14:24:31Z pjb: megachombasss: of course. It's a commentary on it. 2018-01-25T14:24:40Z megachombasss: DAMN it, now i understand lol 2018-01-25T14:24:50Z megachombasss: then im going to take a close look at it to see 2018-01-25T14:24:59Z Bike: oh, there it is, my msitake 2018-01-25T14:25:32Z Bike: looks kind of like the weird indentation makes it hard to see the broken if 2018-01-25T14:25:34Z dddddd quit (Remote host closed the connection) 2018-01-25T14:25:38Z deng_cn joined #lisp 2018-01-25T14:26:01Z pjb: Well, I don't know, first thing I do when I load bad lisp code in emacs, is C-x h C-M-\ 2018-01-25T14:26:23Z pjb: and then M-x replace-regexp ) C-q C-j SPC * ) RET )) RET 2018-01-25T14:26:40Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-25T14:26:40Z pjb: How else could you read ita? 2018-01-25T14:26:47Z pjb: s/a?/?/ 2018-01-25T14:26:49Z fikka joined #lisp 2018-01-25T14:29:15Z warweasle joined #lisp 2018-01-25T14:30:58Z Murii joined #lisp 2018-01-25T14:32:19Z proteanthread joined #lisp 2018-01-25T14:33:48Z megachombasss: i still have problems with this if clause. source : https://codepaste.net/rodwcr 2018-01-25T14:34:07Z megachombasss: dont know why it says i have to much arguments for the if condition, when i have 2 in both of them 2018-01-25T14:34:24Z beach: It looks like you didn't follow one single piece of advice I gave you. 2018-01-25T14:34:59Z pjb: megachombasss: it should look like: http://sprunge.us/FKYI 2018-01-25T14:35:00Z megachombasss: it isnt that, before putting it "on the clisp standard", i need that the code work first 2018-01-25T14:35:20Z pjb: megachombasss: it can help to use emacs, with slime and paredit, so that indentation is performed automatically and correctly by emacs. 2018-01-25T14:35:39Z igemnace joined #lisp 2018-01-25T14:35:44Z beach: megachombasss: You don't understand. You are submitting your code for others to read. If you don't follow conventions, you are putting the burden on those other people, and that is VERY impolite. 2018-01-25T14:36:19Z beach: megachombasss: Is this the first time you program? 2018-01-25T14:36:26Z beach: ... in any language, I mean? 2018-01-25T14:36:41Z megachombasss: pjb, the code you gave me is still giving me a IF error 2018-01-25T14:36:54Z megachombasss: yes, i am experienced in other languages, c, c++, java , python 2018-01-25T14:37:55Z beach: megachombasss: Then you know that if you want to communicate your code for others to read, it must have the correct indentation, spacing, naming convention, etc. 2018-01-25T14:37:59Z pjb: megachombasss: for resetMemoire, you need &key or &optional: defun resetMemoire (&key (VM 'vm) (tmem 10000)) 2018-01-25T14:38:31Z pjb: megachombasss: I told you the IF error was in case-saut, not in case-other! 2018-01-25T14:38:42Z megachombasss: ah, in case saut? let me check 2018-01-25T14:39:00Z pjb: You don't even need to know how to read, just to copy-and-paste-and-search… 2018-01-25T14:39:06Z ghard: sheesh :) 2018-01-25T14:39:39Z hiroaki joined #lisp 2018-01-25T14:39:41Z Ven`` quit (Ping timeout: 268 seconds) 2018-01-25T14:39:50Z Ven`` joined #lisp 2018-01-25T14:40:11Z megachombasss: well, give me a couple minutes that i fix all this mess, put it in decent clisp lookin, and i come back 2018-01-25T14:40:19Z pjb: ok 2018-01-25T14:41:26Z pjb: In universities, they should start by teaching emacs, as a prerequisite to any programming courses… 2018-01-25T14:42:15Z dlowe: One of my "todo" projects is to make a really nice stand-alone source code formatter for CL. 2018-01-25T14:42:29Z dlowe: If someone else wants to pick that up, it'd be great. 2018-01-25T14:42:39Z tenplaza9 joined #lisp 2018-01-25T14:43:01Z rumbler31 joined #lisp 2018-01-25T14:43:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T14:43:32Z pjb: Can be based on emacs, you can write stand alone scripts with emacs… 2018-01-25T14:43:35Z ghard: Naah you cannot install emacs with npm :( 2018-01-25T14:43:50Z pjb: Then it only means npm doesn't exist. 2018-01-25T14:44:12Z ghard: It doesn't for me :) 2018-01-25T14:44:47Z tenplaza9 left #lisp 2018-01-25T14:44:57Z dlowe: One not based on emacs :p 2018-01-25T14:45:30Z tazjin: @dlowe why would you want to reimplement everything emacs already has though? 2018-01-25T14:45:41Z safe joined #lisp 2018-01-25T14:46:02Z muyinliu: pjb: The Emacs stuff remind me of the early days...It's quite difficult to get used to Emacs. 2018-01-25T14:46:03Z tazjin: writing executable elisp scripts is trivial and emacs is widely available (and much easier to install than npm and all the rest of that ecosystem) 2018-01-25T14:46:11Z dlowe: tazjin: I wouldn't need everything emacs has, so I don't understand your question 2018-01-25T14:46:40Z pjb: In typical programs, you don't use all of libc, but you still link with it.. 2018-01-25T14:47:12Z ghard: Things coud be worse - my daughter has her first programming course in the uni so I had to install netbeans on one of my boxen... 2018-01-25T14:47:46Z red-dot joined #lisp 2018-01-25T14:50:25Z muyinliu: ghard: What program language did she learn? 2018-01-25T14:50:46Z ghard: The abomination - Java 2018-01-25T14:50:55Z deng_cn quit (Ping timeout: 260 seconds) 2018-01-25T14:51:12Z pjb: bah, java 8 has lambda… 2018-01-25T14:51:44Z pjb: Be sure to show her FizzBuzz, Enterprise Edition… 2018-01-25T14:51:45Z ghard: Guess so, but still I thought I left all that boilerplate behind in around 2001 2018-01-25T14:52:12Z ghard: Call me again when java is homoiconic and has proper macros ;) 2018-01-25T14:52:36Z pjb: I don't remember if FizzBuzz Enterprise Edition uses the Interpreter Pattern. Perhaps it can be improved… 2018-01-25T14:53:17Z smasta joined #lisp 2018-01-25T14:53:27Z megachombasss: well, i've fixed the error in case-saut 2018-01-25T14:53:29Z oleo joined #lisp 2018-01-25T14:53:30Z ghard: Thing is she's studying molecular biology, not CS so they don't care about programming hygiene 2018-01-25T14:53:51Z megachombasss: therefore, event with your comments, i have high troubles understanding some of the transformations you recomend me to do 2018-01-25T14:54:32Z megachombasss: so sir pjb, i would really need asistance of this. im whiling to pay if needed , but i really need to present something for tomorrow 2018-01-25T14:54:41Z megachombasss: actually, my university career depends of this 2018-01-25T14:54:48Z pjb: megachombasss: in C or C++, you would use a struct to define vm? Then use defstruct in CL! 2018-01-25T14:54:50Z megachombasss: lisp is a pure nightmare for me 2018-01-25T14:55:39Z pjb: megachombasss: it's really a programming language just like any other. Since you said you know already four of them, you should be able to jump into CL without any problem. There's nothing different. 2018-01-25T14:55:55Z megachombasss: well actually so much parenthesis give headache 2018-01-25T14:56:03Z megachombasss: im having more troubles with the language itself than with the VM 2018-01-25T14:56:07Z pjb: Like in Java and Python, there are objects, classes, methods, a garbage collector. 2018-01-25T14:56:22Z pjb: megachombasss: there are fewer parentheses in lisp than in C or worse, C++! 2018-01-25T14:56:35Z ghard: megachombass: emacs is your friend if you have problems with counting parentheses 2018-01-25T14:56:37Z pjb: (if you count {} [] <> as parentheses too, which you should0. 2018-01-25T14:57:37Z zazzerino: megachombasss: the parenthesis are giving you a headache because you're not using an editor that can help you deal with them. You've already been told this but it didn't seem to get though- try using https://portacle.github.io/ 2018-01-25T14:57:53Z megachombasss: using gedit 2018-01-25T14:57:58Z pjb: Well, no. 2018-01-25T14:58:06Z megachombasss: not familliar with emacs, and those are the only few installed on these computers 2018-01-25T14:58:07Z zazzerino: megachombasss: yes, and that's making things difficult for you 2018-01-25T14:58:26Z dec0n quit (Read error: Connection reset by peer) 2018-01-25T14:58:33Z pjb: megachombasss: but if you do, you use it wrong, because it features: * Bracket matching !!!! 2018-01-25T14:58:57Z moei joined #lisp 2018-01-25T14:59:04Z fikka joined #lisp 2018-01-25T14:59:09Z smasta quit (Ping timeout: 264 seconds) 2018-01-25T14:59:34Z pjb: megachombasss: furthermore, it even has a lisp syntax highlighting module: https://ubuntuforums.org/showthread.php?t=2253625 2018-01-25T14:59:53Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T15:00:00Z muyinliu: megachombasss: You REALLY need Emacs with rainbow-delimiters, take a look at this: http://pasteall.org/pic/index.php?id=123935 2018-01-25T15:01:25Z zazzerino: Are there really universities that require Common Lisp for projects but don't allow students to install or use emacs? I find it hard to believe, but I didn't study programming in school... 2018-01-25T15:02:32Z rippa joined #lisp 2018-01-25T15:02:34Z ghard: Worse - dropping someone into CL straight from imperative languages without giving an initial course first. 2018-01-25T15:02:36Z pjb: Universities let you use any tool you want in general. 2018-01-25T15:04:15Z ghard_ joined #lisp 2018-01-25T15:05:16Z rumbler31: There's no way this user hasn't had a lead up of some kind to have to use lisp for their final project. There's no fooling us in that regard. But it is not uncommon for departments to set up hosted machines where students must save and submit their work. 2018-01-25T15:06:07Z rumbler31: https://www.tutorialspoint.com/execute_lisp_online.php 2018-01-25T15:06:16Z rumbler31: in browser editor with paren matching. too easy 2018-01-25T15:06:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-25T15:06:41Z m00natic quit (Read error: Connection reset by peer) 2018-01-25T15:07:04Z ghard_ quit (Client Quit) 2018-01-25T15:07:25Z rumbler31: ok i take that back, paren matching is a little weak, but 2018-01-25T15:08:20Z rumbler31: but its got htat repl experience, using clisp 2.49 2018-01-25T15:08:43Z fikka joined #lisp 2018-01-25T15:08:44Z sjl joined #lisp 2018-01-25T15:09:05Z FreeBirdLjj joined #lisp 2018-01-25T15:09:37Z dddddd joined #lisp 2018-01-25T15:10:00Z rumbler31: megachombasss: see my link 2018-01-25T15:10:39Z quazimodo quit (Ping timeout: 246 seconds) 2018-01-25T15:12:21Z muyinliu: rumbler31: This online-editor is quire poor, without auto-indent or colorful parentheses... 2018-01-25T15:13:04Z orivej joined #lisp 2018-01-25T15:13:13Z rumbler31: its not great. but its better than gedit, and I can't find the other ones that were fully featured 2018-01-25T15:15:11Z sebastien_: which GTK+ binding would you recommend for a new application? cl-cffi-gtk or gtk-cffi? 2018-01-25T15:16:31Z sebastien_: the difference between the two is not obvious at first glance, though cl-cffi-gtk seems more maintained 2018-01-25T15:20:22Z zazzerino: sebastien_: I don't personally have experience with either, but I know nEXT browser (https://github.com/next-browser/next) uses cl-cffi-gtk 2018-01-25T15:21:16Z attila_lendvai joined #lisp 2018-01-25T15:21:16Z attila_lendvai quit (Changing host) 2018-01-25T15:21:16Z attila_lendvai joined #lisp 2018-01-25T15:21:42Z sebastien_: zazzerino: thanks for the data point 2018-01-25T15:21:48Z JonSmith joined #lisp 2018-01-25T15:25:09Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-25T15:25:58Z muyinliu: I wrote a Common Lisp CFFI wrapper for GraphicsMagickWand: https://github.com/muyinliu/cl-graphicsmagick 2018-01-25T15:26:44Z JonSmith quit (Ping timeout: 276 seconds) 2018-01-25T15:28:06Z smurfrobot joined #lisp 2018-01-25T15:28:21Z rumbler31: thank you! 2018-01-25T15:29:16Z muyinliu: And a CFFI wrap of fswatch, a cross-platform file change monitor: https://github.com/muyinliu/cl-fswatch 2018-01-25T15:31:46Z rumbler31: I've always wanted to wrap native libs but it seems intimidating. how did you get started? did you leveerage any automatic header file parsing? 2018-01-25T15:32:31Z Ven`` joined #lisp 2018-01-25T15:33:22Z muyinliu: rumbler31: No...Only SWIG could be a little help :( 2018-01-25T15:34:18Z zazzerino: rumbler31: cffi has excellent documentation. Something that's nice about wrapping libs in cl is you can do it interactively, and can start with just the functions you need. 2018-01-25T15:34:35Z muyinliu: rumbler31: Mostly I wrote those CFFI wrapper by hand. 2018-01-25T15:34:51Z Shinmera: rumbler31: Just type it out 2018-01-25T15:37:12Z rumbler31: shinmera: speaking of which, I know that wrapping c++ libs is a different beast. how did you learn what you needed to know to make it happen? 2018-01-25T15:37:20Z Shinmera: I did not 2018-01-25T15:38:19Z Shinmera: If you do need to do it though the strategy is simple: write a C library that exposes all constructors, methods, functions, and structs. Then bind that. It's extremely tedious though, so I'd never do it myself. 2018-01-25T15:38:38Z rumbler31: Er, well, what exactly did you do? 2018-01-25T15:38:44Z muyinliu: zazzerino: The demo in CFFI's doc is not complete(especially about how to wrap Windows libs). I have to try my best to collect info from everywhere :( 2018-01-25T15:38:51Z Shinmera: I never wrapped any C++ libraries 2018-01-25T15:39:52Z muyinliu: rumbler31: Can't wrap C++ libs directly. Sadly. 2018-01-25T15:40:04Z rumbler31: well I guess i didn't technically mean directly 2018-01-25T15:40:40Z orivej quit (Ping timeout: 240 seconds) 2018-01-25T15:40:57Z muyinliu: rumbler31: You have to write some C code to wrap C++ functions. 2018-01-25T15:43:02Z pjb: OR, implement the name mangler of your C++ compiler. 2018-01-25T15:43:35Z zazzerino: I found it useful to look at examples in the domain I'm currently working on (audio programming). Tito Latini wrote some relatively simple wrappers for a few c libs for his Incudine library. You can find them at https://sourceforge.net/p/incudine/incudine/ci/master/tree/contrib/ 2018-01-25T15:43:59Z zazzerino: won't help much with c++ libs, though... 2018-01-25T15:44:04Z muyinliu: pjb: Is there any example? 2018-01-25T15:44:06Z pjb: OR use clasp. 2018-01-25T15:44:22Z Cymew quit (Remote host closed the connection) 2018-01-25T15:44:32Z muyinliu: pjb: clasp...LOL 2018-01-25T15:44:45Z Shinmera: What's "lol" about it 2018-01-25T15:44:58Z pjb: the name :-) 2018-01-25T15:45:14Z brendyn quit (Ping timeout: 252 seconds) 2018-01-25T15:45:52Z Shinmera: Okey 2018-01-25T15:47:16Z Murii is now known as vnx 2018-01-25T15:47:23Z rumbler31: shinmera: so what did you target to get access to qt? 2018-01-25T15:47:31Z Shinmera: I didn't write CommonQt 2018-01-25T15:48:05Z rumbler31: wow I could have sworn that was you 2018-01-25T15:48:11Z Shinmera: I wrote Qtools. 2018-01-25T15:48:40Z Shinmera: Anyway, even CommonQt didn't really bind C++, it used Smoke which is an autogenerated C wrapper for Qt. 2018-01-25T15:49:25Z saki quit (Quit: saki) 2018-01-25T15:50:40Z Cymew joined #lisp 2018-01-25T15:50:47Z rumbler31: oh, thank you for clearing that up 2018-01-25T15:51:09Z rumbler31: and on another note, I feel that linking c++ libs is more complicated than simply implementing the correct name mangling 2018-01-25T15:51:48Z Shinmera: Well if you want dynamic dispatch you'll also need to implement how vtables work 2018-01-25T15:52:20Z Shinmera: And if you want exception handling, you'll need to handle that as well (good luck with that one) 2018-01-25T15:52:35Z Orion3k quit (Remote host closed the connection) 2018-01-25T15:53:05Z Shinmera: But, even with just name mangling (and thus static dispatch) you can get pretty far. 2018-01-25T15:54:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-25T15:54:56Z rumbler31: so if you want to call a constructor for classes with heirarchies and dynamic dispatch, you have to do all that yourself, call the base class constructors in order, wire up the vtables. 2018-01-25T15:56:04Z Shinmera: if I remember correctly constructors are override unless they explicitly call super or whatever, so you don't need to implement that bit. 2018-01-25T15:56:43Z Cymew joined #lisp 2018-01-25T15:59:05Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-25T15:59:30Z orivej joined #lisp 2018-01-25T15:59:57Z rumbler31: so objects store virtual methods as pointers to a central vtable, right? 2018-01-25T16:00:17Z rumbler31: ahh i'll go google it 2018-01-25T16:00:57Z smurfrobot quit (Remote host closed the connection) 2018-01-25T16:01:10Z alexmlw joined #lisp 2018-01-25T16:01:33Z Cymew quit (Ping timeout: 264 seconds) 2018-01-25T16:02:44Z Cymew joined #lisp 2018-01-25T16:07:04Z proteanthread quit 2018-01-25T16:07:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-25T16:11:25Z BitPuffin joined #lisp 2018-01-25T16:14:07Z beach: It would probably be faster to use my generic dispatch technique than to use vtables. 2018-01-25T16:14:42Z Shinmera: Yeah, if you replicate the type hierarchy on the lisp side you can implement the dispatch yourself. 2018-01-25T16:15:44Z Shinmera: Well, the type hierarchy and method attachment (which classes even define a method of their own) 2018-01-25T16:16:51Z beach: It would be somewhat ironic, though, if the fastest C++ implementation would use a dispatch technique from Common Lisp. 2018-01-25T16:17:25Z Shinmera: Wasn't there a JS compiler in CL that was faster than browser engines at the time 2018-01-25T16:17:59Z beach: Possibly. I don't think I ever kept track of JavaScript stuff. 2018-01-25T16:18:22Z Xach: cl-js is cool but even when new was a generation behind in performance 2018-01-25T16:18:39Z Xach: i would still like to use it to try to make a js interface for non-cl users to customize cl software. 2018-01-25T16:19:05Z rumbler31: that doesn't help if the library code needs to call the virtual methods, does it? 2018-01-25T16:19:21Z Shinmera: the library code will use whatever's baked in to the library. 2018-01-25T16:19:46Z vlatkoB_ joined #lisp 2018-01-25T16:19:55Z vlatkoB quit (Read error: Connection reset by peer) 2018-01-25T16:20:12Z igemnace quit (Read error: Connection reset by peer) 2018-01-25T16:20:14Z rumbler31: if library code calls a virtual method on an object you passed it, the resolution of the final function call comes from a callback in lisp, right? 2018-01-25T16:20:31Z Shinmera: No, why? 2018-01-25T16:20:46Z igemnace joined #lisp 2018-01-25T16:21:26Z zaquest quit (Read error: Connection reset by peer) 2018-01-25T16:23:41Z pjb: megachombasss: https://pastebin.com/7pTwi9fh 2018-01-25T16:24:16Z Bike: making generic functions static seems like a bit of an endeavor. And you'd either get a combinatorial explosion or have to assume some aspects of the class hierarchy don't change (you have to assume that anyway, of course) 2018-01-25T16:24:19Z rumbler31: because the object has a pointer to the vtable, if the library code makes calls to virtual functions, the compiler would have baked in the pointer lookups to the correct call. so what gets given to the library would need to be an object with a pointer to a table of function pointers, and if those pointers resolve to functions in lisp then they'd need to be callbacks 2018-01-25T16:24:55Z Shinmera: rumbler31: I'm not talking about allowing you to add methods from the lisp side. 2018-01-25T16:25:06Z Shinmera: just replicating the dispatch that is already present in the library. 2018-01-25T16:25:14Z Shinmera: to avoid having to know about the vtable layout. 2018-01-25T16:25:50Z rumbler31: but doesn't library code making those calls need that information? 2018-01-25T16:26:03Z Shinmera: that's already baked into the library. How else could it possibly function? 2018-01-25T16:27:45Z milanj joined #lisp 2018-01-25T16:28:46Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T16:30:09Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-25T16:30:38Z rumbler31: I've typed up several lines. But the only common response among them is "I don't know" 2018-01-25T16:30:54Z saki joined #lisp 2018-01-25T16:31:28Z Shinmera: That's because it doesn't function otherwise. 2018-01-25T16:32:54Z Shinmera: I don't know how exactly it works in C++, but typically a method call with dynamic dispatch works as follows: dereference the object to get the vtable, load the value from a fixed offset in that table for the specific method you want to call, then simply call that value (address) with the rest of the arguments. 2018-01-25T16:33:26Z Shinmera: The vtable is part of the static memory allocated by the library. 2018-01-25T16:34:51Z rumbler31: I must be reading too much into what you said earlier. 2018-01-25T16:34:57Z rumbler31: but that answers a few questions 2018-01-25T16:35:05Z Shinmera: If you know 1) what the class hierarchy is 2) which classes define which methods, and 3) what type an object has at runtime, you can replicate the dispatch without needing to even look at the vtable. 2018-01-25T16:35:37Z Shinmera: Or the object's storage for that matter. 2018-01-25T16:35:46Z rumbler31: ohhhhh 2018-01-25T16:35:48Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-25T16:36:09Z rumbler31: hold pointers to the library methods in lisp, dispatch in lisp to the correct calls 2018-01-25T16:36:13Z Shinmera: Yes. 2018-01-25T16:36:27Z beach: ... which would also be faster than what the library does. :) 2018-01-25T16:36:51Z Chream_ quit (Read error: Connection reset by peer) 2018-01-25T16:37:08Z solyd joined #lisp 2018-01-25T16:37:19Z rumbler31: I mistakenly assumed that the runtime is responsible for wiring up the vtable 2018-01-25T16:37:40Z turkja quit (Ping timeout: 240 seconds) 2018-01-25T16:37:47Z beach: You attribute way too much dynamic behavior to C++, I think. :) 2018-01-25T16:38:04Z rumbler31: lol indeed 2018-01-25T16:38:21Z Chream_ joined #lisp 2018-01-25T16:41:59Z TMA: beach: not necessarily faster. it is three instructions (two memory fetches and one indirect call) in the case of single inheritance; it is more involved in the multiple inheritance case and in case of virtual base classes, but it is hard to beat the performance of the simple case 2018-01-25T16:43:11Z Shinmera: I think beach's method can be faster because it does no memory fetches. 2018-01-25T16:43:50Z beach: TMA: Someone would have to verify that. But it won't be me. :) 2018-01-25T16:45:23Z zooey quit (Ping timeout: 255 seconds) 2018-01-25T16:46:07Z flamebeard quit (Quit: Leaving) 2018-01-25T16:46:40Z makomo quit (Ping timeout: 240 seconds) 2018-01-25T16:46:51Z Chream_2 joined #lisp 2018-01-25T16:47:40Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-25T16:47:56Z zooey joined #lisp 2018-01-25T16:48:44Z Folkol joined #lisp 2018-01-25T16:50:26Z TMA: beach: I think I have read someone verifying the speed of lisp's generic function dispatch and c++ vtable lookup dispatch, but that was a long time ago and moreover not entirerly the same thing. (so yes, someone would have to verify that) 2018-01-25T16:50:53Z raynold joined #lisp 2018-01-25T16:51:11Z beach: If you read it a long time ago, then the Common Lisp way was using hash tables which is slower than my technique. 2018-01-25T16:51:30Z zazzerino: Does anyone know of a common lisp library similar to clojure's hugsql? (https://github.com/layerware/hugsql) 2018-01-25T16:52:30Z rumbler31: beach: where can I read about your technique 2018-01-25T16:53:17Z beach: http://metamodular.com/generic-dispatch.pdf 2018-01-25T16:53:32Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-25T16:54:14Z rumbler31: ty 2018-01-25T16:54:21Z beach: ywlcm 2018-01-25T16:54:45Z beach: rumbler31: scymtym has some benchmarks showing that it is significantly faster than the PCL technique, which is used by SBCL among others. 2018-01-25T16:55:17Z rumbler31: sweet 2018-01-25T16:55:40Z Shinmera: scymtym: Speaking of SICL dispatch in SBCL, what are the roadblocks to getting that merged in? 2018-01-25T16:55:47Z attila_lendvai quit (Quit: Leaving.) 2018-01-25T16:55:48Z iqubic joined #lisp 2018-01-25T16:56:02Z Shinmera: Or completed 2018-01-25T16:56:44Z iqubic: Does slime require internet access to work? 2018-01-25T16:56:53Z scymtym: Shinmera: plenty. i don't have time right now, but i can write down a list later 2018-01-25T16:56:59Z beach: Shinmera: The SICL technique as documented requires classes to have unique numbers (that change when the class is redefined). SBCL doesn't have that. So, as I recall, scymtym is using the address of the class metaobject instead. 2018-01-25T16:57:10Z rumbler31: iqubic: no but installing anything with quicklisp might, such as the slime-helper 2018-01-25T16:57:12Z beach: But that requires the class not to move as a result of a GC. 2018-01-25T16:57:23Z Shinmera: beach: Right 2018-01-25T16:57:44Z iqubic: rumbler31: That's what I figured. 2018-01-25T16:57:53Z beach: Shinmera: So, either you convince the SBCL maintainers to introduce class numbers, or you make them swear that classes will never move. None of which is going to happen. 2018-01-25T16:58:24Z rumbler31: iqubic: or more esoterically, if for some reason you've brought your loopback interface down, you'll have silent errors that will confound you for a little while, so don't do that ;-) 2018-01-25T16:59:33Z scymtym: beach: it's more nuanced than that in both regards. as i said at time, the benchmarks are not ideal and it cannot be concluded that (my variation of) fastgf is significantly faster in all cases. secondly, the dispatch i implemented uses multiple kinds of decisions, based on lowtags, widetags, layout addresses, EQ-comparisons and EQL-comparisons 2018-01-25T16:59:58Z rumbler31: iirc the symptom is that there is no error when opening the socket, so swank starts fine, but nothing can connect, so slime connect fails. 2018-01-25T17:00:09Z beach: scymtym: Sure. I just gave him the big picture. I hope it was not completely wrong. 2018-01-25T17:00:12Z iqubic: What does loopback mean? 2018-01-25T17:00:12Z iqubic: IDK what that even is. 2018-01-25T17:00:28Z iqubic: Is there a better way to do this: (apply #'+ (number-sequence 1 100))? 2018-01-25T17:00:51Z rumbler31: ifconfig lo0 2018-01-25T17:01:04Z iqubic: I feel like I have to use apply to pass a list into +. 2018-01-25T17:01:28Z loli: well you could use reduce as well 2018-01-25T17:01:34Z iqubic: that seems like such a common design thing. 2018-01-25T17:02:10Z iqubic: loli: My main issue is wanting to pass a list to a function that only takes &rest params. 2018-01-25T17:02:17Z iqubic: Is there a macro for that? 2018-01-25T17:02:24Z Bike: nope, that's what apply is for 2018-01-25T17:02:26Z Shinmera: clhs apply 2018-01-25T17:02:26Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_apply.htm 2018-01-25T17:03:01Z scymtym: beach: it wasn't, of course. and i'm not denying that fastgf is or can be faster than PCL. in fact i believe that is the case. i'm just saying that the benchmarks i did so far are not sufficient evidence for that conclusion 2018-01-25T17:03:26Z beach: scymtym: Fair enough. I'll quit saying that. :) 2018-01-25T17:03:27Z Bike: (apply #'+ (number-sequence 1 100)) can be better done as (/ (+ (* 100 100) 100) 2), natch 2018-01-25T17:04:06Z shrdlu68: iqubic: #'reduce 2018-01-25T17:04:50Z scymtym: beach: ok 2018-01-25T17:05:37Z beach: scymtym: Do you share my sentiment that it would be hard to convince the SBCL maintainers to do what it takes to support a good version of my dispatch technique? 2018-01-25T17:06:23Z iqubic: shrdlu68: I know how reduce works. 2018-01-25T17:07:08Z Bike: reduce works if the function is associative and such, but in general, if you have a list you want to pass to a function as arguments, that is what apply does 2018-01-25T17:07:33Z iqubic: Well, I have class now. I have to go. Bye all. 2018-01-25T17:07:50Z Bike: good-bye 2018-01-25T17:08:13Z iqubic: Sorry I couldn't stay for long. 2018-01-25T17:08:26Z iqubic: I didn't track the time closely. 2018-01-25T17:08:31Z iqubic: LOL 2018-01-25T17:11:06Z scymtym: beach: since i am an SBCL maintainer, i could, in theory, undertake that myself and i don't think anybody would object. that said, this would probably be the biggest and most invasive change since i started working on SBCL and i often had trouble getting much smaller things to a point where i could merge them 2018-01-25T17:11:38Z beach: Yes, I see. Makes sense. 2018-01-25T17:11:58Z Bike: i was under the impression that sbcl classes had "layouts" that can be used similarly for obsolete instances. could you see how it goes just using eq comparisons of those instead of small integers? 2018-01-25T17:12:14Z scymtym: beach: maybe when some other implementation completely embarrasses SBCL in terms of generic dispatch performance, stassats could become interested 2018-01-25T17:12:27Z beach: scymtym: Heh, yes, maybe so. 2018-01-25T17:12:56Z scymtym: Bike: EQ-comparisons do not allow for unrolled binary search, though 2018-01-25T17:13:03Z iqubic quit (Ping timeout: 248 seconds) 2018-01-25T17:13:19Z Bike: ...right. 2018-01-25T17:13:46Z Bike: don't suppose you could just throw an integer into those 2018-01-25T17:14:07Z scymtym: well, what i do is using layout addresses, saving a memory read 2018-01-25T17:14:16Z scymtym: but only works when layouts are immobile 2018-01-25T17:16:06Z scymtym: i think, layouts already have a CLOS hash or similar in them. so that could be used. but doing any sort of range optimization would be out of the question 2018-01-25T17:16:30Z scymtym goes back to dayjob for real 2018-01-25T17:17:41Z Bike: i'm not sure how important the range part is compared to the rest, really. 2018-01-25T17:20:29Z JonSmith joined #lisp 2018-01-25T17:24:34Z Karl_Dscc joined #lisp 2018-01-25T17:24:36Z JonSmith quit (Ping timeout: 252 seconds) 2018-01-25T17:33:04Z z3t0 joined #lisp 2018-01-25T17:34:18Z z3t0 quit (Remote host closed the connection) 2018-01-25T17:34:53Z z3t0 joined #lisp 2018-01-25T17:36:53Z LiamH joined #lisp 2018-01-25T17:37:01Z zaquest joined #lisp 2018-01-25T17:38:50Z mathi_aihtam joined #lisp 2018-01-25T17:38:52Z billitch quit (Read error: Connection reset by peer) 2018-01-25T17:38:54Z mathi_aihtam left #lisp 2018-01-25T17:42:55Z hhdave quit (Ping timeout: 248 seconds) 2018-01-25T17:46:54Z sz0 joined #lisp 2018-01-25T17:48:16Z smasta joined #lisp 2018-01-25T17:48:40Z billitch joined #lisp 2018-01-25T17:49:48Z orivej quit (Ping timeout: 240 seconds) 2018-01-25T17:52:26Z ebzzry_ joined #lisp 2018-01-25T17:52:49Z ebzzry_: Is there a structure that holds that exported symbols of a package? 2018-01-25T17:53:45Z Xach: ebzzry_: probably. but not exposed by the standard. 2018-01-25T17:54:00Z ebzzry_: Xach: ok 2018-01-25T17:54:30Z smurfrobot joined #lisp 2018-01-25T17:54:57Z smasta quit (Ping timeout: 264 seconds) 2018-01-25T17:55:46Z _cosmonaut_ quit (Ping timeout: 252 seconds) 2018-01-25T17:56:28Z smasta joined #lisp 2018-01-25T17:57:01Z Bike: you can iterate over them though. 2018-01-25T18:00:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T18:00:51Z drewc_ joined #lisp 2018-01-25T18:01:40Z igemnace quit (Read error: Connection reset by peer) 2018-01-25T18:02:39Z megachombasss quit (Ping timeout: 260 seconds) 2018-01-25T18:02:57Z drewc quit (Ping timeout: 240 seconds) 2018-01-25T18:03:38Z shka joined #lisp 2018-01-25T18:05:20Z z3t0 quit (Remote host closed the connection) 2018-01-25T18:05:55Z z3t0 joined #lisp 2018-01-25T18:07:48Z MrBismuth joined #lisp 2018-01-25T18:10:18Z MrBusiness quit (Ping timeout: 265 seconds) 2018-01-25T18:10:35Z z3t0 quit (Ping timeout: 268 seconds) 2018-01-25T18:14:00Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-25T18:14:48Z mathi_aihtam_ joined #lisp 2018-01-25T18:14:52Z Chream_ joined #lisp 2018-01-25T18:20:50Z fikka joined #lisp 2018-01-25T18:25:36Z fikka quit (Ping timeout: 246 seconds) 2018-01-25T18:26:42Z vnx is now known as Murii 2018-01-25T18:27:29Z troydm joined #lisp 2018-01-25T18:30:36Z hiroaki joined #lisp 2018-01-25T18:30:48Z eminhi quit (Quit: leaving) 2018-01-25T18:39:14Z rumbler31: warweasle: did you get that serial bridge up and running? 2018-01-25T18:40:33Z igemnace joined #lisp 2018-01-25T18:40:35Z vap1 quit (Ping timeout: 240 seconds) 2018-01-25T18:41:07Z fikka joined #lisp 2018-01-25T18:45:40Z eivarv joined #lisp 2018-01-25T18:45:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T18:46:10Z warweasle: rumbler31: They didn't want to take time to make it. Programmer's will just have to walk to the lab. 2018-01-25T18:47:18Z hiroaki quit (Ping timeout: 246 seconds) 2018-01-25T18:47:35Z rumbler31: darn 2018-01-25T18:48:43Z smurfrobot quit (Remote host closed the connection) 2018-01-25T18:49:24Z zazzerino quit (Remote host closed the connection) 2018-01-25T18:50:29Z rpg joined #lisp 2018-01-25T18:50:54Z hiroaki joined #lisp 2018-01-25T18:51:34Z fikka joined #lisp 2018-01-25T18:56:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T19:01:39Z fikka joined #lisp 2018-01-25T19:02:46Z shka quit (Read error: Connection reset by peer) 2018-01-25T19:03:20Z shka joined #lisp 2018-01-25T19:06:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T19:09:48Z shka: good evening 2018-01-25T19:11:46Z fikka joined #lisp 2018-01-25T19:16:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T19:20:42Z fikka joined #lisp 2018-01-25T19:22:10Z smasta quit (Ping timeout: 260 seconds) 2018-01-25T19:23:57Z shka_ joined #lisp 2018-01-25T19:24:02Z shka quit (Read error: Connection reset by peer) 2018-01-25T19:24:31Z smurfrobot joined #lisp 2018-01-25T19:25:49Z fikka quit (Ping timeout: 268 seconds) 2018-01-25T19:29:48Z Sauvin quit (Ping timeout: 240 seconds) 2018-01-25T19:32:13Z randomstrangerb quit (*.net *.split) 2018-01-25T19:32:13Z ikopico quit (*.net *.split) 2018-01-25T19:32:28Z ikopico joined #lisp 2018-01-25T19:33:25Z randomstrangerb joined #lisp 2018-01-25T19:33:59Z varjag joined #lisp 2018-01-25T19:35:07Z josemanuel joined #lisp 2018-01-25T19:36:05Z BitPuffin quit (Remote host closed the connection) 2018-01-25T19:38:31Z orivej joined #lisp 2018-01-25T19:40:41Z fikka joined #lisp 2018-01-25T19:42:42Z mathi_aihtam_ left #lisp 2018-01-25T19:45:08Z alexmlw quit (Quit: alexmlw) 2018-01-25T19:45:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-25T19:46:40Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-25T19:47:09Z fikka joined #lisp 2018-01-25T19:48:14Z Chream_ joined #lisp 2018-01-25T19:49:15Z Murii quit (Quit: WeeChat 1.4) 2018-01-25T19:51:19Z shifty joined #lisp 2018-01-25T19:57:40Z dented42 joined #lisp 2018-01-25T20:00:06Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-25T20:00:29Z smurfrobot quit (Remote host closed the connection) 2018-01-25T20:03:47Z makomo joined #lisp 2018-01-25T20:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-25T20:05:23Z hiroaki quit (Ping timeout: 256 seconds) 2018-01-25T20:05:53Z smurfrobot joined #lisp 2018-01-25T20:05:57Z damke joined #lisp 2018-01-25T20:07:36Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T20:09:00Z jstypo joined #lisp 2018-01-25T20:10:28Z smurfrobot quit (Remote host closed the connection) 2018-01-25T20:14:30Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-25T20:15:01Z fikka quit (Ping timeout: 256 seconds) 2018-01-25T20:17:53Z dented42 joined #lisp 2018-01-25T20:18:04Z smurfrobot joined #lisp 2018-01-25T20:21:04Z fikka joined #lisp 2018-01-25T20:22:50Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-25T20:23:52Z pagnol joined #lisp 2018-01-25T20:25:14Z Xach: ok 2018-01-25T20:25:32Z Xach: Does anyone here have a project in quicklisp and want to monitor its build failures through RSS? 2018-01-25T20:26:23Z fikka quit (Ping timeout: 276 seconds) 2018-01-25T20:29:51Z dlowe: yes 2018-01-25T20:30:41Z jasom: Is it possible to portably store a hash-table literal in a fasl? 2018-01-25T20:30:57Z igemnace quit (Ping timeout: 265 seconds) 2018-01-25T20:31:48Z Xach: dlowe: http://report.quicklisp.org/feeds/author/dlowe-net.rss 2018-01-25T20:31:55Z shka_: jasom: what is hashtable literal? 2018-01-25T20:32:16Z jasom: shka_: trivially #.(make-hash-table) 2018-01-25T20:32:26Z jasom: shka_: obviously I want to do something slightly more complicated 2018-01-25T20:32:33Z shka_: ok 2018-01-25T20:32:33Z pjb: jasom: AFAIK, no problem. 2018-01-25T20:32:39Z shka_: well i don't know 2018-01-25T20:32:50Z dlowe: Xach: woo. Thanks. 2018-01-25T20:32:59Z jasom: clhs 3.2.4.4 2018-01-25T20:32:59Z specbot: Additional Constraints on Externalizable Objects: http://www.lispworks.com/reference/HyperSpec/Body/03_bdd.htm 2018-01-25T20:33:33Z pjb: jasom: well, only abcl can't do it. 2018-01-25T20:33:59Z jasom: ah 3.2.4.2.2 talks about similarity of hash-tables 2018-01-25T20:34:02Z hiroaki joined #lisp 2018-01-25T20:34:04Z megachombas joined #lisp 2018-01-25T20:34:52Z jasom: but I don't see anywhere in 3.2 a list of object types that must be externalizable 2018-01-25T20:34:55Z pjb: jasom: I guess you could write a make-load-form for hash-table. Also, the keys and values would have to be externalizable. 2018-01-25T20:35:08Z jasom: which makes no sense because obviously CONS and symbol must be 2018-01-25T20:35:12Z ghard quit (Read error: Connection reset by peer) 2018-01-25T20:35:43Z pjb: jasom: only it's forbidden by 11.1.2.1.2 point 19… 2018-01-25T20:37:08Z jasom: pjb: well if ABCL allows defining make-load-form and all other implementations don't need make-load-form, I have a workable solution 2018-01-25T20:37:59Z megachombas: (setf a '(:@)) (format t "% print ~a" a) this return "@" 2018-01-25T20:38:02Z megachombas: me no understand 2018-01-25T20:38:24Z jasom: megachombas: ~a "pretty-prints" it's values, and so it omits the leading : 2018-01-25T20:38:41Z megachombas: how to actually print EVERYTHING? 2018-01-25T20:38:49Z jasom: megachombas: use ~s if you want to show the representation of it 2018-01-25T20:39:06Z pjb: jasom: consider using load-time-value instead of #. 2018-01-25T20:39:29Z jasom: pjb: of course, I was just showing a simple example to shka_ 2018-01-25T20:39:53Z pjb: megachombas: clisp only evaluates one form on a read line. 2018-01-25T20:40:37Z pjb: megachombas: well, I'm wrong, it evaluates each form in turn. 2018-01-25T20:40:54Z pjb: (setf a '(:@)) doesn't print anything and returns (:@) 2018-01-25T20:40:58Z jasom understood megachombas's complaint to be that it printed "% print @" 2018-01-25T20:41:06Z fikka joined #lisp 2018-01-25T20:41:14Z pjb: (format t "% print ~a" a) prints % print (@) and returns NIL 2018-01-25T20:42:03Z jasom: pjb: actually in this case load-time-value is the exact opposite of what I want. I want it to be evaluated at compile time, not at run-time. 2018-01-25T20:42:11Z pjb: megachombas: also, you may want to finish output with a newline, and to flush the buffer with a call to (finish-output). 2018-01-25T20:42:34Z pjb: jasom: then you need to be able to make-load-form if it's not present. 2018-01-25T20:43:22Z pjb: Notice that hash-tables have attributes that are not always visible, such as :size, :rehash-threashold, etc. 2018-01-25T20:43:47Z megachombas: actually i want to know what is passed as param in a fuction, to be able to copy this parameter and load that fuction by hand 2018-01-25T20:43:55Z megachombas: but seems something's fked up 2018-01-25T20:44:07Z Xach: megachombas: trace is quite handy for that. 2018-01-25T20:44:18Z shka_ quit (Ping timeout: 240 seconds) 2018-01-25T20:44:21Z pjb: megachombas: you can use print to debug. 2018-01-25T20:44:28Z megachombas: thats what i did 2018-01-25T20:44:33Z pjb: (defun foo (a b c) (print (list 'foo a b c)) …) 2018-01-25T20:44:42Z megachombas: oh 2018-01-25T20:44:45Z megachombas: print? 2018-01-25T20:44:48Z megachombas: let me test with print 2018-01-25T20:44:50Z JuanDaugherty joined #lisp 2018-01-25T20:45:08Z Cymew joined #lisp 2018-01-25T20:45:24Z pjb: megachombas: the advantage of print is that it returns its first argument so you can use it in expressions: (if (print (= (print a) (print b))) (print 'same)) 2018-01-25T20:45:59Z fikka quit (Ping timeout: 268 seconds) 2018-01-25T20:46:01Z pjb: The inconvenient is that it only prints the argument, so if you have a lot of them it may be confusing. 2018-01-25T20:46:14Z pjb: You can write your own debugging printing macro to add labels. 2018-01-25T20:46:33Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-25T20:47:14Z pjb: I have a macro (com.informatimago.common-lisp.interactive.interactive:show expression) that prints expression = value and returns value so it can be used as print, but its output is clearer. 2018-01-25T20:47:41Z fiveop joined #lisp 2018-01-25T20:49:34Z scymtym quit (Ping timeout: 252 seconds) 2018-01-25T20:49:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-25T20:50:50Z megachombas: https://codepaste.net/b5g7ai says me variable list has no value 2018-01-25T20:51:51Z pjb: megachombas: read again, and debug. 2018-01-25T20:52:33Z megachombas: ive applied (defun foo (a b c) (print (list 'foo a b c)) …) to my example 2018-01-25T20:52:41Z pjb: No, you haven't. 2018-01-25T20:53:09Z megachombas: oh some parenthesis missing 2018-01-25T20:53:12Z megachombas: like always 2018-01-25T20:53:45Z pjb: megachombas: in C, would you write: print(list a,b,c) or print(list(a,b,c))? Would you forget the inner set of parentheses? 2018-01-25T20:53:50Z pjb: It's the same in lisp! 2018-01-25T20:54:43Z solyd quit (Quit: solyd) 2018-01-25T20:58:04Z megachombas: something must be wrong in my reasoning 2018-01-25T20:58:05Z megachombas: one sec 2018-01-25T20:59:27Z pjb: megachombas: Call the function list with as arguments 'foo a b and c is written ( =call list 'foo a b c )=end of arguments. 2018-01-25T20:59:36Z pjb: (list 'foo a b c) 2018-01-25T20:59:56Z pjb: call print with as arguments (list 'foo a b c) is written (print (list 'foo a b c)) not (print list 'foo a b c)! 2018-01-25T21:01:24Z fikka joined #lisp 2018-01-25T21:02:22Z pjb: clisp contains a good tutorial: https://sourceforge.net/p/clisp/clisp/ci/default/tree/doc/LISP-tutorial.txt 2018-01-25T21:02:58Z attila_lendvai joined #lisp 2018-01-25T21:02:58Z attila_lendvai quit (Changing host) 2018-01-25T21:02:58Z attila_lendvai joined #lisp 2018-01-25T21:03:34Z asarch joined #lisp 2018-01-25T21:05:00Z JonSmith joined #lisp 2018-01-25T21:05:35Z dented42 joined #lisp 2018-01-25T21:06:02Z megachombas: https://codepaste.net/bh6tic 2018-01-25T21:06:18Z megachombas: i guess im not captuing the exact value of asm with the print 2018-01-25T21:06:55Z jasom: megachombas: you need to set *print-circle* to t 2018-01-25T21:08:40Z jasom: Consider the output of this form with *print-circle* set to t and nil: (let ((x (gensym))) (list x x)) 2018-01-25T21:09:51Z megachombas: dont understand that print circle 2018-01-25T21:10:18Z jasom: (eq #:foo #:foo) ;=> nil 2018-01-25T21:10:28Z orivej quit (Ping timeout: 252 seconds) 2018-01-25T21:10:39Z orivej joined #lisp 2018-01-25T21:10:47Z jasom: (eq #1=#:foo #1#) ;=> T 2018-01-25T21:13:33Z jasom: whatever you are interacting with is generating output that includes uninterned symbols. These are confusing if you are new to lisp, so just enable *print-circle* for now if you want to be able to paste the output and have it read in correctly. 2018-01-25T21:13:57Z megachombas: one sec 2018-01-25T21:16:29Z fiveop quit 2018-01-25T21:17:50Z megachombas: https://codepaste.net/eomssv like this? 2018-01-25T21:18:05Z mishoo quit (Ping timeout: 240 seconds) 2018-01-25T21:18:05Z jasom: megachombas: no 2018-01-25T21:18:12Z megachombas: god bless lisp 2018-01-25T21:18:34Z jasom: megachombas: just set it to true at the toplevel before you run whatever it is that prints stuff out. 2018-01-25T21:18:51Z TMA: megachombas: set *print-circle* to t === (setf *print-circle* t) 2018-01-25T21:19:10Z megachombas: oh, print circle is a variable? 2018-01-25T21:19:22Z jasom: yes *print-circle* is a variable 2018-01-25T21:19:33Z jasom: it is false (nil) by default. 2018-01-25T21:19:50Z nowhere_man joined #lisp 2018-01-25T21:20:48Z jasom: ah, I didn't see you had a print 2018-01-25T21:21:02Z jasom: you want (let ((*print-circle* t)) (list 'load-machine vm asm))) 2018-01-25T21:21:11Z drewc_ is now known as drewc 2018-01-25T21:21:15Z jasom: alksjfoidsamfiadm 2018-01-25T21:21:26Z jasom: you want (let ((*print-circle* t)) (print (list 'load-machine vm asm)))) 2018-01-25T21:21:46Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-25T21:23:59Z TMA: megachombas: the difference is that in the (let ((*print-circle* t)) (print (list 'load-machine vm asm)))) version you do not set the variable permanently, you change the value just for the print inside 2018-01-25T21:24:45Z megachombas: well 2018-01-25T21:24:53Z megachombas: with print circle it works 2018-01-25T21:24:58Z megachombas: but ugly as fak 2018-01-25T21:25:14Z warweasle quit (Quit: away!) 2018-01-25T21:26:19Z jasom: megachombas: this is part of why it's off by default... 2018-01-25T21:27:03Z megachombas: but 2018-01-25T21:27:15Z megachombas: i still dont get it 2018-01-25T21:27:22Z megachombas: let me show the compare 2018-01-25T21:27:25Z jasom: megachombas: do you know any non-lisp programming languages? 2018-01-25T21:27:54Z megachombas: c, c++, java, python 2018-01-25T21:28:04Z dented42_ joined #lisp 2018-01-25T21:28:17Z jasom: megachombas: okay, in C, will the following expressin be true or false: "foo" == "foo" 2018-01-25T21:28:18Z dented42 quit (Ping timeout: 240 seconds) 2018-01-25T21:28:39Z megachombas: true 2018-01-25T21:28:45Z ebzzry_ quit (Ping timeout: 260 seconds) 2018-01-25T21:29:05Z jasom: megachombas: not necessarily; the compiler could in theory generate two different string literals and then it would be false because they would have different addresses 2018-01-25T21:29:29Z TMA: megachombas: not necessarily. the standard permits it to be true, but does not mandate it 2018-01-25T21:29:30Z jasom: however this will always be false, right?: "foo" == strcpy("foo") 2018-01-25T21:30:20Z megachombas: hum 2018-01-25T21:30:42Z megachombas: it should be true, you copy "foo", so the strcpy is "foo" aint it? 2018-01-25T21:31:07Z jasom: megachombas: nope in C == just compares the addresses that the string is stored at 2018-01-25T21:31:23Z jasom: and a copy of the string will have a different address than the original string 2018-01-25T21:31:24Z megachombas: ah true 2018-01-25T21:31:28Z megachombas: i have to do string compare 2018-01-25T21:31:28Z Shinmera: To compare contents you need strcmp 2018-01-25T21:31:33Z megachombas: y y my bad 2018-01-25T21:32:20Z jasom: right, when you read this in lisp, it will always generate an identical symbol named "FOO" in whatever the current package is. No matter how many times you read it, only one symbol will be created: 'foo 2018-01-25T21:32:34Z jasom: same is true for keywords like :foo 2018-01-25T21:33:17Z jasom: however, if you put #:foo it creates a new symbol with no package whatsoever. Since there is no package when you get another #:foo it creates another symbol with the same name, so you have two different symbols 2018-01-25T21:33:24Z jasom: hence (eq :foo :foo) => T 2018-01-25T21:33:33Z jasom: (eq #:foo #:foo) => nil 2018-01-25T21:34:32Z jasom: now the reader has a specail tool that lets you drop objects that have already been read into the same place. You mark an object you want to include later With #N= (where N is a number) and then anywher thereafter you can put #N# and it drops the identical object there 2018-01-25T21:34:35Z megachombas: hum 2018-01-25T21:34:39Z megachombas: i plus or less get it 2018-01-25T21:34:55Z jasom: so (eq #1=#:foo #1#) => T 2018-01-25T21:35:02Z jasom: because you now have the same identical symbol 2018-01-25T21:35:59Z Xach: Shinmera: I restructured things a little for the rss feeds. There's now http://report.quicklisp.org/feeds/author/Shinmera.rss as well as http://report.quicklisp.org/feeds/project/chirp.rss (for example) 2018-01-25T21:36:20Z Xach: they include some of the log (the part immediately before and after the start of the backtrace) 2018-01-25T21:36:29Z Shinmera: Xach: Seems sensible, thanks for the update. 2018-01-25T21:37:13Z dyelar quit (Quit: Leaving.) 2018-01-25T21:37:48Z smurfrobot joined #lisp 2018-01-25T21:40:15Z Xach will add some finishing touches and write up the failfeeds 2018-01-25T21:42:07Z megachombas: what i dont get 2018-01-25T21:42:11Z megachombas: is that my function 2018-01-25T21:42:33Z megachombas: when it evaluates every element of the list to perform actions on it 2018-01-25T21:42:59Z megachombas: doesnt detect the ## and the random numbers that *print circle* adds 2018-01-25T21:43:06Z oleo quit (Ping timeout: 252 seconds) 2018-01-25T21:43:34Z Xach: megachombas: the important distinction between internal and external representation is at play here 2018-01-25T21:43:44Z Xach: understanding it well helps a lot 2018-01-25T21:44:14Z megachombas: because my objective is eliminate the function that generate that list, and directly read that list from a file 2018-01-25T21:44:32Z megachombas: but with all the ## and numbers added, it doesnt loook great 2018-01-25T21:48:18Z megachombas: https://codepaste.net/wm9s09 2018-01-25T21:49:17Z TMA: megachombas: do the labels need to be uninterned symbols? 2018-01-25T21:49:40Z megachombas: what do you mean? 2018-01-25T21:51:17Z TMA: megachombas: the #:|finTest7794| for example 2018-01-25T21:51:34Z megachombas: well, pretty sure that isnt what i was expecting 2018-01-25T21:52:11Z megachombas: its technically (@ labelname) 2018-01-25T21:52:20Z megachombas: dunno wy lisp added that too 2018-01-25T21:52:28Z megachombas: im getting so mad with lisp 2018-01-25T21:53:46Z zazzerino joined #lisp 2018-01-25T21:53:50Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-25T21:54:16Z pagnol quit (Quit: Ex-Chat) 2018-01-25T21:55:29Z Shinmera: Well you're probably getting mad because you jumped right into the icey water and are now confused why it's so cold, instead of easing yourself in slowly. 2018-01-25T21:55:44Z megachombas: all looks so difficult 2018-01-25T21:56:09Z megachombas: i mean, the asm coded that is passed to my function is a lisp list 2018-01-25T21:56:14Z Shinmera: Everything is difficult if you try to accomplish a non-trivial task in an unfamiliar environment. 2018-01-25T21:56:25Z megachombas: still dont get why when i make this list by hand and pass it it fks up 2018-01-25T21:57:02Z megachombas: 'Everything is difficult if you try to accomplish a non-trivial task in an unfamiliar environment.' definition of the fresh university system 2018-01-25T21:57:16Z megachombas: french* 2018-01-25T21:58:51Z LocaMocha joined #lisp 2018-01-25T21:59:11Z rumbler31: first culprit to making things by hand in lisp is missing parens 2018-01-25T21:59:19Z eivarv quit (Quit: Sleep) 2018-01-25T21:59:46Z megachombas: ive got the emacs, so parentesis aint a problem anymore 2018-01-25T21:59:54Z megachombas: this is really my last fix that i need to do 2018-01-25T22:00:14Z megachombas: be able to load that asm code as lisp list without those randoms "#" added 2018-01-25T22:00:16Z pierpa joined #lisp 2018-01-25T22:01:21Z TMA: megachombas: if you are writing the (@ label-name) by hand, just do not use #: 2018-01-25T22:02:03Z megachombas: yep, but what about the #4= for example 2018-01-25T22:02:06Z megachombas: if i remove that 2018-01-25T22:02:11Z megachombas: will it still be the same 2018-01-25T22:04:04Z smurfrobot quit (Remote host closed the connection) 2018-01-25T22:05:57Z TMA: if you do that, the |finTest7794| will be a symbol in the current package, which means (as jasom has written here already (22:32 < jasom> right, when... and following messages)) that you will probably not need the #4= (as every |finTest7794| will be read equal to other |finTest7794|) [[I am simplifying greatly, you could make it so that it will no longer true, but it would require additional effort to change it]]] 2018-01-25T22:06:09Z pjb: megachombas: you can put (setf *print-circle* t) in your ~/.clisprc.lisp file. 2018-01-25T22:06:47Z TMA: megachombas: how do you construct the (@ label-name) ? 2018-01-25T22:07:24Z pjb: jasom: it should be: "foo"==strcpy(malloc(4),"foo") 2018-01-25T22:08:39Z TMA: jasom: or strdup("foo") iirc 2018-01-25T22:08:52Z megachombas: so if i remove them it will work 2018-01-25T22:09:01Z megachombas: let me remove and remplace to see 2018-01-25T22:09:24Z pjb: megachombas: There is no ## or #= added! 2018-01-25T22:09:36Z megachombas: how not 2018-01-25T22:09:37Z pjb: megachombas: you have to distinguish the textual representation from the actual data structures. 2018-01-25T22:09:48Z megachombas: well 2018-01-25T22:09:48Z pjb: megachombas: for example, there are absolutely no parentheses in lisp! 2018-01-25T22:09:55Z megachombas: then the right question is 2018-01-25T22:09:57Z pjb: (first '(a b c)) #| --> a |# see, no parenthesis. 2018-01-25T22:10:14Z pjb: Similarly, there's no #= or ## in the data. Only in the representation. 2018-01-25T22:10:29Z megachombas: how to transform text in parentesis form into that data structure 2018-01-25T22:10:34Z pjb: ## and #= let us represent data that contains multiple references to the same objects. 2018-01-25T22:10:45Z pjb: megachombas: this is done usually by READ. 2018-01-25T22:10:54Z megachombas: oh 2018-01-25T22:10:57Z megachombas: so if i use READ 2018-01-25T22:11:01Z megachombas: that text 2018-01-25T22:11:10Z megachombas: it transform it into the right structure right? 2018-01-25T22:11:28Z pjb: yes. 2018-01-25T22:11:38Z rumbler31: imagine replacing every instance of #1# with (LOC -1 0) 2018-01-25T22:11:43Z pjb: And there are no parentheses in that structure, only cons cells and atoms. 2018-01-25T22:11:44Z rumbler31: et cetera 2018-01-25T22:11:55Z megachombas: lllllllllleeeeeeeeeeeeeeeeeeet me test that out 2018-01-25T22:12:36Z megachombas: so if i so (read ((move r0 r1)(move r2 r3))) that will transform it into the correct list 2018-01-25T22:12:58Z pjb: megachombas: now, the thing is that symbols are usually interned. Which means that when the same symbol name is read twice, the same and unique symbol is obtained. So there's no need for ## and #= when you read sexps containing multiple occurences of the same symbol: (a a a) is a list with 3 cons cells, each pointing from their car to the same symbol named "A". 2018-01-25T22:13:14Z pjb: (read-from-string "((move r0 r1)(move r2 r3))") #| --> ((move r0 r1) (move r2 r3)) ; 26 |# 2018-01-25T22:13:30Z pjb: Or (read) RET and then type in: ((move r0 r1)(move r2 r3)) RET 2018-01-25T22:14:32Z TMA: megachombas: could you show me the piece od code that constructs the (@ #:|finTest7794|)? is it a code you have written? 2018-01-25T22:14:41Z pjb: Notice that the REPL uses PRINT to do the inverse transform, from lisp data structure to textual representation, so when you read ((move r0 r1)(move r2 r3)) at the repl, it prints it, and you get back ((MOVE R0 R1) (MOVE R2 R3)) ; notice the space inserted in the normalized representation! And the uppercase, if you don't have (setf *print-case* :downcase). 2018-01-25T22:14:48Z megachombas: not that i have written myself, but i have the soruce 2018-01-25T22:14:49Z megachombas: a sec 2018-01-25T22:15:22Z pjb: #: prevents interning the symbol, so #= ## are needed if you have several occurences of a uninterned symbol in the sexp. 2018-01-25T22:15:45Z megachombas: TMA: https://github.com/thibaudcolas/clisp-compiler-vm/blob/master/compilateur/cas/conditions.lisp 2018-01-25T22:16:05Z pjb: megachombas: you can use gentemp instead of gensym to generate interned temporary symbols so you don't have this problem with the textual representation. 2018-01-25T22:16:53Z megachombas: i dont use gensym 2018-01-25T22:17:10Z megachombas: actually, i want to get ride of the compiler and only use the VM 2018-01-25T22:17:26Z megachombas: but for that, i need ASM code to put into my VM 2018-01-25T22:17:43Z megachombas: going to try the read-from-string see how it goes 2018-01-25T22:17:53Z pjb: https://github.com/thibaudcolas/clisp-compiler-vm/blob/master/compilateur/cas/conditions.lisp 2018-01-25T22:18:01Z pjb: in that function, there are two gensym! 2018-01-25T22:18:27Z megachombas: yes, but i dont use them 2018-01-25T22:18:34Z megachombas: thats compiler part 2018-01-25T22:20:35Z quazimodo joined #lisp 2018-01-25T22:20:41Z pjb: then write your own assembler by hand! 2018-01-25T22:20:50Z pjb: Then you won't have gensyms in it! 2018-01-25T22:21:15Z megachombas: i will only present VM tomorrow, as i cant even explain everything that it does, as for example i dont understant what (MOVE (LOC -1 0) (:R0) 2018-01-25T22:21:21Z megachombas: but the gensym isnt a problem 2018-01-25T22:21:25Z whoman: ive always felt that gensym is the wrong direction .. 2018-01-25T22:21:27Z megachombas: as it just generate a symbol 2018-01-25T22:21:36Z megachombas: i will just remplace by symbols written by hand 2018-01-25T22:21:46Z TMA: megachombas: the compiler uses gensym. therefore the compiler result contains the result of the gensym evaluation 2018-01-25T22:22:42Z megachombas: oh, isnt just plaintext? 2018-01-25T22:22:53Z TMA: megachombas: if the gensym was replaced by gentemp there, the compiler result will have no #: when printed and you would have no problem with it 2018-01-25T22:23:34Z pjb: megachombas: no, in lisp we never use plaintext. Instead we use lisp objects, data structures, what we call SYMBOLIC EXPRESSIONS, sexps. 2018-01-25T22:24:04Z megachombas: if i remplace (@ #:|finTest7794|) by (@ hello) actually it wont work? 2018-01-25T22:24:27Z TMA: megachombas: it might work. 2018-01-25T22:24:35Z pjb: megachombas: when you use plaintext, you get code injection problems, and you need tons of PhD theses to find complex solutions and round abouts to avoid them. ANd you get a whole cottage industry to develop tools to test and avoid them. 2018-01-25T22:24:55Z pjb: megachombas: instead, you can use 60 years old technology called lisp, which uses data structures, and therefore the problem doesn't exist in the first place. 2018-01-25T22:25:37Z giraffe quit (Remote host closed the connection) 2018-01-25T22:25:38Z itruslove quit (Remote host closed the connection) 2018-01-25T22:25:46Z megachombas: going to give a try 2018-01-25T22:26:02Z megachombas: nothing to lose anymore right now, im feeling the 1/20 coming tomorrow 2018-01-25T22:26:08Z pjb: megachombas: when you use a language like C, you get buffer overflow, memory leaks etc, and you need tons of PhD theses about program verifications, sophisticated debugging tools such valgrind, and a whole cottage industry of tools and security audits to detect those problems and avoid them. 2018-01-25T22:26:41Z pjb: megachombas: instead, you can use 60 years old technology called lisp, which uses a garbage collector and run-time cheks, and therefore the problem doesn't exist in the first place. 2018-01-25T22:26:53Z pjb: I could go on… 2018-01-25T22:27:47Z megachombas: im pretty sure lisp is strong 2018-01-25T22:27:55Z pjb: No, it's weak. But it's smart. 2018-01-25T22:27:59Z nirved: (defun |()| () ()) 2018-01-25T22:28:15Z pjb: megachombas: just to say, that it's worth learning it, to avoid all the dumb mistake the industry keeps doing over and over. 2018-01-25T22:29:32Z pjb: (defun |()| (\(\)) (if (null |()|) () (|()| (cdr |()|)))) (|()| '(\(\) |()| (\(\)) |()|)) #| --> nil |# 2018-01-25T22:29:35Z nirved: todays computer programs are so bloated, that the equivalent lisp machine running on the same hardware would be faster 2018-01-25T22:30:32Z megachombas: https://codepaste.net/nik83k correct syntax? 2018-01-25T22:31:00Z aeth: nirved: you mean LispOS, right? 2018-01-25T22:31:15Z aeth: Or do you mean the equivalent lispm architecture on the same process node? 2018-01-25T22:31:40Z megachombas: nvm, it needs double quotes 2018-01-25T22:31:48Z Shinmera: nirved: Weak! Try (defun ﴾﴿()()) and (defun ​()()) 2018-01-25T22:32:10Z rumbler31: can't you just setf without read-from-string? 2018-01-25T22:32:14Z cgay quit (Read error: Connection reset by peer) 2018-01-25T22:32:17Z megachombas: https://codepaste.net/2pftvy like this? 2018-01-25T22:33:10Z rumbler31: what happens when you execute that 2018-01-25T22:33:11Z rumbler31: you tell us 2018-01-25T22:33:33Z whoman quit (Read error: Connection reset by peer) 2018-01-25T22:34:16Z aeth: With Lisp you can get self-documenting function names, e.g. (defun |Hello, world!| () (format t "Hello, world!~%")) 2018-01-25T22:34:52Z scymtym joined #lisp 2018-01-25T22:35:27Z megachombas: IT WORKS 2018-01-25T22:35:28Z megachombas: YESSS 2018-01-25T22:35:39Z Karl_Dscc quit (Remote host closed the connection) 2018-01-25T22:35:40Z whoman joined #lisp 2018-01-25T22:37:39Z Xach: cool 2018-01-25T22:39:20Z megachombas: now 2018-01-25T22:39:26Z megachombas: last but not least question 2018-01-25T22:40:08Z vlatkoB_ quit (Remote host closed the connection) 2018-01-25T22:41:02Z dim: I'm still in awe each time I write restart-case in CL 2018-01-25T22:41:57Z Shinmera: restarts aren't the magic part, you can get them with exceptions too. The magic juice is handler-bind. 2018-01-25T22:42:29Z dim: as in e.g. https://github.com/dimitri/pgloader/commit/25152f605495fbd3e3bdae555f8ca142490a6d65 ;-) 2018-01-25T22:42:48Z dim: Shinmera: that's very true, so maybe I mean interactive 1-keystroke restart-case 2018-01-25T22:44:23Z pjb: megachombas: perhaps it's too late for you, and you should go to sleep? WHen you have a function name read-from-STRING, why do you pass it a list? 2018-01-25T22:44:24Z Bike quit (Ping timeout: 260 seconds) 2018-01-25T22:44:52Z megachombas: it worked when i did https://codepaste.net/2pftvy 2018-01-25T22:44:53Z pjb: megachombas: also we've explained that reading operations consist into transforming a TEXTUAL representation into lisp data. 2018-01-25T22:44:58Z rumbler31: I think he was planning on passing it the original form with the #1= reader macros 2018-01-25T22:45:11Z pjb: megachombas: so both on the count of READ and of -FROM-STRING you should give it a STRING, and not a list! 2018-01-25T22:45:31Z megachombas: thats what i did, ive put the list into "" "" 2018-01-25T22:45:54Z rumbler31: you could just say (setf test3 '(form...) 2018-01-25T22:45:55Z pjb: Yes, in the second paste. 2018-01-25T22:46:06Z megachombas: yes yes, i missed the syntax 2018-01-25T22:46:12Z megachombas: i have a verrly last question for you pjb 2018-01-25T22:46:13Z pjb: megachombas: but I'm trying to activate processes in your brains so you don't have to try twice before finding the right solution! 2018-01-25T22:46:14Z whoman: any projects called CLoset ? 2018-01-25T22:46:15Z megachombas: hold on please 2018-01-25T22:46:38Z pjb: whoman: rings a bell. 2018-01-25T22:49:12Z megachombas: pjb: it has been around 6 damn hours im trying to figure out what does the (move (loc -1 0) :R0) 2018-01-25T22:49:14Z megachombas: https://codepaste.net/e8ej4w 2018-01-25T22:49:32Z pjb: You mean, the function move? 2018-01-25T22:49:38Z fittestbits joined #lisp 2018-01-25T22:49:46Z megachombas: the loc is generated by the compiler here : https://github.com/thibaudcolas/clisp-compiler-vm/blob/master/compilateur/cas/fonctions.lisp 2018-01-25T22:49:51Z megachombas: not the function move 2018-01-25T22:49:57Z pjb: since (loc -1 0) is not a number, it's the second case that's appliede. 2018-01-25T22:50:12Z megachombas: i need to know why it moves (loc -1 0 ) 2018-01-25T22:50:19Z megachombas: into r0 2018-01-25T22:50:57Z pjb: so it computes the value of (loc -1 0) with (get-src vm src). 2018-01-25T22:51:24Z pjb: which calls (get-loc-src vm expr) 2018-01-25T22:51:24Z megachombas: ye, so i go into get-src of vm (loc -1 0 ) 2018-01-25T22:51:26Z megachombas: and then 2018-01-25T22:52:00Z pjb: (if (eql (caddr expr) ()) (setf (caddr expr) 0)) cannot work in general. 2018-01-25T22:52:50Z pjb: with a negative value, it reads the memory relatively to newFP. 2018-01-25T22:53:06Z pjb: so basically, it refers a local variable. 2018-01-25T22:53:27Z megachombas: oh GOD BLESS, LOC stands for LOCAL VARIABLE?? 2018-01-25T22:53:37Z pjb: No, for location, I would say. 2018-01-25T22:53:49Z megachombas: oh, so its the location of local variables? 2018-01-25T22:53:55Z rumbler31: doesn't your assembly have documentation? 2018-01-25T22:53:56Z pjb: oh, no, you're right, it's for local variables and parameters. 2018-01-25T22:54:15Z megachombas: but i dont understand what is the weird maths he does with FP 2018-01-25T22:54:21Z pjb: When it's positive, it skips the return address and stack frame, to get at the parameters. 2018-01-25T22:54:29Z pjb: You have to know how the functions are called? 2018-01-25T22:54:50Z pjb: How the parameters are passed, and what is pushed on the stack in addition to them and the return PC. 2018-01-25T22:54:56Z megachombas: well tomorow i basicly have to explain how my code works 2018-01-25T22:55:16Z pjb: Usually, there's a FP link saved on the stack. You seem to have two more slots since it adds 4. 2018-01-25T22:55:39Z pjb: This is probably described in the documentation/specification of the VM and/or the compiler. 2018-01-25T22:56:20Z megachombas: nothing about loc on the documentation 2018-01-25T22:56:28Z JonSmith quit (Remote host closed the connection) 2018-01-25T22:56:31Z megachombas: so , let me see if i got it 2018-01-25T22:56:33Z megachombas: if its loc 2018-01-25T22:56:38Z megachombas: its going to move 2018-01-25T22:56:42Z fouric: (jasom: lol what keyboard layout are you using) 2018-01-25T22:56:56Z zazzerino quit (Remote host closed the connection) 2018-01-25T22:57:10Z megachombas: the value of a local variable to the stack? 2018-01-25T22:58:35Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-25T22:58:40Z pjb: No, to the register R0 2018-01-25T22:59:11Z megachombas: oh oh 2018-01-25T22:59:13Z pjb: (move (loc -1 0) :r0) means copy the local variable number 1 to the register 0. 2018-01-25T22:59:42Z megachombas: and the local variable number one, where is it located in the memory 2018-01-25T22:59:51Z randomstrangerb joined #lisp 2018-01-25T23:00:05Z pjb: it's computed in get-loc-src 2018-01-25T23:00:22Z pjb: and notice the same computation is done also in get-loc-dst, so it's redundant code! 2018-01-25T23:00:24Z pjb: very bad… 2018-01-25T23:00:53Z megachombas: let me see get-loc-src again 2018-01-25T23:00:57Z pjb: I tought you wrote this code!?! 2018-01-25T23:01:08Z pjb: You know that this channel is logged, right? 2018-01-25T23:01:19Z aeth: in at least 3 places 2018-01-25T23:01:23Z damke_ joined #lisp 2018-01-25T23:01:35Z Shinmera: and so many places that aren't automatically public.. 2018-01-25T23:01:44Z pjb: Indexed by google as soon as you type a new message (or close)! 2018-01-25T23:02:21Z megachombas: my idea was to rewrite the functions tomorrow morning 2018-01-25T23:02:26Z megachombas: but hard to rewrite when i dont know what they do 2018-01-25T23:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-25T23:03:32Z pjb: Indeed, you need to read and understand them. 2018-01-25T23:03:40Z megachombas: yes, i understand all of them 2018-01-25T23:03:43Z megachombas: except the loc 2018-01-25T23:04:16Z megachombas: as you can see, i commented everything else 2018-01-25T23:04:29Z pjb: yes. 2018-01-25T23:04:37Z attila_lendvai quit (Quit: Leaving.) 2018-01-25T23:04:40Z pjb: My question, is why you have code that you didn't write and don't understand? 2018-01-25T23:04:49Z pjb: It would be much easier to write it yourself from scratch! 2018-01-25T23:04:55Z pjb: At least you'd know what it does… 2018-01-25T23:05:38Z aeth: It doesn't look like particularly well-written Lisp in the first place. Unless the style got messed up in the cut and paste. 2018-01-25T23:05:45Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-01-25T23:06:09Z aeth: It violates every style guide I know of, which makes it harder to read that it should be. 2018-01-25T23:06:16Z pjb: It's possible that it wasn't in CL originally. 2018-01-25T23:06:26Z aeth: Yes, it looks like it could be archaic Lisp 2018-01-25T23:06:32Z zagura quit (Remote host closed the connection) 2018-01-25T23:08:54Z Shinmera: I've seen enough mind boggingly awful template code from university lectures that I'm entirely ready to believe someone wrote this who just doesn't know lisp either. 2018-01-25T23:09:16Z sjl quit (Ping timeout: 252 seconds) 2018-01-25T23:09:22Z Shinmera: (not from my own university, but universities people I know have attended) 2018-01-25T23:09:25Z smurfrobot joined #lisp 2018-01-25T23:09:37Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-25T23:09:41Z megachombas: tried to wrote my own. but at arrrived at a point where i didnt understand lisp at all. found this one that was functional, so i tried to understand it to do mine 2018-01-25T23:09:58Z pjb: Not a very good way to proceed… 2018-01-25T23:10:06Z megachombas: but i arrived at a point where im still trying to understand this one, and bassicly doing small modifications 2018-01-25T23:10:13Z pjb: Don't you have a specification document for the VM? 2018-01-25T23:10:13Z megachombas: so yes, this is pure copy pasta 2018-01-25T23:10:26Z megachombas: for that vm, or of what we suposed to do? 2018-01-25T23:10:33Z aeth: megachombas: If you need to pick up functional Lisp-style programming in a short amount of time, work through The Little Schemer (formerly The Little Lisper). It's in Scheme, but most of the lessons would carry over imo. 2018-01-25T23:10:34Z pjb: yes. 2018-01-25T23:10:48Z rumbler31: his timeline is "tomorrow" 2018-01-25T23:11:12Z megachombas: ye, my timeline is tomorrow so im kinda short 2018-01-25T23:11:33Z aeth: well the extreme tl;dr is that you should base it around cond 2018-01-25T23:11:42Z pjb: Well, usually timelines are given three or two months in advance, so… 2018-01-25T23:12:02Z megachombas: 2 months in advance 2018-01-25T23:12:10Z aeth: Do not put assignments off to the last minute. I tried doing this in college, and it ruined my health, possibly permanently. 2018-01-25T23:12:11Z megachombas: with 7 final examins in the middle 2018-01-25T23:12:40Z aeth: There's only so much your body can handle with work in a short period of time 2018-01-25T23:12:42Z |3b| just put things off until past the last minute, much better for health (bad for grades though) 2018-01-25T23:13:09Z aeth: |3b|: If there are grace periods, and you're good enough to consistently be able to get an A even with the -10% penalty or whatever, it can still work 2018-01-25T23:13:14Z aeth: You'll just get a low A instead of a high A 2018-01-25T23:13:19Z aeth: More stressful, though 2018-01-25T23:13:29Z Shinmera: I try to do things as early as possible, but then I just get stressed out to all hell towards the end anyway. 2018-01-25T23:13:38Z aeth: (You'd just need the late penalty to average to -10% if you still want an A) 2018-01-25T23:14:02Z megachombas: found this http://www.lirmm.fr/~lafourcade/ML-enseign/Compilation/compil-GenCode.HTML 2018-01-25T23:15:10Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-25T23:15:38Z aeth: megachombas: My recommendation to you would be to pick up processing things with cond. It's fast enough that you could pick it up quickly enough. A lot of functional-style Scheme and Lisp uses that basic style. (There's no time for fancier techniques.) 2018-01-25T23:16:02Z megachombas: example of cond? 2018-01-25T23:16:15Z pjb: megachombas: this explains very well everything. You even have stack frame diagrams! 2018-01-25T23:16:36Z megachombas: yes, just i discovered those instructions today ,and he NEVER EVER give it to us 2018-01-25T23:16:51Z megachombas: retarded teacher, i dont want to be rude, but i tried my best with him 2018-01-25T23:17:10Z aeth: megachombas: Well, first, does your Lisp have tail recursion? 2018-01-25T23:17:21Z aeth: And if it doesn't, do you think you'd blow the stack? 2018-01-25T23:17:30Z pjb: aeth: this is not the problem, there's LOOP! 2018-01-25T23:17:56Z aeth: pjb: loop probably takes at least a week to learn 2018-01-25T23:18:16Z pjb: not for a programmer with C, C++, Java and Python experience. 2018-01-25T23:18:19Z shrdlu68 joined #lisp 2018-01-25T23:18:24Z aeth: ah, okay, I missed that part 2018-01-25T23:20:11Z aeth: megachombas: COND is basically an if/elseif/elseif/.../else block, except that it is a form that also returns values so you can use it just like a very elaborate ternary operator if you wanted 2018-01-25T23:20:21Z aeth: This is its documentation: http://www.lispworks.com/documentation/HyperSpec/Body/m_cond.htm 2018-01-25T23:20:23Z dim: (loop repeat 10 for a = 1 then b and b = 1 then (+ a b) collect a) 2018-01-25T23:20:31Z dim: I think that's my favorite loop 2018-01-25T23:20:33Z Bike joined #lisp 2018-01-25T23:21:10Z aeth: megachombas: You should make sure you understand COND first, because you're probably going to need it in your program if is going to have any elaborate conditionals in it. It's simpler than fancier alternatives. 2018-01-25T23:22:03Z wxie joined #lisp 2018-01-25T23:23:10Z aeth: Simple Lisp programs require understanding defun, let, if, and cond. 2018-01-25T23:25:13Z smurfrobot quit (Remote host closed the connection) 2018-01-25T23:25:22Z megachombas: hum 2018-01-25T23:25:34Z megachombas: so the get loc actually change the frame pointer 2018-01-25T23:25:50Z megachombas: but actually, it moves nothing in RO? 2018-01-25T23:26:14Z aeth: I would personally try to build something useful from the very simple basics of Lisp rather than trying to dissect an existing Lisp program. Build up from a toy program and gradually add the features you need. 2018-01-25T23:27:08Z aeth: It's very important, at least the way I program, to have a completely working program at every step of the way. 2018-01-25T23:27:15Z megachombas: if only i had time, i would do it 2018-01-25T23:27:20Z megachombas: but having the deadling tomorrow 2018-01-25T23:27:22Z megachombas: kinda hard 2018-01-25T23:27:45Z megachombas: but i will i deffintivly do some lisp after 2018-01-25T23:27:52Z megachombas: need to learn this more in deepth 2018-01-25T23:27:57Z aeth: If your teacher actually didn't explain things properly, then don't panic. If it's a large class, lots of people will probably do worse than you, and the grades might be adjusted upward. 2018-01-25T23:28:47Z pjb: megachombas: no it doesn't change the frame pointer. It uses it. 2018-01-25T23:29:27Z ssake quit (Ping timeout: 240 seconds) 2018-01-25T23:29:31Z pjb: megachombas: you're confused, because get-newFP is procedural instead of functional. 2018-01-25T23:29:35Z ssake joined #lisp 2018-01-25T23:29:58Z pjb: megachombas: get-newFP uses a frame pointer index, named expr. 2018-01-25T23:30:12Z pjb: (get-newFP 0) returns the current frame pointer (get vm :FP). 2018-01-25T23:30:23Z pjb: (get-newFP 1) returns the frame pointer of the caller of the current function. 2018-01-25T23:30:31Z pjb: (get-newFP 2) returns the frame pointer of the caller of the caller of the current function. 2018-01-25T23:30:32Z pjb: etc. 2018-01-25T23:31:00Z pjb: This is why there's this loop and it updates the LOCAL variable newFP. But it doesn't modify (get vm :FP) the actual frame pointer! 2018-01-25T23:31:06Z aeth: megachombas: Is the assignment to build a register machine like on the website you linked to? 2018-01-25T23:31:24Z pjb: It seems it is. 2018-01-25T23:31:57Z asarch quit (Quit: Leaving) 2018-01-25T23:31:59Z moei quit (Quit: Leaving...) 2018-01-25T23:33:23Z aeth: Well, if there's more freedom of choice, then choose a stack machine. They're (afaik) simpler, especially in languages that have stacks (CL has two built-in stacks). That might not be an option, though. 2018-01-25T23:34:00Z pjb: aeth: the VM is specified, since there's a compiler targetting it! 2018-01-25T23:34:05Z aeth: ah, okay 2018-01-25T23:35:59Z megachombas: and it must be registery machine 2018-01-25T23:36:28Z megachombas: so, it saves the in the memory the position of the FP of the caller right? 2018-01-25T23:38:49Z pjb: No. 2018-01-25T23:39:20Z pjb: (get-loc-src vm expr) reads the memory containing the value of the local variable number EXPR in the current frame. 2018-01-25T23:39:59Z aeth: megachombas: Is the assignment something like this? Given the instructions, do the operations. 2018-01-25T23:41:10Z orivej quit (Ping timeout: 260 seconds) 2018-01-25T23:41:14Z megachombas: the asignment is 'make a VM in lisp that use 4 registerys and a lisp compiler " 2018-01-25T23:41:31Z megachombas: "you got 2 months" 2018-01-25T23:42:43Z wxie quit (Remote host closed the connection) 2018-01-25T23:43:23Z aeth: As in, compile a toy lisp to the VM? 2018-01-25T23:44:53Z damke joined #lisp 2018-01-25T23:45:12Z cgay joined #lisp 2018-01-25T23:46:06Z juan-reynoso joined #lisp 2018-01-25T23:47:30Z juan-reynoso quit (Client Quit) 2018-01-25T23:47:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-25T23:49:49Z megachombas: what do you mean by toy? 2018-01-25T23:50:02Z wigust- joined #lisp 2018-01-25T23:50:12Z aeth: I mean a trivial Lisp-like language, not an actual usable language. 2018-01-25T23:50:36Z aeth: (And if your requirement is to compile a standard Lisp or Scheme, then you're doomed.) 2018-01-25T23:50:57Z megachombas: yes yes, just some of the language 2018-01-25T23:51:05Z megachombas: like defun, setf, etc 2018-01-25T23:52:48Z wigust quit (Ping timeout: 240 seconds) 2018-01-25T23:55:27Z nirved quit (Quit: Leaving) 2018-01-25T23:56:46Z whoman: well 2018-01-25T23:57:26Z whoman: http://lib.store.yahoo.net/lib/paulgraham/jmc.lisp 2018-01-25T23:57:53Z smasta joined #lisp 2018-01-25T23:58:32Z aeth: I'm not sure any Lisp resources will be helpful. The assignment itself, even to those who know Lisp, will probably take more than one day to write. 2018-01-25T23:59:30Z aeth: I'd estimate 3 days. 2018-01-26T00:01:05Z aeth: (And no one is going to do your homework for you, so you'd have to add the time it would take to learn Lisp.) 2018-01-26T00:01:28Z LiamH quit (Quit: Leaving.) 2018-01-26T00:02:08Z whoman: good thing advice is free 2018-01-26T00:02:10Z wigust- quit (Ping timeout: 240 seconds) 2018-01-26T00:02:34Z megachombas quit (Ping timeout: 260 seconds) 2018-01-26T00:03:05Z pjb: aeth: for a student, yes. I would do it in a day, I already done it several times, including an assembler, a disassembler, etc. 2018-01-26T00:03:14Z loli: was apply not there? 2018-01-26T00:03:34Z aeth: pjb: I would estimate 3 days for someone doing it the first time, student or not. Obviously doing something more than once makes you write it a lot faster. Sorry, I could have been clearer. 2018-01-26T00:04:15Z aeth: A minimum of two calendar days because sometimes you get to a point where you get stuck and only sleep can solve things. 2018-01-26T00:04:19Z damke_ joined #lisp 2018-01-26T00:04:47Z whoman: hows your project going aeth 2018-01-26T00:05:10Z aeth: whoman: which one? 2018-01-26T00:06:19Z dddddd quit (Remote host closed the connection) 2018-01-26T00:06:24Z whoman: whichever one is going 2018-01-26T00:07:01Z shrdlu68 quit (Ping timeout: 268 seconds) 2018-01-26T00:07:33Z damke quit (Ping timeout: 264 seconds) 2018-01-26T00:07:43Z aeth: Slow progress on everything. I've been sick, and it was really bad on Monday. 2018-01-26T00:09:32Z whoman: i am sorry to hear,i hope your health and quality of life returns to normal and/or improves 2018-01-26T00:11:13Z aeth: thanks 2018-01-26T00:12:02Z Amplituhedron joined #lisp 2018-01-26T00:17:25Z drmeister: Is there a lisp function that waits for the user to hit enter or a key - something that will work in slime. 2018-01-26T00:18:40Z drmeister: I guess y-or-n-p 2018-01-26T00:19:03Z attila_lendvai joined #lisp 2018-01-26T00:19:51Z drmeister: Hmm, it causes my slime to freak out. 2018-01-26T00:20:37Z whoman: read ? 2018-01-26T00:20:43Z whoman: *standard-input* ? 2018-01-26T00:20:51Z attila_lendvai quit (Client Quit) 2018-01-26T00:21:04Z drmeister: No - it's ok. 2018-01-26T00:21:23Z drmeister: I wasn't sure if it would block and respond properly. 2018-01-26T00:21:28Z whoman: ~_~ https://stackoverflow.com/questions/5721842/read-line-in-common-lisp 2018-01-26T00:24:10Z dented42_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T00:26:54Z Pixel_Outlaw joined #lisp 2018-01-26T00:30:01Z markong quit (Ping timeout: 256 seconds) 2018-01-26T00:30:24Z wigust joined #lisp 2018-01-26T00:32:10Z smurfrobot joined #lisp 2018-01-26T00:32:11Z pagnol joined #lisp 2018-01-26T00:40:40Z pagnol quit (Ping timeout: 240 seconds) 2018-01-26T00:44:00Z Kaisyu joined #lisp 2018-01-26T00:45:38Z Cymew joined #lisp 2018-01-26T00:45:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T00:50:35Z Cymew quit (Ping timeout: 260 seconds) 2018-01-26T00:53:54Z iqubic` joined #lisp 2018-01-26T00:54:21Z iqubic` is now known as iqubic 2018-01-26T00:54:58Z iqubic quit (Client Quit) 2018-01-26T00:55:58Z iqubic joined #lisp 2018-01-26T00:57:26Z wigust quit (Ping timeout: 252 seconds) 2018-01-26T00:59:20Z FreeBirdLjj joined #lisp 2018-01-26T01:01:46Z damke joined #lisp 2018-01-26T01:02:02Z fikka joined #lisp 2018-01-26T01:04:26Z pagnol joined #lisp 2018-01-26T01:04:28Z pagnol quit (Read error: Connection reset by peer) 2018-01-26T01:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T01:06:50Z fikka quit (Ping timeout: 268 seconds) 2018-01-26T01:06:52Z bgardner joined #lisp 2018-01-26T01:06:54Z AxelAlex joined #lisp 2018-01-26T01:07:24Z Cymew joined #lisp 2018-01-26T01:10:05Z damke_ joined #lisp 2018-01-26T01:12:16Z Cymew quit (Ping timeout: 256 seconds) 2018-01-26T01:12:57Z damke quit (Ping timeout: 264 seconds) 2018-01-26T01:14:10Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-26T01:15:22Z randomstrangerb joined #lisp 2018-01-26T01:17:32Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-26T01:18:08Z FreeBirdLjj joined #lisp 2018-01-26T01:20:00Z drcode quit (Ping timeout: 248 seconds) 2018-01-26T01:22:10Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-26T01:22:16Z pierpa quit (Quit: Page closed) 2018-01-26T01:22:21Z fikka joined #lisp 2018-01-26T01:22:43Z muyinliu quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-26T01:24:12Z manualcrank joined #lisp 2018-01-26T01:24:59Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-26T01:25:38Z pransninja joined #lisp 2018-01-26T01:25:52Z jfb4 joined #lisp 2018-01-26T01:26:22Z pransninja: True to form, the Chapter 13 of PCL took me as long as every other chapter before it, the chapter title: Beyond Lists: Other Uses for Cons Cells 2018-01-26T01:26:36Z pransninja: So lisp is basically a language for cons cells processing. 2018-01-26T01:26:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T01:26:53Z pransninja: Shoulda call it consp. lol 2018-01-26T01:27:16Z pransninja: Also 2018-01-26T01:27:27Z pransninja: is there any package for ascii printing datatypes? 2018-01-26T01:27:43Z aeth: Lisp has multidimensional arrays, hash-tables, and other things that aren't cons cells. 2018-01-26T01:28:14Z pransninja: I thought hash tables are just plist? 2018-01-26T01:28:16Z pransninja: no? 2018-01-26T01:28:20Z iqubic: /join #git 2018-01-26T01:28:21Z iqubic: 2018-01-26T01:28:23Z pransninja: or does lisp has real hashtables? 2018-01-26T01:28:37Z pransninja: iqubic: you dun goffed, git. 2018-01-26T01:29:08Z aeth: Modern Lisp is as much about LISt Processing as a Swiss army knife is a knife. 2018-01-26T01:30:01Z aeth: pransninja: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_has.htm 2018-01-26T01:30:04Z pransninja: aeth: That is not a yes or no answer, I am confused. 2018-01-26T01:30:39Z aeth: Syntactically, everything's cons cells. The actual data structures that you create are not, though. 2018-01-26T01:31:35Z |3b|: CL has 'real' hash tables, vectors, arrays, etc 2018-01-26T01:31:37Z aeth: closures, hash tables, multidimensional arrays, structs, standard-objects, etc., couldn't be efficiently implemented with cons cells. 2018-01-26T01:31:51Z aeth: (vectors in Lisp are just multidimensional arrays of dimension 1) 2018-01-26T01:32:31Z pransninja: isn't that what vectors are, anyways? 2018-01-26T01:34:37Z warweasle joined #lisp 2018-01-26T01:37:36Z aeth: vectors (including strings) will have an O(1) length and an O(1) elt (or aref). lists will have an O(n) length and an O(n) elt (or nth) 2018-01-26T01:38:05Z aeth: Vectors have different performance characteristics. And even if they're expressed as lists in source code, they will (usually) be turned into vectors at compile time. 2018-01-26T01:38:23Z terpri quit (Quit: Leaving) 2018-01-26T01:38:39Z terpri joined #lisp 2018-01-26T01:39:04Z arescorpio joined #lisp 2018-01-26T01:39:05Z whoman quit (Remote host closed the connection) 2018-01-26T01:39:37Z whoman joined #lisp 2018-01-26T01:39:45Z iqubic` joined #lisp 2018-01-26T01:39:48Z aeth: CL's hash-tables have a different performance trade-off than plists or alists. In theory, plists might be faster for very short things, but hash-tables will win for large data sets. 2018-01-26T01:40:40Z dtornabene joined #lisp 2018-01-26T01:41:10Z igemnace joined #lisp 2018-01-26T01:41:26Z iqubic quit (Ping timeout: 252 seconds) 2018-01-26T01:42:40Z fikka joined #lisp 2018-01-26T01:43:19Z pjb: Last time I benchmarked, for implementations compiling to native code the break-even point was about 5 entries (<= 5 entries, a-list or p-list are faster; >5 entries, hash-tables are faster), and for byte-interpreted implementations such as clisp, the break-even point is more like 35 entires! 2018-01-26T01:43:37Z pransninja: aeth: So is the implementation of hashtables part of the standard? 2018-01-26T01:43:41Z pjb: One should note also that the space overhead of hash-tables is way over lists! 2018-01-26T01:43:58Z pransninja: Should I expect standard complaint compilers to make the same perf trade-offs? 2018-01-26T01:44:09Z pjb: If you can bound the number of elements, to a small number, it may be even better to use a vector than a hash-table. 2018-01-26T01:45:58Z aeth: pransninja: You can't expect all implementations to behave exactly the same because maybe one day someone will finish JSCL or write a popular JIT bytecode CL. 2018-01-26T01:46:21Z aeth: pransninja: But hash tables are in the standard, as are vectors. And a lot of the same optimizations apply to all of the current major implementations. 2018-01-26T01:46:48Z pransninja: aeth: But does the standard make any recommendations? 2018-01-26T01:46:49Z aeth: e.g. unless you're using clisp, you can pretty much assume that you can make single-float and double-float specialized arrays. 2018-01-26T01:46:56Z pransninja: similar to recycling nature of some functions. 2018-01-26T01:47:08Z aeth: pransninja: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_has.htm 2018-01-26T01:47:18Z fikka quit (Ping timeout: 252 seconds) 2018-01-26T01:47:22Z aeth: That's what the standard says about hash tables (or at least one entry point into what it says) 2018-01-26T01:47:24Z pransninja: I can barely make sense of hyperspec. 2018-01-26T01:47:27Z pransninja: it is rubbish, imho. 2018-01-26T01:47:56Z pransninja: just randomly indent text thrown on the screen 2018-01-26T01:48:05Z pransninja: as if typesetting wasn't invented yet 2018-01-26T01:48:10Z aeth: Actually finding the highest performance thing is tricky. 2018-01-26T01:48:25Z turkja joined #lisp 2018-01-26T01:48:28Z aeth: Vectors will win more often than you think when numbers are involved because they can be specialized 2018-01-26T01:48:45Z zacts quit (Quit: WeeChat 1.9.1) 2018-01-26T01:48:51Z aeth: i.e. you can have a vector of double-floats or a vector of (unsigned-byte 32)s 2018-01-26T01:48:57Z zacts joined #lisp 2018-01-26T01:49:03Z iqubic` is now known as iqubic 2018-01-26T01:49:26Z aeth: There aren't any typed lists or typed hash tables (well, they all store type T), so vectors often give more information to the compiler 2018-01-26T01:49:46Z pransninja: That is good to know. 2018-01-26T01:50:04Z pransninja: Any good material on benchmarking and optimizations in lips? 2018-01-26T01:51:26Z aeth: Most information is probably specific to SBCL (and/or CMUCL), but a good deal of that will also apply to CCL and possibly even ECL. 2018-01-26T01:51:48Z aeth: Optimizing CLISP in its current state is imo hopeless. 2018-01-26T01:52:01Z aeth: s/Optimizing CLISP/Optimizing for CLISP/ 2018-01-26T01:52:21Z shrdlu68 joined #lisp 2018-01-26T01:53:03Z pransninja: That makes me sad. 2018-01-26T01:54:02Z whoman quit (Remote host closed the connection) 2018-01-26T01:54:33Z aeth: Most optimizations are imo a waste of time. Generally you want to (declare (optimize (speed 3))) and declare any types that are numeric or arrays (if you can provide length information for the array type, that can really help because the compiler may replace repeated bounds checking with one type check at the beginning of the function) 2018-01-26T01:54:37Z whoman joined #lisp 2018-01-26T01:54:44Z aeth: SBCL will give you optimization notes when compiling when speed is 3. 2018-01-26T01:56:12Z aeth: If everything is of the same numeric type, you can use :element-type in make-array, e.g. (make-array 3 :element-type 'single-float :initial-element 0f0) or (make-array '(2 2) :element-type 'double-float :initial-contents '((0d0 0d0) (0d0 0d0))) 2018-01-26T01:56:41Z aeth: If things aren't of the same type but are numbers or arrays, typed slots in a struct (defined with defstruct) might work 2018-01-26T01:57:32Z aeth: If something is trivial and probably never going to change, inlining can help the compiler. Above the function you can do this: (declaim (inline the-function-name-goes-here)) 2018-01-26T01:57:38Z aeth: And that's about it. 2018-01-26T01:59:07Z aeth: Not every implementation will use all of the optimization information you give it, e.g. CLISP doens't have single-float or double-float specialized arrays, and just makes them T arrays. I think almost every implementation does accept single-float, double-float and a large number of integer types (e.g. (unsigned-byte 8) and (unsigned-byte 32)) 2018-01-26T01:59:24Z aeth: Only character and bit are required by the specification, but (unsigned-byte 8) is heavily assumed by many libraries. 2018-01-26T02:00:52Z pjb: aeth: on the other hand, clisp has short-float that will fit immedately into arrays of T! 2018-01-26T02:01:02Z pjb: also it has long-float to provide more precision! 2018-01-26T02:01:13Z pjb: clisp has unique features not found in other implementations! 2018-01-26T02:01:22Z pransninja: i like visibility into perf. 2018-01-26T02:01:28Z aeth: pjb: The arbitrary-precision long float is the one reason to use CLISP for code that deals with numbers, afaik. 2018-01-26T02:01:38Z pransninja: I don't mind when things get optimized, but I don't like when it does not. 2018-01-26T02:01:50Z pransninja: in short, I like predictability. 2018-01-26T02:01:52Z aeth: pjb: It is a useful feature when you need it 2018-01-26T02:01:56Z pransninja: I want to be able to reason about my programs perfs. 2018-01-26T02:01:59Z deng_cn joined #lisp 2018-01-26T02:02:32Z pjb: pransninja: you can reason with clisp, you just need to know what CL functions are implemented in C and what are implemented in lisp! 2018-01-26T02:02:52Z pjb: If you write your function to process your data with CL functions implemented in C, then it'll be fast. If you do it in lisp, it'll be slower. 2018-01-26T02:02:59Z fikka joined #lisp 2018-01-26T02:03:17Z pjb: Indead of writing a loop, use reduce or mapcar! 2018-01-26T02:03:34Z lonjil quit (Read error: Connection reset by peer) 2018-01-26T02:03:56Z pjb: So what's funny is that basically you must adopt a style opposite to what you'd do in sbcl to write efficient code in clisp :-) 2018-01-26T02:04:32Z aeth: pransninja: For advanced optimizations, you might be interested in specialization-store. https://github.com/markcox80/specialization-store/ 2018-01-26T02:04:38Z aeth: pjb: yeah 2018-01-26T02:04:38Z igemnace quit (Read error: Connection reset by peer) 2018-01-26T02:05:28Z pransninja: at this point, I would like to learn the basics of how you go about optimizations in lisp 2018-01-26T02:05:29Z igemnace joined #lisp 2018-01-26T02:05:45Z pransninja: The point about find the C function is nice, thanks pjb. 2018-01-26T02:06:03Z pransninja: Though, the fact that optimizations depends on the compiler, which is fair, but still, makes it hard. 2018-01-26T02:06:55Z pjb: pransninja: it goes like this: you write code that works, without having to deal with memory management or array overflow, because this is controled by the implementation. Once you have something that works, since you've spent 1/10 the time you'd have spent in C, you are left with 9/10 of the time to think about better algorithms. So you can implement them and obtain faster results. 2018-01-26T02:07:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T02:07:45Z pransninja: pjb: Oh, like I have said before, C is a shameful benchmark of language design. 2018-01-26T02:07:52Z Oladon joined #lisp 2018-01-26T02:08:03Z pransninja: So anything that compares safety or productivity with C is meaningless to me. 2018-01-26T02:08:13Z pransninja: But I do like the idea of write then optimize. 2018-01-26T02:08:17Z pjb: http://cliki.net/Performance 2018-01-26T02:08:23Z pransninja: However, the question is, how does one optimizes? 2018-01-26T02:08:54Z pjb: pransninja: as I said, using O(nlogn) algorithms instead of O(n^2) algorithms. 2018-01-26T02:09:03Z pjb: Using O(n) algorithms instead of O(nlogn). 2018-01-26T02:09:03Z pransninja: I don't even know how to benchmark meaningfully. 2018-01-26T02:09:11Z pjb: Using O(1) algorithms instead of O(n). 2018-01-26T02:09:12Z pjb: etc. 2018-01-26T02:12:21Z pransninja: I could look into the dissembler output but that is kinda not cool. 2018-01-26T02:12:52Z pransninja: https://xkcd.com/224/ 2018-01-26T02:13:01Z shrdlu68: pransninja: When compiling with slime you get optimization tips (at least using SBCL) 2018-01-26T02:13:14Z ebzzry_ joined #lisp 2018-01-26T02:13:28Z fikka joined #lisp 2018-01-26T02:13:54Z aeth: pransninja: The list I gave is pretty much all you need, except perhaps with the added advice to preallocate things before large loops. Consing (heap allocation) in large loops might hurt performance. 2018-01-26T02:14:17Z aeth: CL is not a pure functional programming language. People are fine with using things like setf when it helps performance 2018-01-26T02:15:45Z Pixel_Outlaw: I think it's less /functional/ to mandate a single style at the expense of the programmer's style. 2018-01-26T02:15:54Z aeth: Most of the advice is about providing array or number type information to the compiler. That's because functions like + and map are type-generic, but can be inlined by the compiler if the type is known. A lot of type information will be given to the compiler just by the function call. e.g. you can only use car on a cons cell 2018-01-26T02:16:19Z lonjil joined #lisp 2018-01-26T02:16:21Z aeth: So it isn't really worth it to give other type information, at least afaik 2018-01-26T02:16:46Z aeth: Of course, sometimes you might *want* a generic + or map 2018-01-26T02:18:15Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T02:19:09Z aeth: (Providing the array types can potentially also do two other things: remove bounds checks and tell the compiler the type of the thing that it gets with aref) 2018-01-26T02:19:21Z arescorpio quit (Excess Flood) 2018-01-26T02:23:27Z fikka joined #lisp 2018-01-26T02:23:48Z impulse quit (Ping timeout: 256 seconds) 2018-01-26T02:27:08Z zulu_inuoe quit (Read error: Connection reset by peer) 2018-01-26T02:27:12Z itruslove joined #lisp 2018-01-26T02:28:12Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T02:31:13Z giraffe joined #lisp 2018-01-26T02:33:03Z karswell joined #lisp 2018-01-26T02:33:20Z aeth: pransninja: What are you interested in optimizing, btw? If it's a program that essentially uses no numbers anywhere, almost all of the advice I just gave is worthless. 2018-01-26T02:33:42Z fikka joined #lisp 2018-01-26T02:34:07Z pransninja: aeth: I know it sounds illogical but I have a fear of slow programs. 2018-01-26T02:34:20Z pransninja: I really like to know what my programs does and it will have decent perfs. 2018-01-26T02:34:40Z aeth: pransninja: In SBCL, this is how you profile: http://www.sbcl.org/manual/#Profiling 2018-01-26T02:34:46Z aeth: pransninja: In other CLs, it's more complicated. 2018-01-26T02:35:22Z pransninja: beautiful. 2018-01-26T02:35:26Z pransninja: That is what I was expecting. 2018-01-26T02:35:29Z pransninja: Thank you aeth. 2018-01-26T02:35:36Z pransninja: I am using SBCL so it should be useful. 2018-01-26T02:36:05Z aeth: Generally, I optimize on SBCL and hope it works on the other CLs because they just don't expose as much useful information. An almost-complete implementation called Clasp (a C++ and LLVM CL) might, though. And SICL (not anywhere near complete afaik) is designed to be very easy to debug. 2018-01-26T02:37:24Z aeth: Only optimize the parts that matter, though. You can spend literally forever getting an extra few percent, and the more specific the optimizations are, the less likely they are to be portable away from SBCL. 2018-01-26T02:37:45Z zazzerino joined #lisp 2018-01-26T02:38:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-26T02:41:14Z aeth: (I think the point where you've gone way too far is probably if your code has implementation-specific optimizations all over the place. And if you're inlining assembly...) 2018-01-26T02:41:33Z aeth: (I mean things like e.g. #+sbcl) 2018-01-26T02:41:45Z bgardner quit (Quit: Leaving.) 2018-01-26T02:41:45Z d4ryus1 joined #lisp 2018-01-26T02:43:51Z fikka joined #lisp 2018-01-26T02:44:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T02:44:47Z d4ryus quit (Ping timeout: 248 seconds) 2018-01-26T02:44:55Z makomo quit (Ping timeout: 260 seconds) 2018-01-26T02:46:22Z damke_ joined #lisp 2018-01-26T02:47:04Z pransninja quit (Ping timeout: 260 seconds) 2018-01-26T02:48:13Z ebzzry_: On SBCL, is there a benchmark between vectors and lists? 2018-01-26T02:48:26Z zazzerino quit (Remote host closed the connection) 2018-01-26T02:48:36Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T02:49:12Z zazzerino joined #lisp 2018-01-26T02:50:51Z aeth: Afaik, for anything that can be expressed as a specialized array, vectors will win unless you construct those benchmarks carefully to have lists win. Lots of inserting in the middle, maybe? 2018-01-26T02:51:15Z ebzzry_: aeth: ok 2018-01-26T02:52:35Z aeth: For the best performance with arrays, though, you'll want known length and you'll want an :element-type that actually gets used (not just a T array). 2018-01-26T02:53:02Z aeth: An unknown length will bounds check on every single aref iirc 2018-01-26T02:53:57Z fikka joined #lisp 2018-01-26T02:55:03Z aeth: So the most dramatic wins for vectors over lists would probably be something like 4x4 matrix multiplication. 2018-01-26T02:56:32Z aeth: (especially when the matrix has the :element-type defined as single-float or double-float) 2018-01-26T02:58:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T03:00:27Z papachan quit (Ping timeout: 240 seconds) 2018-01-26T03:01:07Z kolb quit (Read error: Connection reset by peer) 2018-01-26T03:01:10Z aeth: So, afaik, Common Lisp is almost an acceptable FORTRAN now. It looks like it's good enough for Maxima (a CAS program) to use f2cl to compile Fortran to CL. https://github.com/andrejv/maxima/blob/fc2d2c3d0cc532275ac060d46924c26afc667c50/src/numerical/f2cl-lib.lisp 2018-01-26T03:01:16Z ebzzry_: aeth: ok 2018-01-26T03:01:17Z damke joined #lisp 2018-01-26T03:01:40Z mrottenkolber joined #lisp 2018-01-26T03:02:02Z ebzzry_: aeth: searching for the existence of an element is generally faster with vectors, right? 2018-01-26T03:02:04Z mrottenkolber is now known as Guest83322 2018-01-26T03:03:03Z aeth: That sounds like something that should (theoretically) work equally well with either sequence type, so benchmark it! 2018-01-26T03:03:28Z Bike: more complicated data structures can do that sublinearly. 2018-01-26T03:03:53Z aeth: wait 2018-01-26T03:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T03:04:00Z aeth: I probably should ask "Is it sorted?" first 2018-01-26T03:04:09Z fikka joined #lisp 2018-01-26T03:05:13Z ebzzry_: aeth: Yes, it is sorted. 2018-01-26T03:05:39Z aeth: Then vectors will win 2018-01-26T03:05:49Z aeth: (But there are probably still better data structures for that) 2018-01-26T03:07:00Z smurfrobot quit (Remote host closed the connection) 2018-01-26T03:07:44Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T03:08:28Z ebzzry_: aeth: what are they? 2018-01-26T03:08:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T03:11:50Z muyinliu joined #lisp 2018-01-26T03:12:39Z arescorpio joined #lisp 2018-01-26T03:14:05Z Bike: https://en.wikipedia.org/wiki/Search_data_structure 2018-01-26T03:14:17Z fikka joined #lisp 2018-01-26T03:14:57Z arbv quit (Ping timeout: 240 seconds) 2018-01-26T03:15:15Z arbv joined #lisp 2018-01-26T03:16:18Z milanj quit (Quit: This computer has gone to sleep) 2018-01-26T03:18:55Z fikka quit (Ping timeout: 248 seconds) 2018-01-26T03:21:38Z smurfrobot joined #lisp 2018-01-26T03:22:43Z ebzzry_: thanks 2018-01-26T03:22:55Z smurfrobot quit (Remote host closed the connection) 2018-01-26T03:23:31Z brendyn joined #lisp 2018-01-26T03:23:57Z smurfrob_ joined #lisp 2018-01-26T03:24:33Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-26T03:25:12Z smurfrob_ quit (Remote host closed the connection) 2018-01-26T03:25:47Z randomstrangerb joined #lisp 2018-01-26T03:32:18Z smurfrobot joined #lisp 2018-01-26T03:33:31Z smurfrobot quit (Remote host closed the connection) 2018-01-26T03:34:22Z fikka joined #lisp 2018-01-26T03:39:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T03:40:53Z muyinliu quit (Quit: Page closed) 2018-01-26T03:51:23Z khisanth_ quit (Ping timeout: 256 seconds) 2018-01-26T03:52:13Z fikka joined #lisp 2018-01-26T03:55:33Z damke quit (Ping timeout: 264 seconds) 2018-01-26T03:55:55Z damke joined #lisp 2018-01-26T03:56:58Z arescorpio quit (Excess Flood) 2018-01-26T04:01:14Z damke_ joined #lisp 2018-01-26T04:01:35Z jdz quit (Ping timeout: 256 seconds) 2018-01-26T04:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-26T04:06:19Z beach: Good morning everyone! 2018-01-26T04:06:38Z jdz joined #lisp 2018-01-26T04:06:46Z damke joined #lisp 2018-01-26T04:07:00Z warweasle quit (Quit: Leaving) 2018-01-26T04:07:48Z khisanth_ joined #lisp 2018-01-26T04:08:20Z damke__ joined #lisp 2018-01-26T04:09:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T04:10:28Z damke_ joined #lisp 2018-01-26T04:11:45Z damke quit (Ping timeout: 264 seconds) 2018-01-26T04:12:28Z shrdlu68: beach: Good morning! 2018-01-26T04:13:33Z damke__ quit (Ping timeout: 264 seconds) 2018-01-26T04:15:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T04:16:45Z damke_ joined #lisp 2018-01-26T04:20:51Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-26T04:22:40Z warweasle joined #lisp 2018-01-26T04:23:13Z smurfrobot joined #lisp 2018-01-26T04:24:29Z smurfrobot quit (Remote host closed the connection) 2018-01-26T04:24:53Z smurfrobot joined #lisp 2018-01-26T04:26:03Z iqubic: Morning beach. 2018-01-26T04:26:19Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T04:27:59Z ckonstanski joined #lisp 2018-01-26T04:29:08Z smurfrobot quit (Remote host closed the connection) 2018-01-26T04:29:44Z krwq joined #lisp 2018-01-26T04:31:46Z yrdz joined #lisp 2018-01-26T04:32:57Z terpri quit (Ping timeout: 240 seconds) 2018-01-26T04:33:12Z damke joined #lisp 2018-01-26T04:36:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T04:38:09Z damke quit (Ping timeout: 264 seconds) 2018-01-26T04:41:45Z fikka joined #lisp 2018-01-26T04:42:36Z jmercouris joined #lisp 2018-01-26T04:42:46Z jmercouris: good morning everyone 2018-01-26T04:42:57Z ebzzry_ is now known as ebzzry 2018-01-26T04:42:58Z beach: Hello jmercouris. 2018-01-26T04:46:10Z jmercouris: beach: I'm finally awake as early as you, only because of jet lag though :P 2018-01-26T04:46:36Z fikka quit (Ping timeout: 252 seconds) 2018-01-26T04:47:15Z beach: Sorry to hear that. 2018-01-26T04:47:27Z omilu quit (Ping timeout: 240 seconds) 2018-01-26T04:47:38Z zooey quit (Ping timeout: 255 seconds) 2018-01-26T04:47:50Z warweasle quit (Quit: Leaving) 2018-01-26T04:47:50Z jmercouris: Yeah, mornings suck :D I very much prefer night 2018-01-26T04:48:36Z whoman: forests are contained in seeds 2018-01-26T04:48:53Z whoman: or night is very early morning, and morning is very late night 2018-01-26T04:50:13Z jmercouris: whoman: "forests are contained in seeds", I feel like there is some profound meaning to this, but I'm not seeing the connection here 2018-01-26T04:50:34Z pjb quit (Remote host closed the connection) 2018-01-26T04:51:05Z whoman: if morning is the seed for night, how we nurture and water this, will bloom into the night. and vice versa, how night fertilizes the next morning 2018-01-26T04:51:24Z defaultxr joined #lisp 2018-01-26T04:51:25Z whoman: so you may be having good nights because of bad mornings, but having bad morning times because of good night times ... 2018-01-26T04:51:39Z pfdietz_ quit 2018-01-26T04:53:26Z defaultxr: has anyone noticed weird behavior when using quoted lists in tests in fiveam? i.e. if i use '(1 2 3 4 5) in two different tests, and one of the tests modifies its list, it affects the other test. doesn't happen if i use (list 1 2 3 4 5) instead. but it seems like it shouldn't happen at all. didn't happen when i was using prove. 2018-01-26T04:53:30Z jmercouris: hmm, that is an interesting thought 2018-01-26T04:54:00Z zooey joined #lisp 2018-01-26T04:54:09Z jmercouris: defaultxr: Does the behavior persist across implementations? 2018-01-26T04:55:29Z defaultxr: i have not tried other implementations. 2018-01-26T04:55:31Z defaultxr: only sbcl 2018-01-26T04:56:10Z schoppenhauer quit (Ping timeout: 240 seconds) 2018-01-26T04:56:43Z defaultxr: i'll try installing another and installing quicklisp on it, etc, if you think that will make a difference 2018-01-26T04:56:49Z jmercouris: defaultxr: Are your tests running concurrently? 2018-01-26T04:56:56Z jmercouris: Does this behavior manifest itself every time? 2018-01-26T04:57:33Z jmercouris: I'm just asking general troubleshooting questions, it sounds a very strange error beacause the quoted list should not share context with another test, and I am thinking it may be some strange bug 2018-01-26T04:57:47Z dieggsy joined #lisp 2018-01-26T04:57:59Z defaultxr: the tests seem to be running concurrently based on some print statements i added to my code while i was testing 2018-01-26T04:58:06Z schoppenhauer joined #lisp 2018-01-26T04:58:20Z jmercouris: I also don't know what the difference between '(1 2 3 4 5) and (list 1 2 3 4 5) on an implementation level is 2018-01-26T04:58:49Z damke joined #lisp 2018-01-26T04:58:53Z jmercouris: maybe there is some strange compiler optimization behavior going on with contexts, that's my best guess 2018-01-26T04:59:05Z whoman: there shouldnt be any real difference, not like how its affecting the situation there 2018-01-26T04:59:10Z smasta quit (Ping timeout: 240 seconds) 2018-01-26T04:59:14Z whoman nodly 2018-01-26T04:59:56Z jmercouris: what if you make the two lists different, does the error still appear? 2018-01-26T05:00:10Z jmercouris: like in one of the tests you do '(1 2 3) and in the other '(1 2 3 4)? 2018-01-26T05:00:27Z defaultxr: it doesn't, if the two lists are different. i'm guessing it has something to do with this: https://stackoverflow.com/a/578365 "DO NOT USE QUOTE TO CREATE LISTS THAT YOU WILL LATER MODIFY. The spec allows the compiler to treat quoted lists as constants" 2018-01-26T05:00:41Z defaultxr: it's weird, though, that it never happened when i was using prove. 2018-01-26T05:00:50Z jmercouris: possibly the order of operations 2018-01-26T05:01:24Z jmercouris: or maybe different contexts with threads or something, no idea 2018-01-26T05:02:00Z |3b|: yeah, modifying literals is undefined behavior 2018-01-26T05:02:05Z fikka joined #lisp 2018-01-26T05:02:29Z jmercouris: |3b|: So if I do something like (push 1 '(1 2 3)) what will I get? 2018-01-26T05:02:51Z |3b|: an error, since PUSH requires a place not a list? 2018-01-26T05:03:22Z jmercouris: Lol shit, yes, you are correct 2018-01-26T05:03:26Z |3b|: PUSH doesn't modify the list stored at that place when called correctly though, it just changes the contents of the place to point to a list whose CDR is the previous list 2018-01-26T05:04:31Z jmercouris: |3b|: How about this (setf a '(1 2 3)) (push 1 a) 2018-01-26T05:04:35Z |3b|: if that previous list was a literal, you are allowed to modify the car/cdr of the new value, since that cons was created by PUSH, but you are not allowed to modify any car/cdr past that, since they are from the literal list 2018-01-26T05:04:49Z beach: jmercouris: That does not modify the list. 2018-01-26T05:04:55Z |3b|: right, that's the 'correct' i was talking about 2018-01-26T05:05:10Z |3b|: the value stored in A is modified, but not the list previously stored in A 2018-01-26T05:05:26Z jmercouris: Aha, I see, it won't let me do a pop on that list 2018-01-26T05:05:39Z jmercouris: I assume pop does actually modify the list instead of returning a copy of the list with the element missing 2018-01-26T05:05:49Z |3b|: pop is also fine even on literal lists, since it only modifies variable bindings 2018-01-26T05:06:17Z |3b|: if you retain another binding to the beginning of the list, it still exists unchanged 2018-01-26T05:06:52Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T05:07:01Z jmercouris: There's a special type of destructive and non destructive lisp operations 2018-01-26T05:07:04Z jmercouris: What is the name for these? 2018-01-26T05:07:06Z |3b|: (theoretically it still remains unchanged even if you don't, but GC will may affect in ways you can no longer detect, but which wont affect the behavior of your program) 2018-01-26T05:07:30Z dtornabene quit (Quit: Leaving) 2018-01-26T05:08:29Z jmercouris: Ah, seems to be literally called destructive and non-destructive :D 2018-01-26T05:08:52Z jmercouris: SO like the difference between (nreverse) and (reverse) 2018-01-26T05:09:22Z smurfrobot joined #lisp 2018-01-26T05:10:15Z jmercouris: is there a strong argument for using recycling functions? 2018-01-26T05:10:27Z jmercouris: Are they more performant? or do they yield some other benefit? 2018-01-26T05:10:31Z |3b|: right, nreverse may modify the structure of its arguments, so shouldn't be called on literals 2018-01-26T05:10:39Z |3b|: just performance 2018-01-26T05:10:48Z |3b|: (space and time) 2018-01-26T05:11:01Z jmercouris: So basically if you are manipulating a piece of data over and over again to avoid gc you might use a recycling function instead 2018-01-26T05:11:09Z jmercouris: how expensive is GC in lisp, and how/when is it invoked? 2018-01-26T05:11:46Z |3b|: note that not all of them are /required/ to work in-place, so probably should check the spec (and/or rethink the algorithm) if that matters a lot 2018-01-26T05:12:01Z aindilis quit (Ping timeout: 248 seconds) 2018-01-26T05:12:33Z fikka joined #lisp 2018-01-26T05:13:19Z |3b|: expense of GC depends on your data to some extent, lots of conses is more expensive to GC than same amount of storage for vectors specialized for things like fixnums or characters that can be known not to contain other objects 2018-01-26T05:14:37Z |3b|: when it is invoked depends on the implementation, usually in some way related to amount of allocations 2018-01-26T05:14:37Z aeth: |3b|: Does that mean one big 2D array is better than a vector of specialized vectors because the latter has a T vector that has to be walked through? 2018-01-26T05:15:17Z smurfrobot quit (Remote host closed the connection) 2018-01-26T05:16:00Z jmercouris: |3b|: What is the expensive part based upon the number of cons' is each cons cell it's own object that must be free'd? 2018-01-26T05:16:09Z jmercouris: s/it's/its 2018-01-26T05:16:11Z |3b|: right, though small effect on GC time might be outweighed by increased costs in the actual code if the abstraction is worse 2018-01-26T05:17:11Z jmercouris: basically on a system level here, when we run a GC in lisp, are we actually freeing the memory, or is it just now available within our loaded lisp image as "free" memory? 2018-01-26T05:17:31Z |3b|: jmercouris: speaking very generally, GC tends to involve walking through all objects on the heap starting at for example a register or other known starting point to see what is still 'alive' 2018-01-26T05:17:49Z fikka quit (Ping timeout: 268 seconds) 2018-01-26T05:17:57Z jmercouris: furthermore, is this memory every coalesced or just exists neubulously within the lisp image, and then has to be coalesced to reduce the size of the image? 2018-01-26T05:18:24Z jmercouris: s/every/ever 2018-01-26T05:18:26Z |3b|: if you have a 1 million element list of numbers, it has to look at 1 million conses. and at each number to verify it is just a fixnum/single-float/etc that doesn't need further processing (and if not, walk whatever is there) 2018-01-26T05:18:55Z |3b|: if you replace that with an untyped array, it skips the million conses, but still has to look at the million values 2018-01-26T05:19:17Z jmercouris: but it might not have to free those conses basically? 2018-01-26T05:19:34Z |3b|: if you switch to a specialized array, it can say "this 1 array only holds fixnums, so it can't hold anything else i need to look at" and the whole array is 1 check 2018-01-26T05:19:40Z jmercouris: what is the garbage collection strategy in lisp? is it different across implementations? 2018-01-26T05:20:04Z jmercouris: So there exist some optimizations for the compiler to be more efficient, makes sense 2018-01-26T05:20:10Z |3b|: it is not really specific to lisp 2018-01-26T05:20:15Z jmercouris: or not the compiler, but the running image 2018-01-26T05:20:30Z jmercouris: |3b|: I guess one could use any of many strategies, but I'm asking in a general sense, what to expect 2018-01-26T05:20:33Z |3b|: and differs between implementations (or even options/architectures within an implementation) 2018-01-26T05:20:38Z jmercouris: if I am running SBCL, what kind of behavior could I see 2018-01-26T05:20:40Z smurfrobot joined #lisp 2018-01-26T05:20:59Z |3b|: what i said already is pretty much the level i would suggest caring about it :) 2018-01-26T05:21:06Z jmercouris: Okay, so it is all over the place, and I shouldn't worry too much about it except for when I can use recycling or somehow let the compiler/system know to optimize something 2018-01-26T05:21:18Z |3b|: (until you start noticing GC pauses at least) 2018-01-26T05:21:48Z jmercouris: Do you know of any lisp implemenations wich use reference counting in their GC? 2018-01-26T05:22:02Z jmercouris: e,g, an extension to manually increase and decrease the reference count 2018-01-26T05:22:06Z |3b| doesn't even usually bother with using the destructive functions (and then only on obvious things like a list i just created, like in the push + nreverse idiom) 2018-01-26T05:22:24Z |3b| wouldn't really call ref counting GC :) 2018-01-26T05:22:34Z jmercouris: Yes, okay let me be more specific 2018-01-26T05:22:36Z |3b|: i don't know of any lisps that use it though 2018-01-26T05:22:47Z jmercouris: do you know of any lisp implementations that use reference counting to facilitate gc in an efficient manner? 2018-01-26T05:22:52Z fikka joined #lisp 2018-01-26T05:22:56Z |3b|: lisps tend to want small conses, which doesn't work well with refcounting 2018-01-26T05:22:56Z jmercouris: fair enough 2018-01-26T05:23:25Z jmercouris: I remember back in the early days of dalvik, good times, GC would freeze the phone for several frames 2018-01-26T05:23:42Z |3b|: also possibly more likely to have cycles that some languages 2018-01-26T05:24:02Z smasta joined #lisp 2018-01-26T05:24:02Z jmercouris: and there was no easy way to 1. limit when it runs, 2. control what it garbage collects (technically you could, but it was an abuse of java) 2018-01-26T05:24:06Z |3b|: symbols + packages + closures can make some big non-obvious cycles 2018-01-26T05:24:30Z jmercouris: Also a good time 2018-01-26T05:25:13Z jmercouris: Well, thank you for this information 2018-01-26T05:25:17Z jmercouris: now I can not worry about GC 2018-01-26T05:26:06Z aeth: I have a game loop that essentially doesn't cons at all (a tiny bit of cl-sdl2 it uses conses a little; I'll have to replace cl-sdl2 eventually) 2018-01-26T05:26:10Z aeth: It's hard 2018-01-26T05:26:40Z aeth: You have to pre-allocate everything and write a ton of macros to make complicated things seem natural 2018-01-26T05:26:58Z jmercouris: Sounds like Lisp is not a good language for game programming then 2018-01-26T05:27:08Z jmercouris: not enough granular control over memory 2018-01-26T05:27:11Z aeth: I wouldn't recommend doing non-consing unless you really needed it 2018-01-26T05:27:16Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T05:27:48Z aeth: jmercouris: No language is good for game programming, then. C++ engines literally never get completed because C++ is is hard to do right when you're writing a large application 2018-01-26T05:28:09Z jmercouris: aeth: I would disagree with that, C# and the XNA platform are pretty damn good 2018-01-26T05:28:29Z jmercouris: I don't even like C#, but I can't pretend it isn't good for game programming, MS put a lot of work into it 2018-01-26T05:28:53Z |3b|: jmercouris: people made plenty of games in flash with bad GC, lots of games in JS with bad GC, failure to make games in CL can't be blamed on GC :/ 2018-01-26T05:29:09Z smasta quit (Ping timeout: 264 seconds) 2018-01-26T05:29:23Z aeth: jmercouris: Most C# game programming (by an overwhelming amount) uses an engine (Unity) written in C++ 2018-01-26T05:29:38Z |3b|: and even if it were horrible, i'd still argue for prototyping in CL even if parts of final thing had to be reimplemented in C or whatever 2018-01-26T05:29:48Z jmercouris: aeth: 5-10 years ago was a different story 2018-01-26T05:29:53Z |3b|: oh yeah, and $billions of java games 2018-01-26T05:30:19Z jmercouris: Java also has terrible GC indeed, thats why I mentioned Dalvik, when I was doing some very very early android games, what a nightmare 2018-01-26T05:30:19Z oleo joined #lisp 2018-01-26T05:30:36Z jmercouris: there's perhaps just not a good platform for CL, so maybe that's why nobody writes games in CL 2018-01-26T05:30:46Z jmercouris: not literally nobody, but you know what I mean 2018-01-26T05:30:54Z |3b|: right, dalvik games too (different VMs, so java GC isn't dalvic GC) 2018-01-26T05:30:59Z loke: jmercouris: In what way is the Java GC terrible? 2018-01-26T05:31:40Z yrdz quit (Ping timeout: 240 seconds) 2018-01-26T05:31:48Z |3b|: (java actually has some good GCs from what i hear, no idea if the defaults on consumer java stuff are any good though) 2018-01-26T05:32:48Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-26T05:33:03Z loke: |3b|: Java probably has the best CG's available in any system. It's not focused as much on low/zero latency though, and tuning for near-realtime can be a hassle, which is what I suspect jmercouris was referring to. 2018-01-26T05:33:23Z |3b|: doesn't help that there are lots of ways to rate a GC, some tasks might think a high-throughput GC is great (batch jobs that run over night for example), while some things might care about latency (games, sort of), or maximum pauses (games) 2018-01-26T05:33:35Z aeth: jmercouris: Anyway, I would argue that CL is the only language suitable for game programming. No matter how badly you have to abuse the language (and literally every large enough game engine will run into limitations with the language unless the engine authors also wrote the language) you can cover it up with metaprogramming. And not the kind of painful metaprogramming you'd see in a language like C++. 2018-01-26T05:33:37Z iqubic quit (Remote host closed the connection) 2018-01-26T05:34:03Z randomstrangerb joined #lisp 2018-01-26T05:34:19Z aeth: jmercouris: Sure, maybe the CL implementations haven't really caught up yet, but optimizations follow use, they don't precede it. 2018-01-26T05:34:44Z aeth: You're wasting time as a language implementor if you optimize for things that no one is writing. 2018-01-26T05:35:09Z loke: |3b|: Java comes with several GC's that you can choose between. And on top of that you can tune them in about a million ways. The default GC is great for long-running server applications, which is kinda the opposite of games. So yeah, for games stuff you have some tuning to do. 2018-01-26T05:35:36Z loke: The highest-profile game written in Java (not counting Android( is probably Minecraft. 2018-01-26T05:36:03Z jmercouris: loke: The implementation on Dalvik was a nigthmare, go ahead and spin up some old android vms and you'll see what I mean 2018-01-26T05:36:06Z |3b|: yeah, that's the one i was thinking of :) 2018-01-26T05:36:08Z aeth: loke: and Minecraft was poorly optimized Java, which gave Java gamedev a bad reputation 2018-01-26T05:36:23Z |3b| played at least a few others too though 2018-01-26T05:36:28Z loke: jmercouris: When I say Java, I'm preferring to the Sun implementation. 2018-01-26T05:36:34Z loke: Android is a differen thing altogether. 2018-01-26T05:37:13Z loke: Also, Android now has multiple implementations as well, so one has to be specific when talking about Dalvik, or ART, or the thing that ART has become in Android 8. 2018-01-26T05:37:21Z jmercouris: loke: Sorry for the confusion :) you are right, I was being imprecise 2018-01-26T05:37:35Z jmercouris: it is only recently in my mind that I've begun to distnguish between language and implementation 2018-01-26T05:37:41Z |3b|: yeah, java language vs (java VM/runtime or dalvik vm/runtim) is confusing 2018-01-26T05:37:54Z loke: As far as I can tell, the VM in Android 8 seems a lot better, but I haven't pushed it very hard. :-) 2018-01-26T05:38:03Z aeth: jmercouris: And my non-consing style is actually unnecessary, I roughly lowered 4%-5% CPU usage to 2%-4% CPU usage 2018-01-26T05:38:19Z jmercouris: aeth: Is it just sort of a goal for fun then? 2018-01-26T05:38:25Z |3b|: or ABC or whatever the new runtime or vm or whatever it is is called 2018-01-26T05:38:39Z aeth: (Although that reduction in CPU usage included replacing efficient SIMD linear algebra that consed with naive not-SIMD linear algebra that didn't cons) 2018-01-26T05:38:47Z jmercouris: loke: The VM in Android can get as good as it likes, it's still a VM and, bare metal is always best 2018-01-26T05:39:05Z |3b|: that's why they let you write native code too :) 2018-01-26T05:39:10Z jmercouris: as much as I like the java "code once, run everywhere", the experience is still a pipe dream, and it is 2018 now 2018-01-26T05:39:27Z aeth: jmercouris: I'm writing a game engine because it prioritizes CPU performance without having any real RAM limitations. That's a fun combination for me. 2018-01-26T05:39:42Z jmercouris: |3b|: I remember when NDK was so terribly documented, there wasn't even ANY documentation 2018-01-26T05:39:54Z loke: jmercouris: The question is how close to Java the VM is... The problem with the JVM is that a lot of its features are designed to make Java very efficient, but makes it hard to implement some features of other languages (efficiently). 2018-01-26T05:39:55Z jmercouris: I also remember having to edit special strings in eclipse to load your APK onto different phones 2018-01-26T05:40:55Z jmercouris: loke: I have no problem with the JVM speficically, I have problem with VMs in general 2018-01-26T05:41:14Z DevilsDulcimer joined #lisp 2018-01-26T05:41:18Z DevilsDulcimer: anyone have any experience working with outsourcing? preferably an American company working with Indians over Telecommuting solution such as skype...are they a viable lot when it comes to going forward with a tech company? 2018-01-26T05:41:24Z loke: jmercouris: THat is fortunately no the case now. OWEVER, it's worse in another way. Now the entire ecosystem is based on Gradle, which is probably the worst piece of shit build system I ever had the misfortune to be force to work with. 2018-01-26T05:41:36Z jmercouris: DevilsDulcimer: I have only bad experiences 2018-01-26T05:41:49Z |3b|: DevilsDulcimer: this channel is about Common Lisp, not outsourcing 2018-01-26T05:41:59Z aeth: Is there an outsourcing firm with Common Lisp experience? 2018-01-26T05:42:07Z jmercouris: loke: Gradle is a war crime, I'm not sure why they pushed that and the Intellij train so hard 2018-01-26T05:42:20Z jmercouris: loke: Is google getting kickbacks from jetbrains or something :D? 2018-01-26T05:42:27Z loke: jmercouris: IntelliJ is great, but what they did to it when thet made AS was a disaster 2018-01-26T05:42:40Z fikka joined #lisp 2018-01-26T05:42:50Z loke: jmercouris: I used to do ANdroid development in IDEA, and clicking on "run" compiled an, built, and deployed on the emulator in about 5 seconds. 2018-01-26T05:42:59Z aeth: If there's a quality outsourcing firm with Common Lisp experience, maybe we could crowdfund some patches to key CL projects. 2018-01-26T05:43:04Z jmercouris: loke: That's pretty good 2018-01-26T05:43:20Z loke: jmercouris: With Gradle and AS, that increased to about a minute. It's better now, if you're lucky enough that the damn thing doesn't roll over and die on you. 2018-01-26T05:43:24Z vibs29 quit (Ping timeout: 265 seconds) 2018-01-26T05:43:36Z jmercouris: I'm really not even seeing why gradle was necessary 2018-01-26T05:43:52Z DevilsDulcimer: thanks for the info 2018-01-26T05:44:09Z loke: Oh, and if you _DARE_ to try to load load an old project after 3 weeks of not using it, it won't beuild anymore because Gradle decides to upgrade half your dependencies and nothign will work anymore, and you are force to cargo-cult random changes in your Gradle project file to get it to run again... MAYBVE 2018-01-26T05:44:15Z jmercouris: loke: Though I'm sure it had some reason, just like the existence of "go" 2018-01-26T05:44:28Z deng_cn1 joined #lisp 2018-01-26T05:44:50Z deng_cn quit (Ping timeout: 256 seconds) 2018-01-26T05:44:50Z deng_cn1 is now known as deng_cn 2018-01-26T05:44:56Z jmercouris: loke: Lol I love those stack overflow "I changed x to y" in these lines for upgrades which are basically breaking against user will, and undocumented 2018-01-26T05:44:58Z loke: The funny thing is that I listen to the Android Developers podcast (by the Android team at Google themselves), and they' 2018-01-26T05:45:05Z loke: re falling over themselves to praise it as the best thing ever. 2018-01-26T05:45:11Z loke: What goddamn world do they live in? 2018-01-26T05:45:21Z vibs29 joined #lisp 2018-01-26T05:45:27Z jmercouris: What's wrong with maven? what's wrong with manually coyping some jars when you need them? 2018-01-26T05:45:43Z jmercouris: I literally cannot find a reason for gradle to exist other than google's big ego 2018-01-26T05:45:56Z loke: jmercouris: I absolutely abhor maven, and it's quiote telling that I'd gladly commit to Maven 100% just to be able to get rid of Gradle. 2018-01-26T05:46:16Z jmercouris: It's a case of lesser evils here, that's all I'm saying 2018-01-26T05:46:17Z cromachina_ joined #lisp 2018-01-26T05:47:15Z loke: The worst par tis that Gradle is just a script, with a horrific syntax hack to make Groovy look like a DSL. That means that every single line is executable and then AS attempts to actually parse this thing to make sense of it. 2018-01-26T05:47:20Z loke: OF COURSE it's nt going to work 2018-01-26T05:47:28Z fikka quit (Ping timeout: 252 seconds) 2018-01-26T05:48:06Z jmercouris: I didn't even know that, but it doesn't exactly shock me, that's some next level stuff... in a bad way 2018-01-26T05:48:14Z loke: Damn it... Just thinking about that crap makes me angry. I need to go have lunch now and cool down. 2018-01-26T05:48:32Z jmercouris: Enjoy your lunch, and try not think about it :) 2018-01-26T05:48:40Z beach: jmercouris: Reference counting is way more expensive than tracing collectors, and on top of that, it doesn't work for cycles. 2018-01-26T05:48:57Z jmercouris: beach: Reference counting when manually invoked is cheaper 2018-01-26T05:49:05Z loke: jmercouris: Try it next time, pluck some Groovy code in there (it's essentially Java with a more scripty syntax, but most Java constructs still work) and see the... erm... beauty 2018-01-26T05:49:09Z jmercouris: beach: automatic reference counting is more expensive, for sure 2018-01-26T05:49:10Z cromachina quit (Ping timeout: 240 seconds) 2018-01-26T05:49:48Z jmercouris: beach: of course reference counting will also fail for cycles, it's just made for lightweight applications, but I see your point 2018-01-26T05:49:54Z beach: jmercouris: It is not. 2018-01-26T05:50:27Z jmercouris: How so? reference counting is MOST DEFINITELY lighter, you simply maintain a hash table of counts, in fact, you could even maintain a sorted hash table 2018-01-26T05:50:46Z beach: jmercouris: By reference counting, we mean that when a variable is assigned to, the object previously contained in it has its reference count decremented and tested for 0. 2018-01-26T05:51:04Z jmercouris: By reference counting, I mean (refcount++ varx) 2018-01-26T05:51:19Z jmercouris: obviously such syntax doesn't exist 2018-01-26T05:51:31Z beach: jmercouris: Yes, so every time you do an assignment, you have to go to memory and update a reference counter. On modern processors that kills performance. 2018-01-26T05:52:00Z jmercouris: Yes, but garbage collection itself will be faster 2018-01-26T05:52:12Z beach: jmercouris: Go read the literature. 2018-01-26T05:52:13Z loke: jmercouris: The issue with refcounting is that you have to access this refcount variable all the time, and in a multithreaded environment you also need some way of dealing with data races 2018-01-26T05:52:17Z jmercouris: Perhaps assignment will be slightly slower, eg. intialization code, but garbage collection will definitely be faster 2018-01-26T05:52:31Z beach: jmercouris: And C# uses garbage collection as well, so there is nothing related to garbage collection that makes C# better suited for anything than Common Lisp. 2018-01-26T05:52:52Z jmercouris: beach: the comment about C# was the framework that MS built around it 2018-01-26T05:52:58Z rme: reference counting spreads out the pain. with a tracing gc, you suffer the pain all at once, but you get a bulk discount. 2018-01-26T05:53:18Z jmercouris: beach: I'm pretty well read on GC in general 2018-01-26T05:53:26Z jmercouris: as I've done a lot of optimization with it in my time 2018-01-26T05:53:42Z beach: Good for you. 2018-01-26T05:54:06Z jmercouris: I'm 100% sure that a manual reference count based system is the absolute fastest 2018-01-26T05:54:33Z jmercouris: not some form of automatic reference counting, not some form of marking relations, but literally incrementing referencing counts manually as a user 2018-01-26T05:55:14Z jmercouris: it's just BARELY different than manually alloc and freeing memory, but can mean a performance boost in some cases where you know you don't need to actually now mark something during a transient operation (for example) 2018-01-26T05:55:23Z damke_ joined #lisp 2018-01-26T05:56:23Z loke: jmercouris: There is also the issue of bookeeping. In C, for example, both allocating and freeing memory requires the malloc implementation manage a tree of free memory structures which can be quite expensive. In a compating GC language, a malloc() is essentially a single instruction (an ADD, moving the free memory pointer), and a free() takes zero cycles, since you simply drop the pointer. 2018-01-26T05:56:56Z loke: Of counrse the GC intself takes some reasoucres, but it's not clear-cut which one wins. 2018-01-26T05:57:01Z beach: jmercouris: Earlier you asked about CONS cells being freed. Did you think that some version of free() was being called in order to free those cells? 2018-01-26T05:57:12Z jmercouris: beach: That's what I had in mind yes 2018-01-26T05:57:32Z beach: jmercouris: Then your knowledge of GC is a few decades too old. 2018-01-26T05:57:57Z damke quit (Ping timeout: 264 seconds) 2018-01-26T05:58:33Z jmercouris: I don't believe so, I literally just this past year studied GC, within the context of distributed systems even 2018-01-26T05:58:59Z jmercouris: perhaps there is a misunderstanding here 2018-01-26T05:59:14Z beach: Maybe so. 2018-01-26T05:59:51Z smurfrobot quit (Remote host closed the connection) 2018-01-26T06:00:23Z jmercouris: loke: Yeah, that was more or less my question about what common lisp implementation is likely doing when freeing a cons cell 2018-01-26T06:00:54Z jmercouris: CL has surprised me in so many ways so I keep asking questions that I know the answer to in other languages, but I'm never sure 2018-01-26T06:01:05Z loke: jmercouris: I presume you are referring to the work neede by the GC to release the memory used by CONS cells that have been released? 2018-01-26T06:01:24Z smurfrobot joined #lisp 2018-01-26T06:01:25Z jmercouris: loke: Yes 2018-01-26T06:01:37Z rme: https://www.amazon.com/dp/1420082795 is a pretty standard gc reference, fwiw 2018-01-26T06:01:44Z beach: As loke says, a modern GC does not touch unreferenced objects, so it does not "free" any cells. And this is not specific to Common Lisp. It has to do with modern GC algorithms. 2018-01-26T06:01:52Z damke joined #lisp 2018-01-26T06:02:02Z jmercouris: beach: This I'm aware of, believe me :D 2018-01-26T06:02:33Z loke: jmercouris: By the time the GC frees the unused memory, that memory dones not consist of CONS cells any more. It's just a blob of memory that no one cares about :_) 2018-01-26T06:02:33Z jmercouris: so common lisp is like the rest then 2018-01-26T06:02:48Z aeth: I heard before in this channel that SBCL doesn't have a good GC and that CCL's GC is better. 2018-01-26T06:02:50Z loke: jmercouris: Of course, things like weak references makes this a bit more subtle. 2018-01-26T06:02:59Z fikka joined #lisp 2018-01-26T06:03:16Z loke: aeth: There are certainly problems with the SBCL GC. It could be a lot better. But it's not terrible. 2018-01-26T06:03:34Z aeth: loke: how could it be a lot better? 2018-01-26T06:04:14Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-26T06:04:27Z loke: aeth: well, of example, there are cases where it needs to fill a structure with zeroes instead of just dropping the reference in order for the GC not to mistake random values with a pointer. It was disucced on the SBCL devel mailing list last week in fact. 2018-01-26T06:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T06:05:24Z loke: But one could always use ABCL and by extension autoamtically use the Java VM's GC :-) 2018-01-26T06:06:20Z jstypo quit (Read error: Connection reset by peer) 2018-01-26T06:07:27Z fikka quit (Ping timeout: 248 seconds) 2018-01-26T06:08:20Z loke: OK, now I'm seriously going to have lunch 2018-01-26T06:09:01Z jmercouris: beach: here's where I was asking that question: "basically on a system level here, when we run a GC in lisp, are we actually freeing the memory, or is it just now available within our loaded lisp image as "free" memory?" 2018-01-26T06:09:28Z beach: jmercouris: The Common Lisp standard has nothing to say about that subject. 2018-01-26T06:10:01Z beach: jmercouris: But most GC algorithms, just like malloc() and free() do not give memory back to the operating system. 2018-01-26T06:10:39Z deng_cn quit (Quit: deng_cn) 2018-01-26T06:11:06Z deng_cn joined #lisp 2018-01-26T06:12:46Z jmercouris: Yep, always better safe than sorry though :P 2018-01-26T06:13:01Z jmercouris: I've been burned through assuming too much in my life :D 2018-01-26T06:13:14Z jmercouris: I always think I know more than I do... 2018-01-26T06:14:08Z aeth: I know I know more than I do 2018-01-26T06:15:00Z fouric: "By the time the GC frees the unused memory, that memory dones not consist of CONS cells any more. It's just a blob of memory that no one cares about" 2018-01-26T06:15:04Z jmercouris: aeth: Presumably always one would know more than they do because knowledge always precedes action 2018-01-26T06:15:08Z fouric: what does "does not consist of CONS cells any more" mean 2018-01-26T06:15:12Z fouric: is there actually a change in memory 2018-01-26T06:15:34Z fouric: ...or do we not consider them "cons cells" because for our intents and purposes they aren't? 2018-01-26T06:16:50Z fouric: (physical memory changing vs. the meatspace metainformation changing) 2018-01-26T06:16:56Z fouric: ...or (c) none of the above? 2018-01-26T06:17:04Z oleo quit (Quit: Leaving) 2018-01-26T06:18:11Z smasta joined #lisp 2018-01-26T06:19:05Z smurfrobot quit (Remote host closed the connection) 2018-01-26T06:19:49Z makomo joined #lisp 2018-01-26T06:20:09Z beach: fouric: Because all information about the exact contents of that memory has been lost. At some level, there are still Common Lisp objects there, of course, but as far as the system knows, it is just random garbage. 2018-01-26T06:21:30Z fouric: oh, i see 2018-01-26T06:23:09Z smasta quit (Ping timeout: 264 seconds) 2018-01-26T06:23:18Z fikka joined #lisp 2018-01-26T06:23:22Z smurfrobot joined #lisp 2018-01-26T06:24:10Z jstypo joined #lisp 2018-01-26T06:24:22Z fouric: ...and one more question since we're talking about GC anyway: can SBCL's garbage collector run concurrently with running programs? 2018-01-26T06:24:42Z fouric: i poked around in the manual, which says that it's a "generational" garbage collector 2018-01-26T06:24:44Z smurfrobot quit (Remote host closed the connection) 2018-01-26T06:25:09Z fouric: ...but i haven't been able to determine if that says anything about its ability to run in parallel with the program it is managing 2018-01-26T06:25:12Z Bike quit (Quit: Lost terminal) 2018-01-26T06:25:52Z rme: last I knew, sbcl's collector was not concurrent. ccl's is not concurrent, either. 2018-01-26T06:26:11Z fouric: hm, ok 2018-01-26T06:26:12Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-26T06:26:25Z fouric: so "concurrent" is the keyword i'm looking for? 2018-01-26T06:26:52Z krwq: soes anyone know how to write strings to in-memry-stream with flexi-streams? I've tried with-output-to-sequence + setf flexi-stream-external-format and also wrapping that stream with another flexi stream with :external-format set 2018-01-26T06:26:52Z fouric: *was the word, you appear to have answered my question 2018-01-26T06:27:01Z zazzerino quit (Ping timeout: 256 seconds) 2018-01-26T06:27:27Z randomstrangerb joined #lisp 2018-01-26T06:27:33Z rme: generational is something else entirely. 2018-01-26T06:27:45Z fouric: ah, so they're mostly orthogonal 2018-01-26T06:28:07Z fikka quit (Ping timeout: 268 seconds) 2018-01-26T06:28:10Z rme: entirely orthogonal, I would say 2018-01-26T06:28:20Z fouric: neat! that explains a lot 2018-01-26T06:28:21Z fouric: ty ty 2018-01-26T06:28:41Z fouric: (...would you happen to have any suggested resources for reading up on garbage collection and memory management?) 2018-01-26T06:29:29Z rme: well, there's that amazon link I pasted earlier 2018-01-26T06:29:36Z smurfrobot joined #lisp 2018-01-26T06:29:51Z krwq: actually bummer - it worked correctly but I misread the error (it was on file-length call) 2018-01-26T06:30:10Z terpri joined #lisp 2018-01-26T06:30:14Z rme: https://ccl.clozure.com/docs/ccl.html#understanding-and-configuring-the-garbage-collector might be worth a look, too. 2018-01-26T06:30:27Z fouric: neat, i'll grab a copy of that book when i have time 2018-01-26T06:30:34Z fouric: ooh 2018-01-26T06:30:35Z rme: also https://ccl.clozure.com/docs/ccl.html#gc-details 2018-01-26T06:30:58Z fouric: both of those look very useful, thanks! 2018-01-26T06:32:15Z aeth: Looks like I just learned that the magic words that a game would need are "real-time concurrent garbage collection" 2018-01-26T06:32:29Z rme: you win gc bingo 2018-01-26T06:32:34Z aeth: https://duckduckgo.com/?q=real-time+concurrent+garbage+collection&t=hg&ia=web 2018-01-26T06:32:41Z aeth: Many of the results seem to add "parallel" too 2018-01-26T06:33:08Z aeth: about half 2018-01-26T06:33:29Z vlatkoB joined #lisp 2018-01-26T06:34:36Z rme: sometimes use the phrase "stop the world" to describe collectors which are sort of the opposite (and which are more tractable to implement and thus more common) 2018-01-26T06:36:23Z aeth: oh good that patent was published in 1992, the world is allowed to progress now 2018-01-26T06:36:55Z aeth: I guess you can say that patents on garbage collection are... stop the world. 2018-01-26T06:38:19Z fouric: lol 2018-01-26T06:38:36Z fouric: real-time, concurrent, *and* parallel! :D 2018-01-26T06:40:12Z fouric is not very good at search-engine bingo, which is why he asks for recommendations from humans whenever possible 2018-01-26T06:40:13Z DevilsDulcimer left #lisp 2018-01-26T06:41:35Z aeth: Search engines are great as long as you know exactly what you're searching for. 2018-01-26T06:43:37Z fikka joined #lisp 2018-01-26T06:47:14Z randomstrangerb quit (Ping timeout: 252 seconds) 2018-01-26T06:47:47Z beach: fouric: Here is another great paper: https://dl.acm.org/citation.cfm?id=1134023 2018-01-26T06:48:12Z shka_ joined #lisp 2018-01-26T06:48:29Z randomstrangerb joined #lisp 2018-01-26T06:48:45Z fikka quit (Ping timeout: 260 seconds) 2018-01-26T06:51:46Z smurfrobot quit (Remote host closed the connection) 2018-01-26T06:54:04Z fikka joined #lisp 2018-01-26T06:55:45Z safe quit (Read error: Connection reset by peer) 2018-01-26T06:56:27Z mishoo joined #lisp 2018-01-26T06:57:08Z shrdlu68 quit (Ping timeout: 252 seconds) 2018-01-26T06:58:32Z Karl_Dscc joined #lisp 2018-01-26T06:58:33Z Oladon quit (Quit: Leaving.) 2018-01-26T06:59:04Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T07:01:03Z LocaMocha is now known as Sauvin 2018-01-26T07:02:02Z smurfrobot joined #lisp 2018-01-26T07:03:53Z fikka joined #lisp 2018-01-26T07:03:54Z shrdlu68 joined #lisp 2018-01-26T07:06:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-26T07:08:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T07:11:22Z smurfrobot joined #lisp 2018-01-26T07:11:36Z dec0n joined #lisp 2018-01-26T07:13:16Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-26T07:13:48Z zooey quit (Remote host closed the connection) 2018-01-26T07:14:12Z zooey joined #lisp 2018-01-26T07:14:19Z fikka joined #lisp 2018-01-26T07:14:32Z ebzzry quit (Read error: Connection reset by peer) 2018-01-26T07:15:18Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-26T07:15:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-26T07:16:42Z Karl_Dscc quit (Remote host closed the connection) 2018-01-26T07:18:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T07:19:44Z ebzzry joined #lisp 2018-01-26T07:22:07Z smurfrobot joined #lisp 2018-01-26T07:24:22Z fikka joined #lisp 2018-01-26T07:24:46Z solyd joined #lisp 2018-01-26T07:25:00Z marusich quit (Ping timeout: 252 seconds) 2018-01-26T07:26:31Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-26T07:27:59Z hiroaki joined #lisp 2018-01-26T07:29:02Z fikka quit (Ping timeout: 252 seconds) 2018-01-26T07:31:53Z smasta joined #lisp 2018-01-26T07:35:53Z panji joined #lisp 2018-01-26T07:38:44Z scymtym quit (Ping timeout: 256 seconds) 2018-01-26T07:39:09Z flamebeard joined #lisp 2018-01-26T07:39:28Z vaporatorius joined #lisp 2018-01-26T07:39:28Z vaporatorius quit (Changing host) 2018-01-26T07:39:28Z vaporatorius joined #lisp 2018-01-26T07:40:30Z vap1 joined #lisp 2018-01-26T07:43:31Z vaporatorius quit (Client Quit) 2018-01-26T07:44:31Z fikka joined #lisp 2018-01-26T07:45:36Z DeadTrickster_ quit (Ping timeout: 248 seconds) 2018-01-26T07:49:30Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T07:49:56Z ioa joined #lisp 2018-01-26T07:50:09Z ioa: good morning 2018-01-26T07:51:50Z jmercouris: ioa: good morning 2018-01-26T07:52:11Z jmercouris: what's the best way to create a config file that can be loaded by a standalone lisp program? 2018-01-26T07:52:17Z JonSmith joined #lisp 2018-01-26T07:52:33Z jmercouris: I've forked "site-generator" and I want to be able to pass it a series of commands to execute in the form of a config file 2018-01-26T07:52:40Z jmercouris: I'd like the location of that config file to be variable 2018-01-26T07:53:00Z jmercouris: e.g. if I launch "site-generator" in a dir with a config file, it should pick up that config file 2018-01-26T07:53:27Z jmercouris: I guess the real question I am asking is, how can my program know from where it was launched in order to load the appropriate lisp file? 2018-01-26T07:53:43Z jmercouris: s/lisp file/configuration file 2018-01-26T07:54:59Z fikka joined #lisp 2018-01-26T07:55:18Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-26T07:56:34Z randomstrangerb joined #lisp 2018-01-26T07:57:12Z smurfrobot joined #lisp 2018-01-26T07:57:15Z JonSmith quit (Ping timeout: 246 seconds) 2018-01-26T07:57:40Z Shinmera: (uiop:argv0) 2018-01-26T07:57:51Z Shinmera: That is, if you're using a standalone executable 2018-01-26T07:58:41Z Shinmera: If it's a source file, the usual trick is #.(make-pathname :name NIL :type NIL :defaults (or *compile-file-pathname* *load-pathname* (error "Welp")) 2018-01-26T07:58:48Z Shinmera: ) 2018-01-26T07:59:04Z jmercouris: (uiop:getcwd) seems to be working now 2018-01-26T07:59:29Z Shinmera: The cwd is not the directory the program is in. 2018-01-26T07:59:42Z jmercouris: It seems to work that way though 2018-01-26T07:59:45Z Shinmera: Not necessarily anyway. 2018-01-26T07:59:47Z jmercouris: I tried moving the binary around 2018-01-26T07:59:52Z jmercouris: ah damnit that's the issue 2018-01-26T08:00:00Z jmercouris: that's where the binary is located, not where the program was launched from 2018-01-26T08:00:06Z jmercouris: terminal wise 2018-01-26T08:00:21Z Shinmera: The cwd is where it was launched from. argv0 is where the binary is. 2018-01-26T08:00:30Z Ven`` joined #lisp 2018-01-26T08:00:33Z jmercouris: Let me try again 2018-01-26T08:00:55Z jmercouris: Ah, you are correct 2018-01-26T08:00:59Z jmercouris: I wonder what I was doing wrong earlier 2018-01-26T08:01:19Z jmercouris: Thanks for your help! 2018-01-26T08:02:15Z fikka quit (Ping timeout: 260 seconds) 2018-01-26T08:04:59Z Cymew joined #lisp 2018-01-26T08:06:51Z fikka joined #lisp 2018-01-26T08:08:06Z solyd quit (Quit: solyd) 2018-01-26T08:09:31Z panji left #lisp 2018-01-26T08:11:52Z DeadTrickster joined #lisp 2018-01-26T08:13:18Z shka_ quit (Ping timeout: 256 seconds) 2018-01-26T08:13:18Z karswell quit (Ping timeout: 256 seconds) 2018-01-26T08:15:05Z smurfrobot quit (Remote host closed the connection) 2018-01-26T08:15:05Z Ven`` quit (Read error: Connection reset by peer) 2018-01-26T08:15:57Z DeadTrickster quit (Ping timeout: 240 seconds) 2018-01-26T08:19:17Z smurfrobot joined #lisp 2018-01-26T08:20:16Z Ven`` joined #lisp 2018-01-26T08:21:30Z smurfrobot quit (Remote host closed the connection) 2018-01-26T08:21:45Z DeadTrickster joined #lisp 2018-01-26T08:21:47Z smurfrobot joined #lisp 2018-01-26T08:22:24Z DeadTrickster quit (Remote host closed the connection) 2018-01-26T08:24:54Z bentaisan joined #lisp 2018-01-26T08:25:57Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-26T08:30:04Z milanj joined #lisp 2018-01-26T08:30:34Z jackdaniel: fwiw cwd may be changed to something else at runtime 2018-01-26T08:31:09Z jackdaniel: what's more, *default-pathname-defaults* and current working directory may be inconsistent (because one or another may be adjusted at runtime independently) 2018-01-26T08:35:03Z deng_cn quit (Read error: Connection reset by peer) 2018-01-26T08:35:36Z drcode joined #lisp 2018-01-26T08:36:56Z drcode quit (Remote host closed the connection) 2018-01-26T08:37:12Z deng_cn joined #lisp 2018-01-26T08:39:33Z drcode joined #lisp 2018-01-26T08:43:11Z scymtym joined #lisp 2018-01-26T08:45:51Z varjag joined #lisp 2018-01-26T08:46:48Z p_l: at least it's rare these days to write lisp for OS that doesn't have the concept of CWD ;) 2018-01-26T08:48:03Z whoman: mute ability 2018-01-26T08:49:24Z raynold quit (Quit: Connection closed for inactivity) 2018-01-26T08:49:36Z smurfrobot quit (Remote host closed the connection) 2018-01-26T08:50:22Z drcode quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-26T08:52:08Z p_l: IIRC, on windows it can be hard to get path to executable 2018-01-26T08:54:41Z drcode joined #lisp 2018-01-26T08:56:41Z jackdaniel: right, I usually get confused after B:\ part ;-) 2018-01-26T08:59:03Z p_l recalls the times when he had A: and B: ... 2018-01-26T08:59:15Z damke_ joined #lisp 2018-01-26T08:59:41Z bentaisan quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-26T09:00:31Z murii joined #lisp 2018-01-26T09:02:09Z damke quit (Ping timeout: 264 seconds) 2018-01-26T09:05:35Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-26T09:17:33Z Guest83322 left #lisp 2018-01-26T09:17:55Z kolb joined #lisp 2018-01-26T09:22:31Z shrdlu68 quit (Quit: Lost terminal) 2018-01-26T09:25:19Z smurfrobot joined #lisp 2018-01-26T09:28:20Z _cosmonaut_ joined #lisp 2018-01-26T09:32:03Z shrdlu68 joined #lisp 2018-01-26T09:36:35Z igemnace quit (Read error: Connection reset by peer) 2018-01-26T09:37:03Z igemnace joined #lisp 2018-01-26T09:39:25Z paule32: hello 2018-01-26T09:39:48Z attila_lendvai joined #lisp 2018-01-26T09:39:49Z attila_lendvai quit (Changing host) 2018-01-26T09:39:49Z attila_lendvai joined #lisp 2018-01-26T09:39:51Z paule32: can someone check against the result 10 : 2018-01-26T09:39:53Z paule32: https://pastebin.com/bUY2XLMX 2018-01-26T09:39:58Z paule32: tia 2018-01-26T09:45:12Z smurfrobot quit (Remote host closed the connection) 2018-01-26T09:48:16Z smurfrobot joined #lisp 2018-01-26T09:52:20Z ghard joined #lisp 2018-01-26T09:53:45Z JonSmith joined #lisp 2018-01-26T09:53:57Z dilated_dinosaur quit (Ping timeout: 240 seconds) 2018-01-26T09:56:14Z heurist` is now known as heurist 2018-01-26T09:58:42Z JonSmith quit (Ping timeout: 256 seconds) 2018-01-26T10:06:53Z dilated_dinosaur joined #lisp 2018-01-26T10:11:50Z dilated_dinosaur quit (Ping timeout: 252 seconds) 2018-01-26T10:13:38Z hhdave joined #lisp 2018-01-26T10:14:24Z capitaomorte joined #lisp 2018-01-26T10:20:04Z hjudt: is there an easy way to read a whole text file into a string instead of reading it line by line and concatenating? 2018-01-26T10:21:20Z shrdlu68: hjudt: Alexandria has read-file-into-string. 2018-01-26T10:21:29Z hjudt: cool thanks 2018-01-26T10:23:27Z smasta quit (Ping timeout: 248 seconds) 2018-01-26T10:25:02Z snafu_ joined #lisp 2018-01-26T10:25:25Z dilated_dinosaur joined #lisp 2018-01-26T10:26:21Z smurfrobot quit (Remote host closed the connection) 2018-01-26T10:27:02Z smurfrobot joined #lisp 2018-01-26T10:28:23Z deng_cn quit (Quit: deng_cn) 2018-01-26T10:30:19Z wxie joined #lisp 2018-01-26T10:31:27Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-26T10:33:32Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-26T10:34:34Z snafu_ quit (Read error: Connection reset by peer) 2018-01-26T10:35:18Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-26T10:36:02Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T10:36:54Z Chream_ joined #lisp 2018-01-26T10:37:00Z aindilis joined #lisp 2018-01-26T10:37:27Z wxie quit (Ping timeout: 240 seconds) 2018-01-26T10:37:47Z quazimodo joined #lisp 2018-01-26T10:37:57Z Posterdati quit (Ping timeout: 240 seconds) 2018-01-26T10:45:06Z orivej joined #lisp 2018-01-26T10:49:08Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-26T10:49:58Z jameser joined #lisp 2018-01-26T10:56:15Z krwq left #lisp 2018-01-26T10:59:57Z damke_ quit (Read error: Connection reset by peer) 2018-01-26T11:00:41Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-26T11:00:53Z damke_ joined #lisp 2018-01-26T11:01:11Z windblow joined #lisp 2018-01-26T11:01:14Z arbv quit (Quit: ZNC - http://znc.in) 2018-01-26T11:01:17Z pilfink joined #lisp 2018-01-26T11:02:45Z arbv joined #lisp 2018-01-26T11:03:52Z _cosmonaut_ quit (Ping timeout: 256 seconds) 2018-01-26T11:04:51Z muyinliu joined #lisp 2018-01-26T11:06:41Z nirved joined #lisp 2018-01-26T11:07:49Z smasta joined #lisp 2018-01-26T11:10:16Z dddddd joined #lisp 2018-01-26T11:12:10Z smasta quit (Ping timeout: 240 seconds) 2018-01-26T11:22:03Z _cosmonaut_ joined #lisp 2018-01-26T11:25:02Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T11:25:53Z Amplituhedron joined #lisp 2018-01-26T11:25:54Z jmercouris joined #lisp 2018-01-26T11:26:51Z DeadTrickster joined #lisp 2018-01-26T11:30:30Z jameser quit (Ping timeout: 256 seconds) 2018-01-26T11:31:41Z jmercouris: How can I print without the quotes? 2018-01-26T11:32:08Z jmercouris: I have "a string" and I want to print just "a string" not ""a string"" 2018-01-26T11:33:26Z jackdaniel: format t "~A" my-string 2018-01-26T11:33:39Z jmercouris: ah so not ~s 2018-01-26T11:33:52Z shrdlu68: ~S prints readably 2018-01-26T11:33:59Z jackdaniel: you may want to read about the differences between ~s and ~a (readably vs unreadably) 2018-01-26T11:34:17Z jmercouris: ok, I'll take a look, thank you 2018-01-26T11:34:32Z jackdaniel: princ vs prin1 2018-01-26T11:35:22Z wigust joined #lisp 2018-01-26T11:38:59Z Kevslinger joined #lisp 2018-01-26T11:44:57Z damke joined #lisp 2018-01-26T11:48:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T11:50:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T11:50:53Z jstypo quit (Remote host closed the connection) 2018-01-26T11:53:06Z windblow quit (Ping timeout: 268 seconds) 2018-01-26T11:53:31Z DeadTrickster quit (Remote host closed the connection) 2018-01-26T11:54:26Z shrdlu68 quit (Remote host closed the connection) 2018-01-26T11:54:34Z jtza8 joined #lisp 2018-01-26T11:54:46Z shrdlu68 joined #lisp 2018-01-26T11:58:56Z damke_ joined #lisp 2018-01-26T12:00:00Z jtza8 quit (Ping timeout: 252 seconds) 2018-01-26T12:00:50Z jtza8 joined #lisp 2018-01-26T12:01:33Z damke quit (Ping timeout: 264 seconds) 2018-01-26T12:02:47Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T12:04:25Z Chream_ joined #lisp 2018-01-26T12:04:37Z EvW joined #lisp 2018-01-26T12:05:48Z m00natic joined #lisp 2018-01-26T12:06:29Z fikka joined #lisp 2018-01-26T12:06:58Z pilfink quit (Ping timeout: 252 seconds) 2018-01-26T12:07:35Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T12:08:56Z damke joined #lisp 2018-01-26T12:09:04Z Chream_ joined #lisp 2018-01-26T12:11:06Z damke__ joined #lisp 2018-01-26T12:12:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T12:13:16Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T12:13:26Z eivarv joined #lisp 2018-01-26T12:14:09Z damke quit (Ping timeout: 264 seconds) 2018-01-26T12:14:43Z Chream_ joined #lisp 2018-01-26T12:15:53Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T12:16:05Z jameser joined #lisp 2018-01-26T12:16:12Z genos joined #lisp 2018-01-26T12:16:43Z genos: hi 2018-01-26T12:17:00Z Chream_ joined #lisp 2018-01-26T12:17:52Z genos: anyone know how to create functions for eshell? 2018-01-26T12:18:01Z Shinmera: Try #emacs 2018-01-26T12:18:19Z DeadTrickster joined #lisp 2018-01-26T12:18:27Z shifty quit (Ping timeout: 240 seconds) 2018-01-26T12:19:26Z genos: i cant join:/ 2018-01-26T12:19:35Z genos: services something 2018-01-26T12:19:38Z jmercouris: genos: All emacs functions should be invokable in eshell 2018-01-26T12:19:48Z Shinmera: genos: Well, this is not the channel for elisp or emacs. 2018-01-26T12:20:03Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T12:20:25Z genos: jmercouris: im trying to make emacs sync to a pendrive. 2018-01-26T12:20:42Z genos: (defun eshell/booksync () "syncs my books" 2018-01-26T12:20:42Z genos: (interactive) 2018-01-26T12:20:42Z genos: (sudo rsync --verbose -r --ignore-existing ~/Downloads/books/* /media/${whoami}/247B-947E/books) 2018-01-26T12:20:42Z genos: (sudo rsync --verbose -r --ignore-existing /media/${whoami}/247B-947E/books/* ~/Downloads/books)) 2018-01-26T12:20:49Z Shinmera: genos: Stop 2018-01-26T12:20:54Z genos: whats wrong with it?:< 2018-01-26T12:20:59Z Ven`` joined #lisp 2018-01-26T12:21:10Z Shinmera: This is not the channel for elisp or emacs. And it's even less the channel to just paste code into. 2018-01-26T12:21:31Z genos: elisp is a lisp :^) 2018-01-26T12:21:35Z Shinmera: It's not common lisp. 2018-01-26T12:21:36Z Chream_ joined #lisp 2018-01-26T12:21:37Z Shinmera: Mind the topic. 2018-01-26T12:22:03Z genos: aah:< 2018-01-26T12:22:25Z genos: well jmercouris can you help anyway? 2018-01-26T12:22:57Z jmercouris: genos: I've messaged you already to avoid polluting this channel 2018-01-26T12:23:56Z genos: ty 2018-01-26T12:24:12Z solyd joined #lisp 2018-01-26T12:25:16Z windblow joined #lisp 2018-01-26T12:26:44Z SaganMan joined #lisp 2018-01-26T12:28:19Z smurfrobot joined #lisp 2018-01-26T12:28:37Z jtza8 quit (Remote host closed the connection) 2018-01-26T12:30:40Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-26T12:32:50Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-26T12:35:06Z jmercouris quit (Ping timeout: 256 seconds) 2018-01-26T12:35:11Z genos: nooooooooo 2018-01-26T12:35:35Z genos: :/ 2018-01-26T12:35:49Z aabcds joined #lisp 2018-01-26T12:37:27Z EvW quit (Remote host closed the connection) 2018-01-26T12:37:50Z aabcds quit (Client Quit) 2018-01-26T12:38:46Z EvW joined #lisp 2018-01-26T12:39:29Z genos left #lisp 2018-01-26T12:46:32Z solyd quit (Quit: solyd) 2018-01-26T12:47:01Z jameser quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-26T12:51:57Z orivej quit (Ping timeout: 264 seconds) 2018-01-26T12:52:09Z solyd joined #lisp 2018-01-26T12:53:17Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T12:55:35Z pilfink joined #lisp 2018-01-26T12:55:54Z smasta joined #lisp 2018-01-26T12:58:35Z defaultxr quit (Ping timeout: 240 seconds) 2018-01-26T13:00:36Z smasta quit (Ping timeout: 256 seconds) 2018-01-26T13:04:10Z nullman quit (Ping timeout: 252 seconds) 2018-01-26T13:04:44Z nullman joined #lisp 2018-01-26T13:04:49Z Xach: scymtym: what is lisplab? 2018-01-26T13:05:02Z JonSmith joined #lisp 2018-01-26T13:05:29Z Xach: Google helped me find it. 2018-01-26T13:05:42Z hiroaki quit (Ping timeout: 256 seconds) 2018-01-26T13:07:07Z Xach: scymtym: xml.location references lisplab in one of its systems, but lisplab isn't in quicklisp - should i add lisplab? or ignore the xml.location system? 2018-01-26T13:10:30Z thijso quit (Ping timeout: 246 seconds) 2018-01-26T13:11:57Z dddddd quit (Ping timeout: 240 seconds) 2018-01-26T13:13:53Z dddddd joined #lisp 2018-01-26T13:15:31Z Ven`` joined #lisp 2018-01-26T13:16:42Z Ven` joined #lisp 2018-01-26T13:17:48Z solyd quit (Quit: solyd) 2018-01-26T13:19:41Z scymtym: Xach: it used to be an optional dependency but is no longer relevant. i can just remove the integration 2018-01-26T13:19:59Z Ven`` quit (Ping timeout: 248 seconds) 2018-01-26T13:20:30Z scymtym: Xach: i have been meaning to do that for quite some time but forgot about it. thanks for bringing it up 2018-01-26T13:20:41Z ebrasca: Can I delete characters from some file to make it smaller? 2018-01-26T13:22:12Z Shinmera: That depends on your file system, but generally no. You can write out a new file and delete the old one though. 2018-01-26T13:22:45Z billitch: ebrasca: you have truncate(1) on unix 2018-01-26T13:23:35Z ebrasca: billitch: I am working on mezzano OS. 2018-01-26T13:23:44Z scymtym: Xach: removed in master 2018-01-26T13:23:50Z Xach: scymtym: thanks 2018-01-26T13:23:55Z billitch: maybe truncate(2) is in cffi-unistd 2018-01-26T13:24:14Z billitch: ebrasca: i'm working on CL VFS 2018-01-26T13:24:36Z billitch: ;) 2018-01-26T13:25:40Z ebrasca: billitch: Why someone need virtual FS? 2018-01-26T13:27:14Z billitch: to map key values shared by multiple processes and users 2018-01-26T13:27:57Z billitch: you need to abstract between disk layout and abstract contention problems 2018-01-26T13:28:12Z billitch: maybe 2018-01-26T13:28:33Z billitch: i'm not so comfortable with CL pathnames 2018-01-26T13:28:43Z billitch: not perfect 2018-01-26T13:29:23Z ebrasca: I like streams and files. 2018-01-26T13:29:39Z billitch: i think breaking os dependency is achievable by any software including a vfs 2018-01-26T13:29:52Z billitch: that is the case with web browsers 2018-01-26T13:30:08Z billitch: they nearly took over personal computers 2018-01-26T13:30:50Z billitch: the url scheme is subject of much more design than disk layout which is left to the OS 2018-01-26T13:31:11Z billitch: or mongodb ffs 2018-01-26T13:31:37Z billitch: and so would a global microkernel develop itself 2018-01-26T13:32:14Z ebrasca: I am working on FAT32 implementation for Mezzano OS. 2018-01-26T13:32:35Z billitch: ebrasca: oh great, without a vfs then ? 2018-01-26T13:33:34Z ebrasca: billitch: There is some abstraction in mezzano for FS. 2018-01-26T13:34:18Z heurist quit (Ping timeout: 240 seconds) 2018-01-26T13:34:32Z billitch: when i say vfs i mean all the data structures that are common to all filesystems 2018-01-26T13:34:53Z billitch: well i think the most common data structure is a variable length string which is the filename 2018-01-26T13:35:00Z billitch: and maybe there is nothing beyond that 2018-01-26T13:35:09Z heurist joined #lisp 2018-01-26T13:35:19Z billitch: but then you have permissions 2018-01-26T13:35:33Z billitch: which are handled through rsa keys mostly 2018-01-26T13:35:48Z ebrasca: FAT32 have long names in segments 2018-01-26T13:36:14Z billitch: ebrasca: do you have a git repo ? 2018-01-26T13:36:26Z ebrasca: billitch: Yes 2018-01-26T13:36:27Z damke joined #lisp 2018-01-26T13:36:50Z papachan joined #lisp 2018-01-26T13:36:52Z arbv quit (Ping timeout: 256 seconds) 2018-01-26T13:38:53Z smurfrobot joined #lisp 2018-01-26T13:39:21Z damke__ quit (Ping timeout: 264 seconds) 2018-01-26T13:42:57Z windblow quit (Ping timeout: 264 seconds) 2018-01-26T13:46:26Z rippa joined #lisp 2018-01-26T13:47:19Z Ven` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T13:49:17Z eivarv quit (Quit: Sleep) 2018-01-26T13:49:41Z mnoonan joined #lisp 2018-01-26T13:50:07Z smasta joined #lisp 2018-01-26T13:50:58Z _mjl joined #lisp 2018-01-26T13:52:39Z smurfrobot quit (Remote host closed the connection) 2018-01-26T13:54:46Z smasta quit (Ping timeout: 252 seconds) 2018-01-26T13:54:58Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T13:55:33Z oleo joined #lisp 2018-01-26T13:55:51Z Chream_ joined #lisp 2018-01-26T13:57:46Z shrdlu68 joined #lisp 2018-01-26T13:59:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T14:01:28Z Ven`` joined #lisp 2018-01-26T14:02:54Z smurfrobot joined #lisp 2018-01-26T14:04:16Z Chream_ quit (Read error: Connection reset by peer) 2018-01-26T14:04:51Z solyd joined #lisp 2018-01-26T14:05:29Z Chream_ joined #lisp 2018-01-26T14:05:47Z fikka joined #lisp 2018-01-26T14:08:22Z jmercouris joined #lisp 2018-01-26T14:08:55Z Bike joined #lisp 2018-01-26T14:10:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T14:11:21Z pjb joined #lisp 2018-01-26T14:13:12Z phoe: Do I want to use DPB? 2018-01-26T14:13:13Z murii quit (Quit: ¯\_(ツ)_/¯) 2018-01-26T14:13:18Z phoe: Or should I rather use SETF LDB? 2018-01-26T14:14:33Z _death: if you change a place, setf ldb.. if you return a new value, dpb 2018-01-26T14:15:02Z Chream_2 joined #lisp 2018-01-26T14:16:13Z pjb: phoe: up to you. So far I've used dpb. 2018-01-26T14:16:15Z phoe: Oh wait. DPB does not mutate anything? 2018-01-26T14:16:26Z phoe: Yes, I see. 2018-01-26T14:16:29Z phoe: It's a pure function. 2018-01-26T14:16:30Z arbv joined #lisp 2018-01-26T14:16:32Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-26T14:16:45Z pjb: Because it's more like (dpb (dpb (dpb …))) to build words… 2018-01-26T14:17:30Z Shinmera: phoe: numbers are immutable. (setf ldb) is the same as (setf place (dpb ..)) 2018-01-26T14:18:16Z pjb: (setf (ldb byte place) val) = (setf place (dpb val byte place)) ; but without the place duplication. 2018-01-26T14:19:00Z phoe: Yes - thank you. 2018-01-26T14:19:43Z windblow joined #lisp 2018-01-26T14:20:49Z jmercouris: there doesn't appear to be a straightforward way to copy a dir in CL, is there one I'm not seeing? 2018-01-26T14:21:28Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-26T14:21:42Z jmercouris: I see uiop:copy-file and I guess I could copy the folder file, but I'm not sure how that would work 2018-01-26T14:21:46Z _death: jmercouris: copying a directory (or even a file) is not a straightforward operation.. it depends on what you want to use it for 2018-01-26T14:22:21Z jmercouris: _death: I'm trying to copy a directory of static assets for exporting a site-generator page 2018-01-26T14:22:30Z Shinmera: jmercouris: Use DIRECTORY, a wild-inferiors pathname, and COPY-FILE, and ENSURE-DIRECTORIES-EXIST. 2018-01-26T14:22:33Z jmercouris: currently it makes a symlink to the static dir 2018-01-26T14:23:14Z _death: jmercouris: here's an old snippet https://gist.github.com/death/2b7b1cfe6a38fc4b368ba91419c75e2e 2018-01-26T14:23:47Z paule32: hello 2018-01-26T14:23:58Z paule32: what is wrong: 2018-01-26T14:24:00Z paule32: https://pastebin.com/1UvHUv78 2018-01-26T14:24:09Z paule32: line 169 2018-01-26T14:24:14Z jmercouris: _death: Checking it out now, thanks 2018-01-26T14:24:37Z zooey quit (Remote host closed the connection) 2018-01-26T14:25:18Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-26T14:25:18Z jmercouris: _death: Interesting, so you literally copy all the individual files 2018-01-26T14:25:19Z fikka joined #lisp 2018-01-26T14:25:19Z zooey joined #lisp 2018-01-26T14:25:28Z warweasle joined #lisp 2018-01-26T14:26:07Z _death: jmercouris: depending on your situation, it may even make sense to invoke cp -R or somesuch 2018-01-26T14:26:08Z jmercouris: Shinmera: What do yo umean by "wild-inferiors" pathname? a pathname that includes a wildcard matching all child files of the dir I wish to copy? 2018-01-26T14:26:30Z Tobbi joined #lisp 2018-01-26T14:26:54Z jmercouris: cp -R isn't a bad idea for my use case, I may drop it into a "makefile" 2018-01-26T14:27:11Z jmercouris: so I don't feel like I am dirtying the code too much 2018-01-26T14:27:15Z Shinmera: jmercouris: For instance: (make-pathname :directory '(:absolute :home :wild-inferiors)) 2018-01-26T14:27:18Z capitaomorte quit (Ping timeout: 240 seconds) 2018-01-26T14:27:32Z Shinmera: That matches all subdirectories. 2018-01-26T14:27:48Z Shinmera: Well, all subdirectories in the home directory. 2018-01-26T14:27:57Z Shinmera: You'll also need :name :wild :type :wild to match files. 2018-01-26T14:28:39Z jmercouris: Shinmera: So i'd match all the dirs, and which I would then have to walk, and then match all the files and then copy them? 2018-01-26T14:28:44Z Shinmera: No 2018-01-26T14:29:40Z Shinmera: (directory (make-pathname :name :wild :type :wild :directory '(:absolute :home :wild-inferiors))) will list all files reachable from your home directory. 2018-01-26T14:29:52Z jmercouris: That's totally fine 2018-01-26T14:30:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T14:30:08Z jmercouris: But will copy-file also copy the dirs and the files in the same tree structure? 2018-01-26T14:30:13Z smurfrobot quit (Remote host closed the connection) 2018-01-26T14:30:18Z LiamH joined #lisp 2018-01-26T14:30:24Z Shinmera: copy-file copies a file from a source to a destination. 2018-01-26T14:30:30Z jmercouris: Does my question make sense or am I misunderstanding the approach? 2018-01-26T14:30:32Z Shinmera: You need to tell it where to put it 2018-01-26T14:30:46Z jmercouris: Right, so I would still need somehow to know the tree structure of the dir I'm copying over 2018-01-26T14:30:47Z _death: for some settings you may want tar, or rsync... 2018-01-26T14:30:49Z jmercouris: so I'd have to walk it 2018-01-26T14:30:55Z Shinmera: No? 2018-01-26T14:30:58Z Shinmera: The structure is in the path 2018-01-26T14:31:18Z billitch quit (Ping timeout: 240 seconds) 2018-01-26T14:31:35Z Shinmera: You truncate off the common path to make it relative, then make it absolute to the destination directory again. Then use ensure-directories-exist to make sure the folders are there, then copy. 2018-01-26T14:31:36Z nopf joined #lisp 2018-01-26T14:31:42Z jmercouris: That's true, but unless there's a copy-file flag that will construct all the necessary folders to get to a path, I'd still need to somehow do some processing no? 2018-01-26T14:32:11Z jmercouris: ah okay, so there is a flag 2018-01-26T14:32:14Z jmercouris: ensure-directories-exist 2018-01-26T14:32:16Z Shinmera: No? 2018-01-26T14:32:19Z Shinmera: That's a function 2018-01-26T14:32:23Z Shinmera: clhs ensure-directories-exist 2018-01-26T14:32:23Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_ensu_1.htm 2018-01-26T14:32:35Z jmercouris: :D 2018-01-26T14:32:39Z jmercouris: Today is not my day :D 2018-01-26T14:32:53Z Xach: This is an area that is full of little details and implementation variations. 2018-01-26T14:33:39Z jmercouris: Shinmera: It is a clever approach, I now get it 2018-01-26T14:33:51Z Xach: For example, getting a list of relative pathnames via DIRECTORY on a given base directory has a pitfall to carefully avoid. 2018-01-26T14:34:19Z Shinmera: Yeah, might do symlink resolution or truenaming, so your paths might not all have the same root. 2018-01-26T14:34:22Z Xach: if the base pathname isn't a truename, the results from DIRECTORY won't be amenable to enough-namestring. 2018-01-26T14:34:49Z _death wonders why that snippet didn't give him a warning as it's missing a symbol in import-from 2018-01-26T14:34:50Z jmercouris: In a different way, I've been convinced that rsync is the better tool here :D 2018-01-26T14:34:51Z Xach: directory is specified to do truenaming 2018-01-26T14:35:36Z jmercouris: would be a nice utility for someone to write though, or nice to have in uiop like uiop:copy-dir 2018-01-26T14:35:40Z Shinmera: Oh, right. 2018-01-26T14:36:21Z smurfrobot joined #lisp 2018-01-26T14:37:08Z Xach: It sure would be nice to have a utility like that. I can understand why it's hard to get right, though. 2018-01-26T14:37:24Z Shinmera: filesystem-utils is on my todo 2018-01-26T14:37:30Z Shinmera: maybe in a decade I'll get to it :) 2018-01-26T14:37:56Z solyd quit (Quit: solyd) 2018-01-26T14:38:00Z smurfrobot quit (Remote host closed the connection) 2018-01-26T14:38:05Z jmercouris: Shinmera: I'll look forward to it around 2028, setting a cal reminder now :D 2018-01-26T14:38:06Z BitPuffin joined #lisp 2018-01-26T14:38:13Z smurfrobot joined #lisp 2018-01-26T14:39:03Z saemcro quit (Remote host closed the connection) 2018-01-26T14:40:16Z fikka joined #lisp 2018-01-26T14:40:41Z SaganMan joined #lisp 2018-01-26T14:41:43Z Shinmera: I said maybe 2018-01-26T14:41:55Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T14:44:14Z smasta joined #lisp 2018-01-26T14:47:14Z JuanDaugherty joined #lisp 2018-01-26T14:48:48Z smasta quit (Ping timeout: 240 seconds) 2018-01-26T14:50:27Z Ven`` joined #lisp 2018-01-26T14:54:24Z FreeBirdLjj joined #lisp 2018-01-26T14:59:32Z AxelAlex quit (Quit: AxelAlex) 2018-01-26T15:01:33Z random-nick joined #lisp 2018-01-26T15:03:08Z lexa_ quit (Ping timeout: 255 seconds) 2018-01-26T15:03:20Z smurfrobot quit (Remote host closed the connection) 2018-01-26T15:05:35Z markong joined #lisp 2018-01-26T15:08:25Z eivarv joined #lisp 2018-01-26T15:12:45Z SaganMan quit (Ping timeout: 260 seconds) 2018-01-26T15:16:25Z sjl joined #lisp 2018-01-26T15:17:06Z shrdlu68 joined #lisp 2018-01-26T15:18:44Z mejja joined #lisp 2018-01-26T15:19:12Z eivarv quit (Quit: Sleep) 2018-01-26T15:27:40Z EvW quit (Ping timeout: 240 seconds) 2018-01-26T15:29:44Z Cymew quit (Remote host closed the connection) 2018-01-26T15:30:12Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T15:31:40Z random-nick quit (Remote host closed the connection) 2018-01-26T15:35:12Z random-nick joined #lisp 2018-01-26T15:35:59Z Cymew joined #lisp 2018-01-26T15:36:21Z rumbler31 joined #lisp 2018-01-26T15:36:59Z Ven`` joined #lisp 2018-01-26T15:38:07Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-26T15:38:09Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-26T15:38:21Z smasta joined #lisp 2018-01-26T15:38:48Z _cosmonaut_ quit (Ping timeout: 240 seconds) 2018-01-26T15:40:07Z rumbler31: good morning lisp! 2018-01-26T15:40:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-26T15:41:53Z beach: Hello rumbler31. 2018-01-26T15:42:04Z rumbler31: whats good today? 2018-01-26T15:42:20Z beach: The weather is not too shabby. 2018-01-26T15:42:52Z Xach: The Quicklisp build RSS feeds are live 2018-01-26T15:42:59Z rumbler31: not bad on the east coast of the US, waiting for it to make up its mind about the cold 2018-01-26T15:43:00Z Xach: i added the rss generator to quicklisp, too 2018-01-26T15:43:05Z smasta quit (Ping timeout: 260 seconds) 2018-01-26T15:43:06Z rumbler31: oh sweet! 2018-01-26T15:43:25Z Xach: it is very simple and dumb but sufficient for some tasks 2018-01-26T15:44:21Z m00natic quit (Ping timeout: 268 seconds) 2018-01-26T15:45:25Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-26T15:46:04Z JuanDaugherty is only wanting to destroy all humongs by merciful means, does that count as a good day? 2018-01-26T15:46:19Z terpri quit (Ping timeout: 256 seconds) 2018-01-26T15:46:39Z randomstrangerb joined #lisp 2018-01-26T15:46:52Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-26T15:47:25Z pjb: JuanDaugherty: Patience, Last Judgement is near. 2018-01-26T15:47:30Z DeadTrickster joined #lisp 2018-01-26T15:47:50Z JuanDaugherty: pjb, ah good 2018-01-26T15:47:59Z damke_ joined #lisp 2018-01-26T15:50:45Z damke quit (Ping timeout: 265 seconds) 2018-01-26T15:51:28Z dec0n quit (Read error: Connection reset by peer) 2018-01-26T15:53:29Z fisxoj joined #lisp 2018-01-26T16:05:20Z Xach: borodust: claw does not build for me 2018-01-26T16:05:21Z Karl_Dscc joined #lisp 2018-01-26T16:06:16Z dyelar joined #lisp 2018-01-26T16:06:28Z borodust: Xach: what is reported? 2018-01-26T16:06:40Z eminhi joined #lisp 2018-01-26T16:06:46Z Xach: http://report.quicklisp.org/2018-01-26/failure-report/claw.html <-- argument count mismatch 2018-01-26T16:07:02Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-26T16:07:30Z dlowe: I need to mess up my projects so I can get some activity on my feed :D 2018-01-26T16:07:55Z borodust: Xach: woops, thank you, gonna fix that in a few hours 2018-01-26T16:08:05Z Xach: ok 2018-01-26T16:08:18Z randomstrangerb joined #lisp 2018-01-26T16:08:45Z cmatei quit (Ping timeout: 264 seconds) 2018-01-26T16:08:48Z Ven`` quit (Ping timeout: 240 seconds) 2018-01-26T16:08:51Z paule32: hello 2018-01-26T16:08:57Z paule32: need help: https://pastebin.com/CXEcd1Gw 2018-01-26T16:09:24Z paule32: i get SYSTEM::%STRUCTURE-REF error 2018-01-26T16:09:36Z Karl_Dscc quit (Remote host closed the connection) 2018-01-26T16:09:45Z paule32: in line 147 2018-01-26T16:10:03Z smurfrobot joined #lisp 2018-01-26T16:13:40Z cmatei joined #lisp 2018-01-26T16:15:12Z Murii joined #lisp 2018-01-26T16:15:57Z brendyn quit (Ping timeout: 264 seconds) 2018-01-26T16:20:57Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-26T16:24:03Z shka_ joined #lisp 2018-01-26T16:24:48Z Mon_Ouie joined #lisp 2018-01-26T16:25:15Z FreeBirdLjj joined #lisp 2018-01-26T16:29:23Z rumbler31: if you remove that line what happens 2018-01-26T16:29:26Z rumbler31: paule32: 2018-01-26T16:29:50Z Ven`` joined #lisp 2018-01-26T16:30:10Z smurfrobot quit (Remote host closed the connection) 2018-01-26T16:30:35Z paule32: rumbler31: the same 2018-01-26T16:30:50Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T16:30:53Z rumbler31: what if you remove all setf wire-in calls 2018-01-26T16:31:26Z aindilis` joined #lisp 2018-01-26T16:31:33Z paule32: the same 2018-01-26T16:32:09Z windblow quit (Quit: windblow) 2018-01-26T16:32:28Z smasta joined #lisp 2018-01-26T16:32:48Z aindilis quit (Ping timeout: 240 seconds) 2018-01-26T16:33:46Z rumbler31: your full addder takes i1 i2 i3 as inputs 2018-01-26T16:33:48Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-26T16:33:48Z rumbler31: but uses a b c 2018-01-26T16:36:57Z smasta quit (Ping timeout: 240 seconds) 2018-01-26T16:38:02Z pjb: beach: I have a suggestion for sicl (and really, for all CL implementations): annotate the function with the special variables used, and issue warnings or print notices about them (systematically and automatically). Notably, for implementation operators. Again this week somebody in #ccl had a problem that a ccl function to open a network stream failed, when *print-base* or *print-radix* were different from the default value; thi 2018-01-26T16:38:02Z pjb: function used princ to convert a port number to a string… This can be considered a bug, but in any case, it should be documented! 2018-01-26T16:39:45Z beach: "annotate" as in write it in the documentation and in the docstring? 2018-01-26T16:40:07Z Shinmera: pjb: signals would also be good to know about 2018-01-26T16:40:35Z Shinmera: and tags, though they're seldom used. 2018-01-26T16:40:51Z orivej joined #lisp 2018-01-26T16:41:21Z Shinmera: A compiler could actually also provide that kind of information automatically. 2018-01-26T16:41:43Z FreeBirdLjj joined #lisp 2018-01-26T16:42:38Z scymtym: doesn't SWANK:WHO-{BINDS,REFERENCES} basically provide that? 2018-01-26T16:42:53Z beach: Sounds like good information to have. 2018-01-26T16:43:52Z scymtym: well, ok, it would have to work the other way around for the above purpose 2018-01-26T16:44:13Z mepian joined #lisp 2018-01-26T16:45:32Z flamebeard quit (Quit: Leaving) 2018-01-26T16:46:26Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T16:47:57Z fikka joined #lisp 2018-01-26T16:49:18Z turkja quit (Ping timeout: 240 seconds) 2018-01-26T16:49:47Z terpri joined #lisp 2018-01-26T16:49:54Z Jesin joined #lisp 2018-01-26T16:50:09Z smurfrobot joined #lisp 2018-01-26T16:54:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-26T16:55:41Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-26T16:56:02Z pjb: beach: by annotate here I mean in the compiler data structures. So that it may issue the warnings or write notices on its output. 2018-01-26T16:56:18Z pjb: like a type annotation/type inference. 2018-01-26T16:56:30Z pjb: If a function calls a function using dynamic variables, then it uses them itself too. 2018-01-26T16:57:15Z beach: I think I would need an example. Maybe I am just tired after a long day of work. 2018-01-26T16:57:18Z pilfink quit (Ping timeout: 240 seconds) 2018-01-26T16:57:25Z makomo: hello 2018-01-26T16:57:27Z rumbler31: paule32: in half adder you also setf a and b, but take in i1 and i2. I don't think these would explain your errors though, since a,b,c are globals, but maybe the fact that they are special is messing things up 2018-01-26T16:57:47Z beach: Hello makomo. 2018-01-26T16:58:21Z tfb: pjb: you can't always know this of course, but that doesn't invalidate the idea 2018-01-26T16:58:39Z cmatei quit (Ping timeout: 248 seconds) 2018-01-26T16:58:44Z makomo: pjb: hmm, why would you need to document it if it's only used internally by the function? 2018-01-26T16:58:55Z beach again feels that everyone understand except him. :( 2018-01-26T16:59:12Z makomo: if we suppose that the function correctly binds *print-radix* and w/e it needs before PRINC-ing 2018-01-26T16:59:39Z FreeBirdLjj joined #lisp 2018-01-26T16:59:58Z cmatei joined #lisp 2018-01-26T17:00:56Z smasta joined #lisp 2018-01-26T17:01:28Z megachombass joined #lisp 2018-01-26T17:01:47Z megachombass: good news, i have 2 days extensions for my clisp toy compiler 2018-01-26T17:02:07Z megachombass: if i manage to compile fibo (means be able to compile constants, a defun and a IF) ill be good 2018-01-26T17:02:08Z rumbler31: -.- 2018-01-26T17:03:28Z pjb: beach: something like: https://pastebin.com/Vqk3YQQP 2018-01-26T17:03:52Z shrdlu68: megachombass: Are you using "clisp" as an abbreviation for Common Lisp? 2018-01-26T17:04:11Z smurfrobot quit (Remote host closed the connection) 2018-01-26T17:04:17Z megachombass: yes 2018-01-26T17:04:37Z beach: pjb: Ah, yes, I see. I will definitely give it some thought. 2018-01-26T17:04:47Z pjb: beach: additionnal similar annotations could be about side effects: mutation of bindings, mutation of lisp objects, and mutation of external state (file system). 2018-01-26T17:04:47Z Chream_ joined #lisp 2018-01-26T17:05:02Z shrdlu68: megachombass: You'd be better of using "CL" instead. clisp means something different to most people here. 2018-01-26T17:05:05Z beach: pjb: Yes, I think I get the picture. 2018-01-26T17:05:55Z pjb: beach: the problem being that programmers have a mental image of what state is used or mutated by functions, but it is not always exact (eg. a lot of *print-…* variables are ignored for non-I/O functions…), and it's in general unknown for implementation specific functions. 2018-01-26T17:06:19Z beach: Sounds right. 2018-01-26T17:07:06Z Chream_2 quit (Ping timeout: 256 seconds) 2018-01-26T17:07:11Z pjb: makomo: yes, indeed if there is a local dynamic binding of a dynamic variables used by a function, then it can be removed from the list of dynamic variables usedby the caller. 2018-01-26T17:07:31Z pjb: So a with-standard-io-syntax would inhibit all those *print-…* variable notices. 2018-01-26T17:08:03Z pjb: Currently, we get this kind of warning only for undefined global dynamic variables. 2018-01-26T17:08:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-26T17:10:05Z makomo: megachombass: clisp happens to be the name of a particular cl implementation. that's why you should use "cl" instead when referring to common lisp as a language 2018-01-26T17:10:06Z EvW joined #lisp 2018-01-26T17:11:42Z megachombass: oh i see 2018-01-26T17:11:46Z megachombass: though it was the same 2018-01-26T17:11:55Z Shinmera: or just "lisp" 2018-01-26T17:11:57Z pjb: megachombass: it's easy, Common Lisp comes from a package named "COMMON-LISP" and with a nickname "CL". So call it common-lisp or cl. 2018-01-26T17:12:19Z pjb: "LISP" was an old, pre-standard nickname. This is why #lisp is #lisp and not #cl or #common-lisp :-) 2018-01-26T17:12:20Z smurfrobot joined #lisp 2018-01-26T17:13:35Z pjb: beach: (dynamic-variable-used-by-function 'concatenate) -> (*debugger-hook* …) assuming it signals type errors, and signal calls invoke-debugger which uses *debugger-hook* ;-) See the range of the problem… 2018-01-26T17:14:10Z beach: Yes, I see. 2018-01-26T17:14:30Z pjb: perhaps the result will be that all functions always use indirectly all the standard dynamic variables. :-( 2018-01-26T17:15:02Z beach: It would have to be given some thought. 2018-01-26T17:16:10Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-26T17:16:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-26T17:17:13Z eivarv joined #lisp 2018-01-26T17:17:58Z varjag joined #lisp 2018-01-26T17:18:22Z fisxoj quit (Quit: fisxoj) 2018-01-26T17:18:31Z fisxoj joined #lisp 2018-01-26T17:19:40Z fikka joined #lisp 2018-01-26T17:20:18Z Chream_ joined #lisp 2018-01-26T17:22:26Z smurfrobot joined #lisp 2018-01-26T17:22:50Z smasta quit (Ping timeout: 260 seconds) 2018-01-26T17:24:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-26T17:25:55Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-26T17:26:31Z _cosmonaut_ joined #lisp 2018-01-26T17:26:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-26T17:30:53Z asarch joined #lisp 2018-01-26T17:33:57Z ebzzry quit (Ping timeout: 264 seconds) 2018-01-26T17:36:06Z alexmlw joined #lisp 2018-01-26T17:39:16Z moei joined #lisp 2018-01-26T17:40:54Z hhdave quit (Ping timeout: 268 seconds) 2018-01-26T17:43:36Z fikka joined #lisp 2018-01-26T17:47:14Z varjag quit (Ping timeout: 252 seconds) 2018-01-26T17:47:27Z osune joined #lisp 2018-01-26T17:48:55Z fikka quit (Ping timeout: 268 seconds) 2018-01-26T17:50:50Z shifty joined #lisp 2018-01-26T17:53:23Z varjag joined #lisp 2018-01-26T17:53:33Z _cosmonaut_ quit (Remote host closed the connection) 2018-01-26T17:54:26Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-26T17:55:47Z fikka joined #lisp 2018-01-26T17:56:31Z mepian quit (Read error: Connection reset by peer) 2018-01-26T17:58:06Z varjag quit (Ping timeout: 256 seconds) 2018-01-26T17:58:46Z spoken-tales joined #lisp 2018-01-26T17:58:55Z smurfrobot joined #lisp 2018-01-26T18:01:15Z eivarv quit (Quit: Sleep) 2018-01-26T18:01:30Z fikka quit (Ping timeout: 256 seconds) 2018-01-26T18:03:03Z varjag joined #lisp 2018-01-26T18:04:16Z fikka joined #lisp 2018-01-26T18:04:18Z eminhi quit (Ping timeout: 240 seconds) 2018-01-26T18:05:03Z Karl_Dscc joined #lisp 2018-01-26T18:06:15Z EvW quit (Ping timeout: 246 seconds) 2018-01-26T18:06:31Z drewc_ joined #lisp 2018-01-26T18:07:25Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-26T18:07:51Z voidlily quit (Read error: Connection reset by peer) 2018-01-26T18:08:02Z varjag quit (Ping timeout: 268 seconds) 2018-01-26T18:08:20Z drewc quit (Ping timeout: 260 seconds) 2018-01-26T18:10:06Z voidlily joined #lisp 2018-01-26T18:11:46Z mepian joined #lisp 2018-01-26T18:13:04Z varjag joined #lisp 2018-01-26T18:14:41Z smurfrobot joined #lisp 2018-01-26T18:14:58Z dieggsy joined #lisp 2018-01-26T18:15:26Z spoken-tales quit (Remote host closed the connection) 2018-01-26T18:17:45Z varjag quit (Ping timeout: 264 seconds) 2018-01-26T18:19:33Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-26T18:19:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T18:20:35Z zazzerino joined #lisp 2018-01-26T18:20:40Z drewc_ is now known as drewc 2018-01-26T18:21:42Z scymtym quit (Ping timeout: 252 seconds) 2018-01-26T18:21:54Z nullman quit (Ping timeout: 256 seconds) 2018-01-26T18:22:13Z karswell joined #lisp 2018-01-26T18:22:37Z nullman joined #lisp 2018-01-26T18:23:03Z varjag joined #lisp 2018-01-26T18:23:34Z fikka joined #lisp 2018-01-26T18:27:11Z varjag quit (Ping timeout: 248 seconds) 2018-01-26T18:29:27Z loli quit (Ping timeout: 240 seconds) 2018-01-26T18:29:48Z phoe: pjb: is https://github.com/informatimago/lisp/tree/master/common-lisp licensed under GPLv2 or GPLv2+? 2018-01-26T18:31:00Z phoe: I see a file called GPL there that confuses me, because the main README states that the project is AGPLv3 with exceptions. 2018-01-26T18:31:35Z jackdaniel: GPLv2+ (according to file GPL) 2018-01-26T18:31:36Z megachombass: so, do you guys see any useless code, reduntant code, or better way to do things here? https://codepaste.net/aspmng 2018-01-26T18:31:50Z jackdaniel: it is enough to search in the license string "at your option" 2018-01-26T18:32:24Z jackdaniel: ah, no, GPL is whole license verbatim 2018-01-26T18:32:26Z jackdaniel: nvm me 2018-01-26T18:32:31Z fikka quit (Ping timeout: 248 seconds) 2018-01-26T18:33:24Z beach: megachombass: You haven't made any of the modifications I told you to. 2018-01-26T18:33:33Z megachombass: not on this one 2018-01-26T18:33:38Z megachombass: i did on the other one 2018-01-26T18:33:54Z megachombass: i'll fix parentehsis, whitespaces and aestetic things on this one later 2018-01-26T18:34:04Z jackdaniel: megachombass: do them before presenting code here 2018-01-26T18:34:26Z jackdaniel: this is waste of everyone time if we click that link and decide, that it's not formatted correctly and point that out *again* 2018-01-26T18:34:28Z megachombass: now i want to know if there is useless code, or things that can be modified 2018-01-26T18:34:38Z moriarty joined #lisp 2018-01-26T18:34:43Z beach: megachombass: You don't get it do you? 2018-01-26T18:34:56Z megachombass: yeeeeeeeeeeeeeeeeeeessss i do, for real 2018-01-26T18:34:58Z megachombass: im going to do it, promised 2018-01-26T18:35:08Z jackdaniel: I think that you need to understand: formatting your code and aesthetics is a *prerequisite*, not an addendum 2018-01-26T18:35:18Z jackdaniel: for free peer review on irc 2018-01-26T18:35:40Z beach: You are supposed to do it before submitting the code, because otherwise, you put additional burden on the people you are asking for help. That is so incredibly rude, especially since you have been told this already. 2018-01-26T18:35:50Z moriarty left #lisp 2018-01-26T18:37:11Z Bike: i thought this assignment thing was due today 2018-01-26T18:37:57Z megachombass: i did send the virtual machine 2018-01-26T18:37:58Z jmercouris joined #lisp 2018-01-26T18:38:08Z megachombass: but i need a simle compiler that compiles fibo and fact 2018-01-26T18:38:12Z fikka joined #lisp 2018-01-26T18:38:24Z megachombass: the code i just pasted does that role 2018-01-26T18:38:43Z Cymew joined #lisp 2018-01-26T18:40:23Z beach: megachombass: See if from my point of view. You come here and ask for improvements. I spend time and energy on you. Then you completely ignore what I told you, and submit crappy code again. What makes you think I would want to help you again? 2018-01-26T18:40:41Z beach: megachombass: Or any other person who has followed this exchange for that matter. 2018-01-26T18:40:41Z megachombass: https://codepaste.net/y6mtwn whitespaces removed, parenthesis on the right lines. 2018-01-26T18:41:06Z megachombass: tho there was something you told me about function naming 2018-01-26T18:41:26Z beach: Incorrectly indented, still whitespace before ). 2018-01-26T18:41:37Z megachombass: oh? let me recheck my bad 2018-01-26T18:41:37Z beach: You really don't get it. 2018-01-26T18:41:58Z beach: Did you use SLIME-indentation to indent it? 2018-01-26T18:42:08Z beach: If you did it manually, it is always going to be wrong. 2018-01-26T18:42:45Z megachombass: let me download slime 2018-01-26T18:42:51Z varjag joined #lisp 2018-01-26T18:42:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-26T18:43:01Z beach: Anyway, good luck. I am off to spend time with my (admittedly small) family. 2018-01-26T18:43:32Z megachombass: okey, have a nice evening beach! 2018-01-26T18:45:28Z ghard` joined #lisp 2018-01-26T18:45:38Z phoe: megachombass: for a pretty portable package for editing Lisp, you can try Portacle 2018-01-26T18:45:47Z ghard quit (Remote host closed the connection) 2018-01-26T18:45:47Z phoe: https://portacle.github.io/ 2018-01-26T18:46:07Z phoe: it contains emacs + sbcl + slime + git in a pretty nice package that should work out of the box 2018-01-26T18:46:13Z megachombass: downloadin 2018-01-26T18:46:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T18:47:23Z fikka joined #lisp 2018-01-26T18:47:39Z varjag quit (Ping timeout: 256 seconds) 2018-01-26T18:49:05Z jmercouris: phoe: +1 on the portacle reccomendation, always very easy for a beginner to get set up in this way 2018-01-26T18:49:27Z jmercouris: unless they are already an emacs user, in which case they should be able to figure it out (assuming they didn't just install spacemacs and call it a day...) 2018-01-26T18:49:40Z mepian quit (Ping timeout: 240 seconds) 2018-01-26T18:50:48Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-26T18:50:57Z Cymew joined #lisp 2018-01-26T18:51:05Z drewc_ joined #lisp 2018-01-26T18:51:33Z asarch quit (Quit: Leaving) 2018-01-26T18:51:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T18:51:45Z megachombass: hum 2018-01-26T18:51:50Z megachombass: have put my code in portacle 2018-01-26T18:51:56Z megachombass: selected all the code 2018-01-26T18:51:59Z megachombass: and used the lisp-interactions 2018-01-26T18:52:01Z megachombass: zero changes 2018-01-26T18:52:05Z Fade: I used portacle to drag a handful of windows devs along on a lisp 'show and tell' a few weeks ago. 2018-01-26T18:52:34Z Fade: it was so nice just to install it and run, instead of spending an hour getting everybody's systems up to snuff. 2018-01-26T18:52:34Z phoe: megachombass: your buffer is in lisp-mode, right? 2018-01-26T18:53:01Z phoe: if yes, then M-x indent-region 2018-01-26T18:53:21Z jackdaniel: it's the fact that it is a hell lot easier to point someone at portacle than scare him with: install emacs, install slime, install sbcl, go to quicklisp and install it, configure stuff 2018-01-26T18:53:31Z phoe: ^ 2018-01-26T18:53:59Z jackdaniel: (but it's still emacs, so that particular someone will probably have a trauma either way) 2018-01-26T18:54:27Z drewc quit (Ping timeout: 240 seconds) 2018-01-26T18:54:48Z megachombass: M-x, M stands for? 2018-01-26T18:55:04Z megachombass: thats why i never used emacs, even copy paste is so different than everything else 2018-01-26T18:55:26Z Cymew quit (Ping timeout: 252 seconds) 2018-01-26T18:55:58Z jackdaniel: exactly my point ;-) M-x means Alt+x 2018-01-26T18:56:03Z jackdaniel: C-x means Ctrl+x 2018-01-26T18:56:12Z jackdaniel: (by Alt I mean left alt) 2018-01-26T18:56:22Z megachombass: let me try alt xc 2018-01-26T18:56:27Z megachombass: alt+x* 2018-01-26T18:57:47Z megachombass: hum 2018-01-26T18:57:49Z megachombass: so 2018-01-26T18:57:54Z megachombass: opened it 2018-01-26T18:58:00Z megachombass: copy pasted the code 2018-01-26T18:58:03Z megachombass: selected all code 2018-01-26T18:58:08Z megachombass: pressed alt+x 2018-01-26T18:58:21Z megachombass: didnt see any difference. 2018-01-26T18:58:35Z fikka joined #lisp 2018-01-26T18:58:42Z phoe: megachombass: alt+x tells Emacs to accept a typed command. 2018-01-26T18:58:43Z jackdaniel: what did you expect from M-x combination? it is used to trigger a command 2018-01-26T18:58:51Z phoe: push alt+x and then write, "indent-region". 2018-01-26T18:58:54Z megachombass: oh 2018-01-26T18:58:57Z megachombass: oh 2018-01-26T18:59:00Z megachombass: okey 2018-01-26T18:59:02Z phoe: it should appear in the line on the bottom of the screen, called a minibuffer. 2018-01-26T18:59:09Z phoe: then hit Enter, and it should work. 2018-01-26T18:59:19Z jackdaniel: megachombass: try Ctrl+h Ctrl+t for in-browser tutorial which will show you how to work with emacs on basic level 2018-01-26T19:00:26Z megachombass: yep, it indented now 2018-01-26T19:01:01Z raynold joined #lisp 2018-01-26T19:01:24Z phoe: megachombass: awesome. `C-x h` for selecting everything, M-w for copying it. 2018-01-26T19:01:27Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-26T19:01:29Z phoe: And pastebin it to us. 2018-01-26T19:02:04Z megachombass: control x and h does something weird 2018-01-26T19:02:20Z varjag joined #lisp 2018-01-26T19:02:23Z megachombass: it openend me a key translation menu 2018-01-26T19:02:45Z phoe: welp. should not do it. 2018-01-26T19:02:49Z phoe: C-g to exit. 2018-01-26T19:02:55Z Cymew joined #lisp 2018-01-26T19:03:00Z phoe: C-g is the most handful command in Emacs, it's basically, "get me out of here". 2018-01-26T19:03:50Z megachombass: http://prntscr.com/i61mwj 2018-01-26T19:03:57Z megachombass: even after a control G 2018-01-26T19:04:17Z megachombass: that menu still open, and when i do control+x+h it doesnt select my text 2018-01-26T19:04:21Z phoe: oh, it's a second window. Switch to it, C-x 0 2018-01-26T19:04:35Z warweasle: C-g = Esc-Esc-Esc-Esc-Esc-Esc-Esc-Esc-Esc-Esc-.... 2018-01-26T19:04:38Z phoe: It's `C-x h`, not `C-x-h`. 2018-01-26T19:04:41Z loli joined #lisp 2018-01-26T19:05:04Z megachombass: whats the difference between c-x h and c-x-h 2018-01-26T19:05:24Z loginoob joined #lisp 2018-01-26T19:05:40Z phoe: megachombass: `C-x h` means, "press C-x first, THEN press h`. 2018-01-26T19:05:51Z megachombass: god bless 2018-01-26T19:06:11Z phoe: no problem 2018-01-26T19:07:10Z Cymew quit (Ping timeout: 240 seconds) 2018-01-26T19:07:14Z varjag quit (Ping timeout: 256 seconds) 2018-01-26T19:07:39Z megachombass: https://codepaste.net/1kdf5r 2018-01-26T19:08:07Z megachombass: i start to understand the emacs, first thing i will do before even learn more about lisp , will be how to handle this editor 2018-01-26T19:08:18Z loginoob: I installed sbcl and loaded quicklisp.lisp. Then i did this (quicklisp-quickstart:install) and (ql:add-to-init-file) and (ql:quickload "quicklisp-slime-helper") 2018-01-26T19:08:20Z smasta joined #lisp 2018-01-26T19:08:48Z phoe: megachombass: you are in a tough spot. 2018-01-26T19:08:55Z loginoob: And after that i added (load (expand-file-name "~/quicklisp/slime-helper.el")) and (setq inferior-lisp-program "sbcl") to ~/.emacs file 2018-01-26T19:09:03Z Cymew joined #lisp 2018-01-26T19:09:14Z phoe: learning Lisp is not easy, learning Emacs is not easy, learning both at the same time is (not easy)² 2018-01-26T19:09:18Z loginoob: but M-x slime gives me No-match 2018-01-26T19:09:30Z jackdaniel: close emacs and start it again 2018-01-26T19:09:40Z pjb quit (Ping timeout: 240 seconds) 2018-01-26T19:09:55Z megachombass: everying this is so hard in this low level programming environment 2018-01-26T19:10:02Z zazzerino: megachombass: Looks nice. Don't forget to move the parens at the end of your compilation-appel function so there's no whitespace before them and put a blank line after is-cas. 2018-01-26T19:10:04Z loginoob: jackdaniel: I did that 2018-01-26T19:10:10Z loli quit (Ping timeout: 260 seconds) 2018-01-26T19:10:20Z megachombass: now i've just felt in love with visual studio xd 2018-01-26T19:10:26Z zazzerino: and I'd be careful calling emacs a "low level" environment on #lisp :) 2018-01-26T19:10:37Z megachombass: okey zzaz. but what about code itself, what is useless ,and what can i change? 2018-01-26T19:10:47Z jackdaniel: low-level virtual machine for editing lisp ,p 2018-01-26T19:11:04Z JuanDaugherty: cl and emacs are not tied at the hip 2018-01-26T19:11:27Z dlowe: except for code formatting 2018-01-26T19:11:38Z phoe: loginoob: if you want an easy to set up environment for editing Lisp, try Portacle 2018-01-26T19:11:42Z phoe: (incf dlowe) 2018-01-26T19:11:45Z zazzerino: megachombass: I don't have time to look at it. There are several people more knowledgable than myself here- I just wanted to get you to format your code correctly so they might actually be inclined to look at it! 2018-01-26T19:11:57Z phoe: I need to run for now 2018-01-26T19:12:04Z phoe: will be back in an hour 2018-01-26T19:12:07Z dlowe: that's why I think a stand-alone CL formatter might be a good thing to have 2018-01-26T19:12:12Z phoe: megachombass: if you still need review by then, tell me 2018-01-26T19:12:16Z phoe: dlowe: I think beach is working on one 2018-01-26T19:12:29Z dlowe: oh? cool, than I can just let him do it. 2018-01-26T19:12:32Z phoe: beach: ^ can you tell us more about its current state? 2018-01-26T19:12:47Z dlowe likes to delegate. 2018-01-26T19:12:53Z megachombass: okey well i will be back in one hour then 2018-01-26T19:12:59Z damke joined #lisp 2018-01-26T19:13:20Z megachombass: hope pjb will be here too, he helped me out so much for the virtual machine 2018-01-26T19:13:27Z Cymew quit (Ping timeout: 246 seconds) 2018-01-26T19:13:30Z dlowe: but emacs could call out to the formatter instead of having it built into slime 2018-01-26T19:14:26Z loginoob: No i want to know what am i doing wrong 2018-01-26T19:14:49Z voidlily quit (Read error: Connection reset by peer) 2018-01-26T19:15:05Z Cymew joined #lisp 2018-01-26T19:15:12Z loginoob: In this line (setq inferior-lisp-program "sbcl") should i give path as to where sbcl is installed? 2018-01-26T19:15:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T19:15:23Z dlowe: loginoob: did you restart emacs when you modified your .emacs file? 2018-01-26T19:15:34Z damke__ joined #lisp 2018-01-26T19:15:41Z kokonaisluku joined #lisp 2018-01-26T19:15:44Z mepian joined #lisp 2018-01-26T19:15:44Z loginoob: dlowe: I modified .emacs file by gedit 2018-01-26T19:15:57Z dlowe: loginoob: that doesn't answer my question 2018-01-26T19:16:24Z loginoob: dlowe: Yes i restarted the emacs after that 2018-01-26T19:16:25Z megachombass: yesterday they told me about remplacing gensym by memsym, but i dont find memsym in the doc? 2018-01-26T19:16:57Z pjb joined #lisp 2018-01-26T19:17:19Z fikka quit (Ping timeout: 248 seconds) 2018-01-26T19:17:51Z voidlily joined #lisp 2018-01-26T19:18:14Z dlowe: loginoob: I'll help you in private message 2018-01-26T19:18:21Z damke quit (Ping timeout: 264 seconds) 2018-01-26T19:19:30Z smasta quit (Ping timeout: 260 seconds) 2018-01-26T19:20:11Z Cymew quit (Ping timeout: 268 seconds) 2018-01-26T19:21:07Z Cymew joined #lisp 2018-01-26T19:21:59Z phoe: megachombass: wait a sec, what is memsym? 2018-01-26T19:22:21Z phoe: I have no idea what it is and it is not a part of the CL standard 2018-01-26T19:22:32Z megachombass: i dont know, one of you told me that gensym was trash 2018-01-26T19:22:42Z megachombass: and to replace it with memsym (or something similar) 2018-01-26T19:22:56Z smurfrobot joined #lisp 2018-01-26T19:24:22Z Bike: there is no previous mention of 'memsym' in the log for this channel. 2018-01-26T19:24:22Z phoe: gentemp? 2018-01-26T19:24:42Z phoe: that's what I see 2018-01-26T19:24:43Z phoe: 2018-01-25T22:16:05Z pjb: megachombas: you can use gentemp instead of gensym to generate interned temporary symbols so you don't have this problem with the textual representation. 2018-01-26T19:25:03Z ghard joined #lisp 2018-01-26T19:25:10Z ghard quit (Client Quit) 2018-01-26T19:25:35Z Cymew quit (Ping timeout: 240 seconds) 2018-01-26T19:26:28Z megachombass: dunno why i read memsym 2018-01-26T19:26:38Z megachombass: btw, how do you see channel logs? 2018-01-26T19:27:41Z Bike: there are two in the topic. 2018-01-26T19:28:19Z Sauvin quit (Read error: Connection reset by peer) 2018-01-26T19:29:29Z smasta joined #lisp 2018-01-26T19:29:59Z damke joined #lisp 2018-01-26T19:30:35Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-26T19:30:37Z voidlily quit (Remote host closed the connection) 2018-01-26T19:32:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-26T19:33:57Z smasta quit (Ping timeout: 240 seconds) 2018-01-26T19:34:08Z voidlily joined #lisp 2018-01-26T19:35:26Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-26T19:35:45Z zazzerino quit (Remote host closed the connection) 2018-01-26T19:35:54Z Cymew_ joined #lisp 2018-01-26T19:40:10Z Cymew_ quit (Ping timeout: 252 seconds) 2018-01-26T19:40:33Z dan64- joined #lisp 2018-01-26T19:41:24Z kamog joined #lisp 2018-01-26T19:41:44Z random-nick quit (Remote host closed the connection) 2018-01-26T19:42:21Z dan64 quit (Ping timeout: 264 seconds) 2018-01-26T19:43:38Z dan64 joined #lisp 2018-01-26T19:46:43Z Cymew joined #lisp 2018-01-26T19:46:46Z dan64- quit (Ping timeout: 252 seconds) 2018-01-26T19:51:28Z pjb: phoe: Well, there's a GPL v2 file in the repository, but the file headers specifies in general AGPL3. The later is autoritative. There may be a couple of files with a different license for contribution reasons. Notice that you may find an old release (of part of it) with a different license too. It's not maintained or supported. 2018-01-26T19:51:32Z fikka joined #lisp 2018-01-26T19:51:38Z Cymew quit (Ping timeout: 268 seconds) 2018-01-26T19:51:52Z pjb: phoe: I shall indicate in the README that the default license is AGPL3, and update the license file… 2018-01-26T19:52:16Z pjb: phoe: you can also notice that the asd file contains a :license property set to "AGPL3". 2018-01-26T19:52:50Z Cymew joined #lisp 2018-01-26T19:52:53Z smurfrobot quit (Remote host closed the connection) 2018-01-26T19:54:03Z Poeticode is now known as ImoutoCodes 2018-01-26T19:54:37Z pjb: megachombass: in http://prntscr.com/i61mwj you may notice that after you typed C-g, the minibuffer (bottom row of the emacs frame) shows "Quit". This is the sign that C-g was successful and emacs is ready for the next commands. 2018-01-26T19:55:08Z pjb: megachombass: in emacs, you're led to watch out for status and messages at the bottom of the windows and the bottom of the frame. 2018-01-26T19:55:24Z phoe: pjb: yes, I supposed that AGPL3 was the proper thing. I was confused by the lone GPL file containing GPL2 though. 2018-01-26T19:55:35Z pjb: megachombass: this is to stay consistent with interface on terminals, where the last line output (and the status line when a terminal is able to display one) is usually on the bottom. 2018-01-26T19:55:43Z pjb: phoe: It needs updating, that's all. 2018-01-26T19:56:07Z ImoutoCodes is now known as Poeticode 2018-01-26T19:56:15Z fikka quit (Ping timeout: 248 seconds) 2018-01-26T19:56:20Z phoe: pjb: gotcha. 2018-01-26T19:57:08Z eivarv joined #lisp 2018-01-26T19:57:21Z Cymew quit (Ping timeout: 264 seconds) 2018-01-26T19:57:36Z pjb: megachombass: concerning channel logs, you can download them all from http://ccl.clozure.com/irc-logs/lisp/ and read them so you'll know all that have been discussed (and learn a lot of things) since ever in #lisp! Similarly, you may be able to find archives of news:comp.lang.lisp and learn a lot (best parts from 1995 to 2010). 2018-01-26T19:58:54Z pjb: megachombass: then, you may also want to read the AIM (AI-Lab Memos), and other TR (Technical Reports), to learn all about the history of lisp and artificial intelligence; we have complete historical tracks from the 1950s… 2018-01-26T19:59:40Z megachombass: tbh i really want to learn lisp, because its quite challenging for me 2018-01-26T19:59:57Z pilfink joined #lisp 2018-01-26T19:59:57Z Mon_Ouie quit (Ping timeout: 240 seconds) 2018-01-26T19:59:58Z megachombass: i feel like a complete idiot to have to ask questions in every step i do in this language 2018-01-26T20:00:00Z Poeticode is now known as solidcode 2018-01-26T20:00:21Z Cymew joined #lisp 2018-01-26T20:00:30Z nullman quit (Ping timeout: 256 seconds) 2018-01-26T20:00:31Z Chream_ joined #lisp 2018-01-26T20:01:08Z damke_ joined #lisp 2018-01-26T20:01:14Z pjb: megachombass: it's customary to use an explicit T as condition in the last clause of COND: (cond … (t `(function ,(car exp)) (compilation-appel exp env fenv nomf))) 2018-01-26T20:01:43Z megachombass: so basicly i can remove that t right? 2018-01-26T20:01:50Z _death: ugh, asdf tries to educate everyone by signaling these silly warnings :( 2018-01-26T20:01:53Z pjb: No, basically you should add it! 2018-01-26T20:02:00Z megachombass: oh, wait let me check 2018-01-26T20:02:05Z solidcode is now known as Poetifox 2018-01-26T20:02:09Z Cymew quit (Read error: Connection reset by peer) 2018-01-26T20:02:18Z pjb: megachombass: if you remove it, it works only if you have a single expression in the clause. But cond clauses accept multiple expressions! 2018-01-26T20:02:21Z Cymew joined #lisp 2018-01-26T20:02:40Z pjb: (cond (`(foo) (print 'bar) 'baz)) #| prints: bar --> baz |# 2018-01-26T20:03:01Z pjb: (cond ((print nil) (print 'bar) 'baz)) #| prints: nil --> nil |# 2018-01-26T20:03:12Z pjb: (cond (t (print nil) (print 'bar) 'baz)) #| prints: nil and bar --> baz |# 2018-01-26T20:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-26T20:03:22Z pjb: so the presence of this t matters. 2018-01-26T20:03:52Z pjb: but indeed, (cond (t e)) and (cond (e)) are equivalent. (as long as the clause is the last in the cond). 2018-01-26T20:04:06Z megachombass: oh, i see 2018-01-26T20:04:22Z pjb: It's clearer for the human reader, to write the T explicitely, as it demonstrate that this is exactly what you want, and not an error. 2018-01-26T20:04:51Z _death: do I as a user really need to care that some library has an invalid :version specifier or that it defines a foo-tests system isn't named foo/test.. does asdf really has to bother users with such things.. 2018-01-26T20:04:53Z pjb: megachombass: it's like, () '() nil 'nil and (list) (amongst other), when evaluated, all return the same thing, CL:NIL. 2018-01-26T20:05:33Z pjb: megachombass: but there are conventions about them: () is an empty list in source (not evaluated). '() is an empty list expression (evaluated). 2018-01-26T20:05:47Z phoe: but it's preferable to write NIL if it's meant to be used a boolean, () if it is not e--- 2018-01-26T20:05:52Z phoe: exactly what pjb said there 2018-01-26T20:05:54Z megachombass: roger that, so always put a T on the conds 2018-01-26T20:06:08Z jasom: T all the conds! 2018-01-26T20:06:11Z phoe: megachombass: if you want to execute an "otherwise" clause - yes, do it. 2018-01-26T20:06:15Z pjb: nil is the boolean false. 'nil is the symbol CL:NIL. (list) is the creation of a new empty list (all empty lists are the same CL:NIL symbol, but sometimes you may want to stress you're creating lists, so you'd use (list) instead of just '()). 2018-01-26T20:06:18Z nullman joined #lisp 2018-01-26T20:06:19Z phoe: otherwise your COND will just return NIL. 2018-01-26T20:06:32Z loginoob: Is there a comparison as to why learn Lisp over Haskell 2018-01-26T20:06:35Z phoe: which may be what you want. 2018-01-26T20:06:42Z phoe: loginoob: one second 2018-01-26T20:06:44Z fikka joined #lisp 2018-01-26T20:06:45Z pjb: loginoob: no, because you should learn both! 2018-01-26T20:07:04Z phoe: https://crypto.stanford.edu/~blynn/c/apl.html 2018-01-26T20:07:09Z pjb: loginoob: notice also there's liskell ;-) (once you know both lisp and haskell, you merge them). 2018-01-26T20:07:10Z phoe: “APL is like a beautiful diamond - flawless, beautifully symmetrical. But you can’t add anything to it. If you try to glue on another diamond, you don’t get a bigger diamond. Lisp is like a ball of mud. Add more and it’s still a ball of mud - it still looks like Lisp.” 2018-01-26T20:07:19Z phoe: this quote applies just as well to Haskell instead of APL 2018-01-26T20:07:21Z random-nick joined #lisp 2018-01-26T20:07:58Z phoe: these two languages are pretty damn different, too. Haskell is purely functional with a stress on this paradigm, while Lisp is multi-paradigm with a stress on allowing the programmer to program however they want. 2018-01-26T20:08:10Z _death: loginoob: do you also go to churches and ask them about islam 2018-01-26T20:08:18Z jackdaniel: XYZ* is like a ball of snow. [*] - put your favourite lisp dialect here 2018-01-26T20:08:34Z phoe: _death: no better place to ask about Lisp than on #lisp 2018-01-26T20:08:36Z jackdaniel: made of crystals still behaving like a mud ;-) 2018-01-26T20:08:56Z dieggsy joined #lisp 2018-01-26T20:09:14Z loginoob: _death: I can. And they should have a resonable answer I think. 2018-01-26T20:09:22Z megachombass: what more can be done there pjb? 2018-01-26T20:09:36Z _death: phoe: don't see that this question is about lisp 2018-01-26T20:10:14Z pjb: megachombass: have you read the paste I prepared yesterday? 2018-01-26T20:10:28Z megachombass: yes, but the paste was about the VM 2018-01-26T20:10:43Z megachombass: now its about the compiler 2018-01-26T20:10:44Z pjb: megachombass: it was about everything! 2018-01-26T20:10:50Z Cymew_ joined #lisp 2018-01-26T20:10:58Z borodust: Xach: fixed problem with claw 2018-01-26T20:11:43Z megachombass: there was about changing the structure of the vm etc, making it like a struct instead of just setting variables. 2018-01-26T20:11:52Z megachombass: but the compiler is independant of the VM 2018-01-26T20:12:14Z ebrasca: phoe: I have lear lisp and emacs at the same time and it is not hard. 2018-01-26T20:12:22Z pjb: megachombass: this paste: https://pastebin.com/7pTwi9fh 2018-01-26T20:12:26Z varjag joined #lisp 2018-01-26T20:12:49Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-26T20:13:18Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-01-26T20:13:27Z borodust: Xach: i see bodge-chipmunk generates some style-warnings, gonna check if i can remove those 2018-01-26T20:13:32Z Cymew quit (Ping timeout: 256 seconds) 2018-01-26T20:13:38Z pjb: megachombass: for example, instead of worrying about gensym/gentemp, etc, you would just use a generate-label function everywhere you need a new label. Then you can modify the generate-label function to use whatever you want to create a label. 2018-01-26T20:13:43Z borodust: (missing aliens/foreign functions) 2018-01-26T20:15:01Z megachombass: well, i havent sent the VM yet 2018-01-26T20:15:10Z megachombass: im going to try to apply whats specified on that paste 2018-01-26T20:15:12Z megachombass: coming back 2018-01-26T20:15:22Z Cymew_ quit (Ping timeout: 252 seconds) 2018-01-26T20:16:50Z Cymew joined #lisp 2018-01-26T20:18:34Z Cymew quit (Read error: Connection reset by peer) 2018-01-26T20:18:57Z Cymew joined #lisp 2018-01-26T20:20:20Z _death: worse yet, these asdf warnings are simple-warnings so cannot be selectively muffled.. 2018-01-26T20:23:42Z Cymew quit (Ping timeout: 268 seconds) 2018-01-26T20:24:31Z loli joined #lisp 2018-01-26T20:25:16Z Arcaelyx joined #lisp 2018-01-26T20:26:04Z foom2 joined #lisp 2018-01-26T20:26:54Z Cymew joined #lisp 2018-01-26T20:29:12Z smurfrobot joined #lisp 2018-01-26T20:29:23Z foom quit (Ping timeout: 276 seconds) 2018-01-26T20:29:52Z JonSmith quit (Remote host closed the connection) 2018-01-26T20:29:58Z loli quit (Ping timeout: 256 seconds) 2018-01-26T20:30:19Z atgreen joined #lisp 2018-01-26T20:30:28Z JonSmith joined #lisp 2018-01-26T20:31:40Z Cymew quit (Ping timeout: 256 seconds) 2018-01-26T20:32:58Z Cymew joined #lisp 2018-01-26T20:34:57Z Xach: borodust: some style-warnings aren't worth the trouble, but some are - not sure which is the case in claw 2018-01-26T20:36:30Z borodust: Xach: some missing foreign functions in the compiled blob, does not affect main functionality, but i'm working on fixing those anyway 2018-01-26T20:36:48Z Amplituhedron joined #lisp 2018-01-26T20:37:40Z Cymew quit (Ping timeout: 260 seconds) 2018-01-26T20:38:54Z Cymew joined #lisp 2018-01-26T20:39:22Z borodust: this basically means i compiled chipmunk w/o some functions for some reason (probably missing custom config or whatnot) 2018-01-26T20:39:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T20:43:30Z Cymew quit (Ping timeout: 260 seconds) 2018-01-26T20:45:53Z loginoob quit (Quit: Page closed) 2018-01-26T20:46:57Z Cymew joined #lisp 2018-01-26T20:49:03Z EvW joined #lisp 2018-01-26T20:49:23Z ebrasca: Hi 2018-01-26T20:49:38Z ebrasca: I like to get opinions about my code : http://termbin.com/m1w7 2018-01-26T20:50:39Z fikka joined #lisp 2018-01-26T20:50:51Z Xach: ebrasca: I don't think you should have a struct slot that defaults to NIL but has an integer type. 2018-01-26T20:51:13Z ebrasca: For now I don't know how te refactor : read-dir-from-cluster , remove-dir-from-cluster and write-metadata. 2018-01-26T20:51:27Z Cymew quit (Ping timeout: 240 seconds) 2018-01-26T20:51:46Z _death: but that's a limitation of defstruct.. so maybe the solution is to use defclass 2018-01-26T20:52:25Z sjl: I usually do the equivalent of (slot-name (error "Required") :type (unsigned-byte 8)) to get around that annoyance 2018-01-26T20:52:26Z ebrasca: Xach: I have done that to see if I am reading correctly from disk. 2018-01-26T20:52:35Z Xach: ebrasca: loop to check for membership in a set of magic values would be better done with FIND or POSITION or MEMBER or similar. 2018-01-26T20:53:09Z _death: ebrasca: looks like you actually want w-o-t-s in r-d-f-c instead of concatenate 2018-01-26T20:53:57Z pjb: ebrasca: I would have written a macro to generate the defstruct, read-fat32 and write-fat32… 2018-01-26T20:54:53Z orivej_ joined #lisp 2018-01-26T20:55:09Z ebrasca: pjb: I have not think in formating disk , but i like to have 1 for write and read. 2018-01-26T20:55:26Z pjb: ebrasca: it would be nice if it was independent from any underlying I/O system. 2018-01-26T20:55:32Z pjb: Don't depend on mezzano or anything else. 2018-01-26T20:55:53Z phoe: ^ 2018-01-26T20:55:57Z pjb: Instead, take as argument a vector of closures to perform this I/O; or define a CLOS protocol (a set of defgeneric function). 2018-01-26T20:56:13Z orivej__ joined #lisp 2018-01-26T20:56:44Z loli joined #lisp 2018-01-26T20:56:52Z pjb: This way, your fat32 file system package could be used to read and write fat32 everywhere it's needed. (sd-cards, planetary sondes, embedded hardware, synthesizers, mezzano, etc). 2018-01-26T20:57:31Z makomo: dependency injection! :D 2018-01-26T20:57:34Z Cymew_ joined #lisp 2018-01-26T20:57:41Z makomo: is passing a vector of closures a common thing? 2018-01-26T20:57:54Z pjb: It's called an object in other languages. 2018-01-26T20:57:55Z ebrasca: pjb: But I don't understand how to make it independent of mezzano I/O. 2018-01-26T20:58:05Z orivej quit (Read error: Connection reset by peer) 2018-01-26T20:58:13Z makomo: pjb: well, yeah, but how common is that "idiom"? 2018-01-26T20:58:20Z pjb: Instead of calling mezzano.supervisor:disk-write, you would call (funcall (write-function disk) …) 2018-01-26T20:58:34Z makomo: it feels a bit clunky 2018-01-26T20:58:34Z pjb: makomo: it depends on what you write. In this case it's indicated. 2018-01-26T20:58:50Z Pixel_Outlaw joined #lisp 2018-01-26T20:59:06Z ebrasca: pjb: Maybe someone can make some portable disk-write. 2018-01-26T20:59:23Z pjb: makomo: as I said, the detail doesn't matter much. It could be a single closure with a message parameter (but then you have to use &optional or &rest arguments). It can be a vector a list or even a structure containing closures. Or it could be a set of defgeneric function with an opaque object. 2018-01-26T20:59:30Z makomo: ebrasca: he's just getting at the fact that you should abstract the writing to disk into, for example, a generic function 2018-01-26T20:59:55Z Xach: makomo: i haven't seen it too awful much. 2018-01-26T20:59:57Z pjb: ebrasca: For example, to access a FAT-32 virtual disk, you can just open a binary file, and implement disk-write using write-sequence! 2018-01-26T21:00:10Z orivej_ quit (Ping timeout: 240 seconds) 2018-01-26T21:00:19Z _death: that'd be nice for forensic tools.. 2018-01-26T21:00:21Z Xach: makomo: i've seen passing a chain of closures, but it just looks like a closure, like a list looks like a cons... 2018-01-26T21:00:46Z Xach: e.g. cl-ppcre generates a chain/tree of closures from regular expressions text. 2018-01-26T21:01:21Z makomo: ah i see, pretty cool 2018-01-26T21:01:45Z ebrasca: Some tips to make 1 funtion from read-dir-from-cluster , remove-dir-from-cluster and write-metadata ? 2018-01-26T21:01:49Z makomo: ebrasca: and then a concrete implementation of such a function would use mezzano or something 2018-01-26T21:01:56Z Cymew_ quit (Ping timeout: 252 seconds) 2018-01-26T21:03:39Z ebrasca: Xach: Do FIND or POSITION or MEMBER work on arrays with special structure? 2018-01-26T21:03:40Z Cymew joined #lisp 2018-01-26T21:03:54Z pjb: member not. 2018-01-26T21:03:56Z phoe: ebrasca: special structure? what do you mean? 2018-01-26T21:03:59Z pjb: the others only on vectors. 2018-01-26T21:04:01Z stylewarning: ebrasca: what do you mean “special structure” 2018-01-26T21:04:19Z stylewarning: ebrasca: the former two work on sequences 2018-01-26T21:04:26Z ebrasca: each 32 octets is one dir 2018-01-26T21:04:52Z ebrasca: if it is sort it is X and if it is part of long-name ... 2018-01-26T21:05:03Z phoe: ebrasca: what is the element type of the vector? 2018-01-26T21:05:10Z phoe: what kind of things do you want to put in the vector? 2018-01-26T21:05:10Z orivej__ quit (Ping timeout: 240 seconds) 2018-01-26T21:06:00Z ebrasca: It is vector/buffer/aarray of (unsigned-byte 8) 2018-01-26T21:06:05Z scymtym joined #lisp 2018-01-26T21:06:07Z pjb: ebrasca: for example, https://gitlab.com/com-informatimago/com-informatimago/blob/master/common-lisp/heap/heap.lisp 2018-01-26T21:06:19Z pjb: ebrasca: this is a Heap management (an allocator with a garbage collector). 2018-01-26T21:06:21Z josemanuel quit (Quit: leaving) 2018-01-26T21:06:27Z pjb: ebrasca: it doesn't access the memory directly. 2018-01-26T21:06:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-26T21:06:40Z phoe: ebrasca: so you have vectors of unsigned-byte 8s. 2018-01-26T21:06:49Z pjb: ebrasca: instead, it uses a *gc-memory* object, and methods poke-uint64 peek-uint64 etc, to read and write the memory. 2018-01-26T21:06:52Z phoe: FIND or POSITION will work on them. 2018-01-26T21:06:58Z _death: ebrasca: find/position work on specialized arrays, and furthermore may have optimized variants for them 2018-01-26T21:07:10Z shifty quit (Ping timeout: 240 seconds) 2018-01-26T21:07:36Z pjb: ebrasca: so you can have an implementation using a lisp vector (cf. the file memory.lisp in the same directory), or you can use a FFI to peek and poke the actual memory of the process (eg. to store the heap in a memory mapped block, to share a heap of lisp objects with another process. 2018-01-26T21:08:10Z Cymew quit (Ping timeout: 252 seconds) 2018-01-26T21:08:49Z borodust: Xach: heh, found the issue (apparently, gcc was optimizing away some functions during linking :/) 2018-01-26T21:09:10Z Xach: borodust: interesting! 2018-01-26T21:09:10Z borodust: Xach: gonna wait for travis and appveyor builds to republish blobs 2018-01-26T21:10:35Z ebrasca: _death: Now I like more w-o-t-s . 2018-01-26T21:10:46Z Chream_2 joined #lisp 2018-01-26T21:11:35Z Murii quit (Ping timeout: 256 seconds) 2018-01-26T21:12:05Z windblow joined #lisp 2018-01-26T21:12:13Z borodust: oh wow, that was fast... unexpectedly (macos build almost always takes ages) 2018-01-26T21:12:15Z defaultxr joined #lisp 2018-01-26T21:13:02Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-26T21:14:24Z borodust: Xach: fixed all warnings 2018-01-26T21:17:00Z fisxoj quit (Quit: fisxoj) 2018-01-26T21:17:12Z ebrasca: _death: ... I don't understand how to use with-output-to-string it output some stream . 2018-01-26T21:19:19Z smasta joined #lisp 2018-01-26T21:20:24Z fikka joined #lisp 2018-01-26T21:20:55Z _death: ebrasca: you can use w-o-t-s in the code below ;; Read long name: (setf name (w-o-t-s (loop ... do (format the-stream ...)))) 2018-01-26T21:21:37Z ebrasca: makomo: What do you mean with dependency injection ? 2018-01-26T21:22:41Z _death: ebrasca: but I'd split the function into smaller ones.. and try to avoid needless subseqs 2018-01-26T21:22:48Z makomo: ebrasca: i think that's how java people usually call such a pattern. instead of explictily using some library/component in your library, delegate to the user the work of choosing the right component to use 2018-01-26T21:23:13Z makomo: so the user has to provide, as a parameter, the component to use for w/e task 2018-01-26T21:24:47Z pjb: modules should not depend on other modules, instead modules should take modules as parameters. 2018-01-26T21:25:07Z pjb: This allows the toplevel program to decide what module should be used another module at run-time, instead of compilation-time. 2018-01-26T21:25:17Z makomo: but i might be wrong. however, i don't see why that should be so special. it's kind of a central point when designing something that others will use 2018-01-26T21:25:25Z pjb: Also this allows the use of multiple modules by the same module at run-time. 2018-01-26T21:25:32Z makomo: with "others" being not only other people, but also other modules within the same system, etc. 2018-01-26T21:25:45Z makomo: to me it's just the general notion of "not tightly coupling things" 2018-01-26T21:26:00Z pjb: makomo: you still need to draw a line somewhere. 2018-01-26T21:26:04Z _death: (defgeneric disk-write (backend ...)) then you can have a mezzano backend.. though it may prove too slow and then you need to try something else 2018-01-26T21:26:15Z makomo: pjb: yeah, i guess 2018-01-26T21:26:42Z pjb: _death: we're dealing with I/O here: nothing is too slow when compared with I/O! 2018-01-26T21:27:16Z _death: pjb: you're assuming things about the backend ;) 2018-01-26T21:27:27Z pjb: I'm assuming, indeed :-) 2018-01-26T21:27:36Z pjb: No, but generic functions are not that slow. 2018-01-26T21:28:00Z _death: right 2018-01-26T21:28:54Z Chream_2 quit (Ping timeout: 256 seconds) 2018-01-26T21:29:46Z iqubic joined #lisp 2018-01-26T21:30:39Z _death: also, it may not be a good idea to defgeneric disk-write directly, because then you'd need to pass the backend all over.. this is a job for special variables.. so you can have (defun disk-write (... &key (backend *backend*)) (disk-write* backend ...)) .. this is a common pattern 2018-01-26T21:31:18Z pjb: Now, it's faster to pass mandatory parameters. 2018-01-26T21:31:32Z pjb: But you can see here that a set of closure may be the best solution. 2018-01-26T21:31:45Z pjb: With closures you don't need to pass explicitely the additionnal parameter. 2018-01-26T21:32:14Z _death: you could also dispatch differently (funcall (get *backend* 'disk-write) ...) 2018-01-26T21:32:31Z _death: there are many ways ;) 2018-01-26T21:32:37Z pjb: and now you have a O(n) function! 2018-01-26T21:32:58Z _death: pjb: but n is practically constant :) 2018-01-26T21:33:39Z _death: pjb: also it can be cached 2018-01-26T21:35:11Z pjb: it's 4 in my current image, but it could be much bigger. 2018-01-26T21:35:42Z _mjl quit (Ping timeout: 256 seconds) 2018-01-26T21:36:14Z alexmlw quit (Quit: alexmlw) 2018-01-26T21:36:37Z _death: there could be something like (defgeneric io-pattern (backend)) that returns the closures needed 2018-01-26T21:36:45Z _death: erm, io-protocol 2018-01-26T21:37:43Z _death: I've done this with https://github.com/death/constantia/blob/master/struct.lisp and it was useful at times 2018-01-26T21:38:13Z pjb: Don't use dynamic variables if you can avoid them. 2018-01-26T21:38:22Z pjb: This is a useless complication. 2018-01-26T21:38:43Z random-nick quit (Remote host closed the connection) 2018-01-26T21:39:02Z pjb: The point here is that dynamic = time; you would use dynamic variable if things changed in time. But when you work with a fat32 file system, you don't change the underlying storage mechanism periodically. 2018-01-26T21:39:40Z pjb: You can have 2 fat systems each on its own storage. So the storage is a parameter of the fat system. 2018-01-26T21:40:21Z _death: well, if you see it that way, why not just #+mezzano "mezzano-backend" in .asd .. 2018-01-26T21:40:32Z pjb: mount -t fat32 /dev/sd3 <- clearly you see the parameters. 2018-01-26T21:40:45Z pjb: Because it's a RUN-TIME parameter. 2018-01-26T21:40:58Z pjb: mount -t fat32 image.fat32 2018-01-26T21:41:19Z attila_lendvai quit (Ping timeout: 248 seconds) 2018-01-26T21:41:34Z pjb: You should try to avoid #+/#- as much as dynamic variable, and much more in asd files. 2018-01-26T21:42:15Z _death: write, there's asdf feature-testing support 2018-01-26T21:42:17Z _death: *right 2018-01-26T21:43:55Z sjl: _death: any chance of adding a specific license to https://github.com/death/constantia ? 2018-01-26T21:43:56Z sjl: "you are 2018-01-26T21:44:00Z sjl: welcome to use it, should you choose to" is a bit vague 2018-01-26T21:44:49Z makomo: "Yes, the naming was inspired by the famous Alexandria library." 2018-01-26T21:44:53Z makomo: my thought exactly :-) 2018-01-26T21:45:58Z makomo: now we also need babilonia 2018-01-26T21:47:20Z _death: meanwhile, quicklisp :verbose t reveals lots of bugs.. maybe :verbose should have a default of (< (random 1.0) *bugrevealing-probability*) ;) 2018-01-26T21:47:27Z Jesin quit (Ping timeout: 240 seconds) 2018-01-26T21:48:04Z _death: sjl: sure.. I'll add MIT license 2018-01-26T21:51:02Z sjl: thanks 2018-01-26T21:52:25Z orivej joined #lisp 2018-01-26T21:52:31Z smasta quit (Read error: Connection reset by peer) 2018-01-26T21:52:38Z White_Flame quit (Remote host closed the connection) 2018-01-26T21:53:19Z smasta joined #lisp 2018-01-26T21:53:26Z _death: sjl: done 2018-01-26T21:54:55Z _death: erm, github says BSD-2-Clause.. now you know how I feel about licenses ;).. anyway, I'll push the correct one 2018-01-26T21:55:24Z sjl: hah 2018-01-26T21:55:30Z sjl: Might be good to put it in the .asd as well 2018-01-26T21:55:35Z sjl: :license "MIT" 2018-01-26T21:55:40Z _death: sjl: right 2018-01-26T21:56:21Z White_Flame joined #lisp 2018-01-26T21:56:27Z shka_ quit (Ping timeout: 240 seconds) 2018-01-26T21:56:43Z sjl: I should probably split my utils library into separate files at some point 2018-01-26T21:57:21Z sjl: The 3.2k line file is getting a little unwieldy 2018-01-26T21:58:55Z _death: I have tons of utilities in other libraries.. I keep postponing their inclusion until I find that I need them in multiple cases 2018-01-26T21:59:19Z Posterdati joined #lisp 2018-01-26T21:59:42Z sjl: I mostly just dump them into my main util library, except for the mathy ones that start in my project euler repo's utils file and only graduate if I need them elsewhere. 2018-01-26T22:00:12Z _death: but usually end up implementation different designs that require different utilities.. such is the way with "code as art" in personal projects 2018-01-26T22:02:42Z hhdave joined #lisp 2018-01-26T22:03:18Z _death: sjl: what about your other (public) projects.. for some reason I made sure my public ones don't depend on it 2018-01-26T22:03:33Z sjl: anything I intend other people to use doesn't rely on my utils 2018-01-26T22:03:48Z sjl: I only use my utils for personal stuff like games, etc 2018-01-26T22:04:08Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-26T22:04:23Z sjl: I try to make my libraries depend on as little as possible. E.g. I love iterate, but use vanilla loop in my libraries. 2018-01-26T22:04:28Z _death: I guess the reason is that I don't want it in quicklisp 2018-01-26T22:05:27Z _death: sjl: yeah, I know what you mean 2018-01-26T22:06:39Z White_Flame quit (Remote host closed the connection) 2018-01-26T22:09:27Z BitPuffin quit (Remote host closed the connection) 2018-01-26T22:10:26Z ym quit (Quit: Leaving) 2018-01-26T22:11:24Z ebrasca: _death: My new version of concatenate part : http://termbin.com/lz1p 2018-01-26T22:11:33Z _death: sjl: wrt iterate (or series, or loop wars) this has been resolved for me for several years now, since I internalized the One Function to a Function rule 2018-01-26T22:11:45Z ebrasca: _death: No concatenate and subseq 2018-01-26T22:12:04Z sjl: _death: "don't use iterate/loop at all, make and compose lots of small functions"? 2018-01-26T22:12:57Z _death: sjl: the second half.. then the looping construct doesn't matter 2018-01-26T22:13:00Z White_Flame joined #lisp 2018-01-26T22:13:39Z _death: sjl: I use loop when it makes things clear 2018-01-26T22:13:44Z iqubic: sjl: Isn't that the FP way of looking at things? 2018-01-26T22:13:50Z ebrasca: _death: What do you think my new version? 2018-01-26T22:14:44Z _death: ebrasca: you can have a local function that you call with the indices 2018-01-26T22:15:29Z _death: ebrasca: (add 1 10) (add 14 25) (add 28 31) 2018-01-26T22:15:44Z sjl: iqubic: that's usually part of it. "the FP way" can go further into things like "use pure functions whenever possible", but one-function-to-a-function is orthogonal to that 2018-01-26T22:15:57Z iqubic: I know. 2018-01-26T22:15:59Z sjl: "one function to a function" comes from https://groups.google.com/forum/message/raw?msg=comp.lang.lisp/9SKZ5YJUmBg/Fj05OZQomzIJ as far as I know 2018-01-26T22:16:02Z greaser|q quit (Changing host) 2018-01-26T22:16:02Z greaser|q joined #lisp 2018-01-26T22:16:05Z greaser|q is now known as GreaseMonkey 2018-01-26T22:16:32Z ebrasca: _death: What do you mean? 2018-01-26T22:17:12Z atgreen quit (Quit: atgreen) 2018-01-26T22:17:44Z nopolitica joined #lisp 2018-01-26T22:18:15Z ebrasca: _death: It have less bytes consed and less cpu cicles used. 2018-01-26T22:18:59Z megachombass quit (Ping timeout: 260 seconds) 2018-01-26T22:19:15Z lnostdal quit (Remote host closed the connection) 2018-01-26T22:19:57Z dmiles: in CL must one ensure structures can be expected to be accessed by slot numbers or can just by name be sufficent? 2018-01-26T22:20:28Z mepian quit (Ping timeout: 256 seconds) 2018-01-26T22:21:01Z Bike: structures don't have numbers for slots. 2018-01-26T22:21:11Z Bike: mop has a concept of slot locations, though 2018-01-26T22:21:12Z Bike: mop slot-definition-location 2018-01-26T22:21:12Z specbot: http://metamodular.com/CLOS-MOP/slot-definition-location.html 2018-01-26T22:21:26Z pjb: Bike: they can have: (defstruct (foo (:type vector)) …) ! 2018-01-26T22:21:54Z Bike: slot locations in that sense are nonnegative integers. so there's a number. 2018-01-26T22:22:07Z pjb: dmiles: but ok, if you specify :type vector, no structure object is created, instead make-foo creates a vector and the foo- accessors access vector slots. 2018-01-26T22:22:40Z _death: ebrasca: http://plaster.tymoon.eu/view/709 2018-01-26T22:23:01Z pjb: dmiles: as an implementer the question you have to ask yourself with respect to structure objects, is whether you want to do redundant work, or whether you're happy in implementing (defclass structure-class (object-class) ()) and be done with it. 2018-01-26T22:23:31Z pjb: (defclass structure-class (standard-class) ()) ; I mean. 2018-01-26T22:23:50Z _death: Shinmera: found plaster-new a bit confusing, and there's no completion for type of paste (and no "lisp" type).. used plaster-paste-region 2018-01-26T22:24:13Z ebrasca: _death: First time I read "/=". 2018-01-26T22:24:35Z fdfdf quit (Ping timeout: 240 seconds) 2018-01-26T22:25:00Z mepian joined #lisp 2018-01-26T22:25:10Z pjb: dmiles: have a look at: com.informatimago.common-lisp.cesarum.utility:define-structure-class 2018-01-26T22:25:23Z _death: ebrasca: there are still some issues (some introduced by me :).. code-char and perhaps use of the name "end" to denote the upper bound of the interval 2018-01-26T22:26:23Z dmiles quit (Ping timeout: 256 seconds) 2018-01-26T22:26:52Z ebrasca: _death: It work , at least I don't see any error. 2018-01-26T22:27:35Z ebrasca: _death: Why your code lock better and is better? 2018-01-26T22:27:57Z _death: ebrasca: I don't understand the question 2018-01-26T22:28:37Z ebrasca: mmm 2018-01-26T22:28:55Z _death: ebrasca: my version doesn't cons 2018-01-26T22:29:08Z ebrasca: _death: How to make better code in performance and better to read? 2018-01-26T22:29:09Z _death: ebrasca: (except by building the string) 2018-01-26T22:31:20Z _death: ebrasca: my advice for performance is to profile first, and in general not to build structure just to throw it away unless it makes things clearer.. for the best style guide I know, http://norvig.com/luv-slides.ps 2018-01-26T22:31:32Z phoe: ebrasca: make it run, make it right, make it fast 2018-01-26T22:31:58Z phoe: in other words, optimize last. 2018-01-26T22:32:10Z zazzerino joined #lisp 2018-01-26T22:32:18Z ebrasca: I think I have done make it run for sertain set of FAT32. 2018-01-26T22:32:51Z phoe: Do you have some kind of tests for your feature? 2018-01-26T22:33:05Z ebrasca: Yes 2018-01-26T22:33:09Z phoe: I find it very handy to have a set of tests that I can run. This way, I can detect some bugs when I modify my code later on. 2018-01-26T22:33:10Z ebrasca: Down in coments 2018-01-26T22:33:23Z phoe: Then you can use these tests to verify that your code stays correct between your changes. 2018-01-26T22:33:34Z ebrasca: mmm 2018-01-26T22:33:41Z phoe: You run your tests once, they pass. 2018-01-26T22:33:48Z phoe: You make a change in your code to make it faster. 2018-01-26T22:33:51Z ebrasca: It is more read some file the end. 2018-01-26T22:34:02Z phoe: You run your tests again. If they fail, then you have surely made a mistake. 2018-01-26T22:34:32Z _death: ebrasca: these tests btw you could uncomment and make functions test-x test-y 2018-01-26T22:34:44Z ebrasca: I have never make automatic tests for someting. 2018-01-26T22:35:24Z phoe: ebrasca: you should. 2018-01-26T22:35:29Z phoe: They're a huge time-saver. 2018-01-26T22:35:32Z dmiles joined #lisp 2018-01-26T22:36:14Z dmiles: can someone message me what i missed? 2018-01-26T22:36:27Z ebrasca: phoe: I remember I have ask you some day ago how to make automatic testing. 2018-01-26T22:36:38Z dmiles: mop slot-definition-location 2018-01-26T22:36:38Z specbot: http://metamodular.com/CLOS-MOP/slot-definition-location.html 2018-01-26T22:36:38Z ebrasca: phoe: Can I ask againg? 2018-01-26T22:36:49Z lnostdal joined #lisp 2018-01-26T22:36:56Z phoe: ebrasca: sure thing. There are multiple test frameworks in Lisp that you can use to write automated tests. 2018-01-26T22:37:16Z ebrasca: phoe: It need to work with mezzano. 2018-01-26T22:37:18Z capitaomorte joined #lisp 2018-01-26T22:37:19Z phoe: For a very simple and short one, you can take a look at https://github.com/lmj/1am 2018-01-26T22:37:34Z Jesin joined #lisp 2018-01-26T22:37:45Z phoe: It is completely portable Common Lisp. It should work on Mezzano. 2018-01-26T22:38:21Z dmiles: slot locations in that sense are nonnegative integers. so there's a number. [14:23] Disconnected from freenode on Friday January 26th,2018 at 02:01pm. Server disconnect reason: hitchcock.freenode.net 2018-01-26T22:38:39Z Jesin quit (Client Quit) 2018-01-26T22:39:30Z phoe: dmiles: use the IRC logs? 2018-01-26T22:39:44Z phoe: https://ccl.clozure.com/irc-logs/lisp/lisp-2018-01.txt 2018-01-26T22:40:07Z dmiles: thx 2018-01-26T22:40:26Z ebrasca: phoe: Do you plan make some meting in krakow? 2018-01-26T22:40:46Z _death: I think the RT testing framework is small and simple and used for decades :) 2018-01-26T22:41:02Z phoe: ebrasca: not really. 2018-01-26T22:41:55Z ebrasca: phoe: Do you plan to go to ELS? 2018-01-26T22:43:00Z phoe: ebrasca: yes! 2018-01-26T22:44:01Z ebrasca: phoe: wow , I don't know hot to go to ELS. 2018-01-26T22:44:12Z ACE_Recliner joined #lisp 2018-01-26T22:44:41Z phoe: ebrasca: pick your favorite travel vehicle to Marbela, Spain, and stay there for a few days. 2018-01-26T22:45:37Z tcr joined #lisp 2018-01-26T22:45:57Z ebrasca is in panic when he try to plan traveling to Spain alone. 2018-01-26T22:47:22Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-26T22:47:55Z jackdaniel: Malaga is the closest airpoirt as far as I'm aware, and there are buses going out from there every hour 24h to Marbella 2018-01-26T22:48:24Z jackdaniel: (I hope I didn't mix the details, but please recheck them) 2018-01-26T22:49:01Z ebrasca: jackdaniel: I think I rememver you from lisp-pl or someting. 2018-01-26T22:49:32Z jackdaniel: that may be the case, because I hang out there too 2018-01-26T22:51:36Z ebrasca: jackdaniel: Do you know some fast and easy system for geting money? 2018-01-26T22:52:15Z Bike quit (Ping timeout: 260 seconds) 2018-01-26T22:52:18Z EvW quit (Ping timeout: 252 seconds) 2018-01-26T22:52:33Z jackdaniel: stealing (given you have necessary skills), but it's not socially acceptable ;-) 2018-01-26T22:52:48Z osune quit (Remote host closed the connection) 2018-01-26T22:52:58Z dmiles: pjb: the define-structure-class is in terms of defcvlass .. correct? 2018-01-26T22:53:10Z pjb: dmiles: yes. 2018-01-26T22:53:27Z aeth: ebrasca, jackdaniel: Initial Coin Offering (ICO) seems to be the easiest way people make money these days 2018-01-26T22:53:37Z pjb: It would have to be improved, and to deal with :type list and vector, but the point here is to show that structure-object can be a subclass of standard-object. 2018-01-26T22:53:55Z aeth: ICOs are probably violating financial regulations, though. 2018-01-26T22:54:03Z White_Flame: ebrasca: be attractive and stream video games 2018-01-26T22:54:09Z aeth: Usually the easy money is in legal gray areas or everyone would be doing it. 2018-01-26T22:54:16Z jackdaniel: ah, I'd forget, gambling is a way too (as aeth mentioned) 2018-01-26T22:54:30Z jackdaniel: good night o/ 2018-01-26T22:54:31Z aeth: Games are even adding totally-not-gambling mechanics these days. 2018-01-26T22:54:59Z aeth: jackdaniel: good night 2018-01-26T22:55:46Z ebrasca: I am searching for some generous donor. 2018-01-26T22:56:00Z dmiles: pjb: that indeed is what I am doing so i was trying to triage whther or not i created a list of slotnumbers to turn themseves into slotname .. i guess :type list and vector tells us to do it sonner than later 2018-01-26T22:56:20Z dmiles: sonner/sooner 2018-01-26T22:56:23Z pjb: right. 2018-01-26T22:59:16Z aeth: There are some practical differences with how implementations handle structs that is probably reflected in the assumptions in Lisp code. :type is usually respected in defstruct, and :type is usually ignored in defclass (only CCL seems to do type checking in the latter) 2018-01-26T22:59:47Z _death: I think SBCL also looks at :type in defclass 2018-01-26T22:59:49Z orivej quit (Ping timeout: 256 seconds) 2018-01-26T22:59:50Z aeth: And, of course, structs *might* be optimized. 2018-01-26T22:59:54Z aeth: _death: Then that's new 2018-01-26T23:00:16Z aeth: A while back I was using :type and only CCL would care. You can probably make CLOS always care, with the MOP. 2018-01-26T23:01:06Z ebrasca: I like to ask about vulkan and mezzano. 2018-01-26T23:01:09Z _death: in fact I had an attempt at a patch to help it report better errors https://github.com/death/sbcl/commit/4341538e3e4f62ae111fee2e657d5969322f6b02 2018-01-26T23:01:10Z dmiles: i have no problem backing my structure with a vector or any sequence.. what i am missing is i've always assumeed there was also a get-slot-value-using-offset type function 2018-01-26T23:01:17Z ebrasca: mmm better later. 2018-01-26T23:01:18Z damke joined #lisp 2018-01-26T23:01:51Z LiamH quit (Quit: Leaving.) 2018-01-26T23:02:37Z dmiles: (since all the sub lisps like LarKC always has such a thing that works on any standard-object but definately on structures) 2018-01-26T23:03:11Z dmiles: but this is not a normal mop protocal? that is a reief 2018-01-26T23:03:18Z dmiles: relief 2018-01-26T23:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-26T23:04:40Z tcr quit (Ping timeout: 256 seconds) 2018-01-26T23:04:58Z dmiles: n/m found it #'STANDARD-INSTANCE-ACCESS 2018-01-26T23:04:59Z JonSmith quit (Remote host closed the connection) 2018-01-26T23:05:28Z JonSmith joined #lisp 2018-01-26T23:06:48Z mishoo quit (Ping timeout: 240 seconds) 2018-01-26T23:07:10Z dmiles: I was plannig on storing a Layout at 0 but does that interfer with :type vector ? 2018-01-26T23:07:55Z pagnol joined #lisp 2018-01-26T23:07:55Z z3t0 joined #lisp 2018-01-26T23:09:31Z aeth: _death: (defclass foo () ((bar :initform 0 :accessor bar :type (integer 0 10)))) (let ((foo (make-instance 'foo))) (setf (bar foo) 10f0) (bar foo)) ; works and returns 10.0 in SBCL, ECL, CMUCL, CLISP, and ABCL, but does not work in CCL because it's not of the correct type, with "Condition of type CCL:BAD-SLOT-TYPE" 2018-01-26T23:09:32Z dmiles: well actualyl consider :type list i suppose they are doing that for some nefarious reason 2018-01-26T23:09:33Z pjb: dmiles: it would. 2018-01-26T23:09:39Z defaultxr left #lisp 2018-01-26T23:09:50Z pjb: dmiles: have you had a look at the way sicl implements objects? 2018-01-26T23:10:06Z pjb: dmiles: vectors can be implemented as objects too, nothing prevents it. 2018-01-26T23:10:39Z z3t0 quit (Remote host closed the connection) 2018-01-26T23:10:43Z _death: aeth: safety 3 2018-01-26T23:11:11Z aeth: Then that's useless for most code 2018-01-26T23:11:20Z dmiles: pjb: a little bit.. i know it does what we are talking about.. in fact i am counting on some parts of the system jsut making vectors with Layouts at 0 2018-01-26T23:11:22Z lnostdal quit (Ping timeout: 252 seconds) 2018-01-26T23:11:24Z ebrasca: pjb: But objects are implemented in structures , I think they are. 2018-01-26T23:11:32Z _death: aeth: I have a declaim for it in my .sbclrc, so not useless for me 2018-01-26T23:12:09Z pjb: ebrasca: nope. in sicl structures are implemented as clos objects, and clos objects are implemented using two vectors IIRC. 2018-01-26T23:12:13Z pjb: internal vectors. 2018-01-26T23:12:28Z aeth: _death: I do get essentially the same error as in CCL when safety is 3. 2018-01-26T23:12:41Z pjb: I don't remember if in sicl lisp vectors are implement as clos object, but I would do that, at least for not specialized vectors. 2018-01-26T23:13:05Z aeth: (Even calling the type (mod 11)) 2018-01-26T23:13:06Z dmiles: pjb: oh right now this reminds me of my issue :P i impl vecotrs as clos objects ;P 2018-01-26T23:13:19Z dmiles: pjb: i suppose vectors will take 2 vectors then 2018-01-26T23:13:33Z dmiles: (at least for me) 2018-01-26T23:13:43Z pjb: well, one of them is shared amongst all vectors of the same type. 2018-01-26T23:13:57Z pjb: arrays, actually. 2018-01-26T23:14:21Z dmiles: but the fact that they :type vector .. i am assuming they are trying to create a secario i already by fdefalt created thus they expected to have 0 slot free for their useage 2018-01-26T23:14:40Z fisxoj joined #lisp 2018-01-26T23:14:56Z dmiles: (if all my typos didnt make that too confusing) 2018-01-26T23:15:33Z pjb: dmiles: yes, but :type vector uses plain lisp vectors. The only thing is that you can have :name option (to add the structure type name in the first slot), and :initial-offset, and the fact that you can use :type `(vector ,size) to allocate more than needed slots. 2018-01-26T23:15:40Z pjb: dmiles: mind also the :include option. 2018-01-26T23:16:27Z dmiles: (oh .. i secretly roll include and type into the same dohickey ;P .. wasnt sure if that was going to play agaisnt me) 2018-01-26T23:16:55Z CrazyEddy quit (Ping timeout: 260 seconds) 2018-01-26T23:17:06Z pjb: Well, one problem is that you need to define accessors with the conc-name of the current structure for all the slots that are included with :include. 2018-01-26T23:17:10Z dmiles: :include is rather the scenario perhaps i am thinking against 2018-01-26T23:17:35Z pjb: So you need to keep track of them. For CLOS you can use the MOP and the superclass, but for :type list and vector, you have to handle it yourself in the defstruct macro. 2018-01-26T23:20:12Z sjl quit (Ping timeout: 246 seconds) 2018-01-26T23:20:56Z dmiles: i think i see now.. it might still turn out ok.. if they are supplying the :type list :initial-offset 3 .. what is it they are expecting? 2018-01-26T23:21:15Z _death: aeth: my patch also mentions the slot name and the instance 2018-01-26T23:21:52Z dmiles: (i am asking if they wanted their list to start at internal offset 3) 2018-01-26T23:22:03Z pjb: dmiles: (defstruct (point (:type list) (:initial-offset 3) :named) x y) (make-point :x 1 :y 2) #| --> (nil nil nil point 1 2) |# 2018-01-26T23:22:12Z shrdlu68 quit (Quit: Lost terminal) 2018-01-26T23:22:25Z pjb: it allocates 3 slots in the list, before storing the structure data. 2018-01-26T23:22:45Z rumbler31 quit (Ping timeout: 260 seconds) 2018-01-26T23:22:50Z aeth: _death: But is there a way to force the type checking on those who don't want safety (well, at least when safety > 0)? 2018-01-26T23:23:04Z ebrasca: Good nigth. 2018-01-26T23:23:29Z aeth: A type is, imo, essentially useless when it can be wrong. 2018-01-26T23:23:29Z dmiles: pjb: ah, thank you.. i know i should had gotten that from docs but it is more fun sometimes hearing it for sure 2018-01-26T23:23:36Z pilfink quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-26T23:23:40Z _death: aeth: sbcl has some machinery for fine-grained optimization settings, methinks.. but I don't know/remember much 2018-01-26T23:24:05Z pjb: (defstruct (point (:type (vector 10)) (:initial-offset 3) :named) x y) should be accepted, but apparently it's rejected by clisp, sbcl and ccl… 2018-01-26T23:24:26Z pjb: Notice that you can define implementation specific types too, if you want. 2018-01-26T23:24:46Z pjb: (defstruct (point (:type prolog-predicate)) x y) 2018-01-26T23:24:49Z pjb: perhaps? 2018-01-26T23:25:02Z dmiles: pjb: right actualyl good example 2018-01-26T23:25:07Z Cymew joined #lisp 2018-01-26T23:25:54Z dmiles: pysically in my system i want to promot doing.. (defstruct (point (:type prolog::point/2)) x y) 2018-01-26T23:25:59Z dmiles: promote* 2018-01-26T23:26:21Z aeth: _death: thanks for making me aware of alternatives, but I think for now I'll stick to structs when I want to force type checking. 2018-01-26T23:26:43Z dmiles: prolog::point/2 is autodefined as structure-like thing that has two slots 2018-01-26T23:27:10Z dmiles: (to deplict point(23,45) ) 2018-01-26T23:28:46Z dmiles: (when prolog code introduces lisp to its innerds ... i been thinking of having iot be seen as a structure that way) 2018-01-26T23:29:45Z Cymew quit (Ping timeout: 264 seconds) 2018-01-26T23:30:03Z atgreen joined #lisp 2018-01-26T23:30:05Z dmiles: (also of course letting lisp see the innerds lisp is actualyl ussing as accesable autodefined structures :P) 2018-01-26T23:30:40Z terpri quit (Ping timeout: 240 seconds) 2018-01-26T23:32:29Z dmiles: i been shifting the :initial-offset when someone uses :initial-offset on the :type super (super is shifted) 2018-01-26T23:33:26Z dmiles: is sorta assumed.. (maybe wrongly) that :type was sort of :include 2018-01-26T23:34:15Z dmiles: (i know .. :include isnt norally part of structure-classes :P) 2018-01-26T23:34:55Z z3t0 joined #lisp 2018-01-26T23:35:39Z dmiles: oops sorry .. i got confused there 2018-01-26T23:36:21Z aeth: The problem I have with type checking at the moment is that I currently architecture my program as users providing data. So type-checking (and possibly other kinds of checks) might happen two or more times because ideally any mistakes should be caught early, but the program also cannot trust the input (someone could have created them another way other than the official way, to avoid the overhead of the checks). 2018-01-26T23:36:28Z dmiles: right so yes :include is shifting offsets .. but i am glad pjb mentioned that it doesnt shift the :type 2018-01-26T23:36:44Z iqubic quit (Remote host closed the connection) 2018-01-26T23:37:26Z aeth: But I think once the data is checked in my program, it could be trusted (even to the point of (safety 0), but I wouldn't do that) unless it's a function that can be redefined (for first class functions I funcall 'foo instead of #'foo based on recommendations here) 2018-01-26T23:38:34Z varjag quit (Ping timeout: 268 seconds) 2018-01-26T23:39:32Z aeth: pjb: what does :initial-offset do? 2018-01-26T23:39:58Z z3t0 quit (Remote host closed the connection) 2018-01-26T23:40:04Z aeth: in combination with the other things 2018-01-26T23:40:49Z fisxoj quit (Quit: fisxoj) 2018-01-26T23:41:08Z aeth: It looks like it would either be (blank blank blank name x y blank blank blank blank) or (name blank blank blank x y ...) or something similar 2018-01-26T23:41:59Z shifty joined #lisp 2018-01-26T23:42:26Z dmiles relizes njow that this .. www.lispworks.com/documentation/lw70/CLHS/Body/m_defstr.htm has examples of :initial-offset but was hoping to see the :name shoved in there 2018-01-26T23:42:49Z earl-ducaine quit (Remote host closed the connection) 2018-01-26T23:42:55Z pillton quit (Ping timeout: 248 seconds) 2018-01-26T23:43:07Z earl-ducaine joined #lisp 2018-01-26T23:43:25Z Bike joined #lisp 2018-01-26T23:44:02Z dmiles: then again structs are secretly never really anything more than some synthethic getter/setters over typical list or vetors 2018-01-26T23:44:54Z dmiles: (when they are lists or vectors that is) 2018-01-26T23:45:02Z kokonaisluku quit (Remote host closed the connection) 2018-01-26T23:45:42Z dmiles: (make-binop :operator '+ :operand-1 'x :operand-2 5) => (NIL NIL + X 5) so aeth (type-of (make-binop :operator '+ :operand-1 'x :operand-2 5)) is CONS? 2018-01-26T23:46:51Z smasta quit (Ping timeout: 256 seconds) 2018-01-26T23:47:16Z pjb: aeth: in lisp, blank is NIL! 2018-01-26T23:47:37Z dmiles: (so in fact #'operator-1 is #'cdar ?) 2018-01-26T23:48:01Z dmiles: (oops sorry i forgot the offsets) 2018-01-26T23:48:09Z pjb: aeth: so, yes, (defstruct (point (:type (vector 10)) (:initial-offset 3) :named) x y) (make-pointm :x 1 :y 2) should return #(nil nil nil point 1 2 nil nil nil nil). 2018-01-26T23:48:15Z shifty quit (Ping timeout: 248 seconds) 2018-01-26T23:48:41Z aeth: pjb: Afaik, blank is normally NIL, but blank can be 0 in specialized numeric arrays, but... this is I think undefined behavior, so :initial-element 0 or :initial-element 0f0 or :initial-element 0d0 etc. is probably necessary in those cases for true portability 2018-01-26T23:48:52Z quazimodo quit (Ping timeout: 256 seconds) 2018-01-26T23:48:56Z aeth: (And similarly, NUL with character arrays, i.e. strings) 2018-01-26T23:49:25Z aeth: but, yeah, T array so I should have just said nil 2018-01-26T23:49:30Z holycow joined #lisp 2018-01-26T23:49:48Z pjb: aeth: obviously, structures cannot use specialized arrays. But an implementation could allow it, if you don't pass :named and if all the slots have the same type. 2018-01-26T23:49:59Z aeth: yeah, you can't use named with that 2018-01-26T23:50:12Z pjb: In that case, indeed, a different value would have to be used in the unintialized slots. 2018-01-26T23:50:32Z nopoliti1 joined #lisp 2018-01-26T23:52:04Z aeth: I do like that Lisps do set things to NIL, (coerce 0 'whatever-number-type), or (code-char 0) though. Or at least, tend to. 2018-01-26T23:52:25Z aeth: Safety! 2018-01-26T23:53:05Z nopolitica quit (Ping timeout: 260 seconds) 2018-01-26T23:54:07Z wigust- joined #lisp 2018-01-26T23:54:25Z dmiles: ah ok so now i understand :named ! 2018-01-26T23:55:33Z makomo quit (Ping timeout: 264 seconds) 2018-01-26T23:56:16Z wigust quit (Ping timeout: 248 seconds) 2018-01-26T23:59:24Z dmiles would have made :named the default and expected :unnamed 2018-01-27T00:00:08Z dmiles though has a few extra bytes nowadays 2018-01-27T00:00:50Z aeth: dmiles: The problem is that a lot of the structs probably become specialized arrays. 2018-01-27T00:01:36Z dmiles: aeth: ah .. i see.. the name would not fit anymore 2018-01-27T00:01:43Z aeth: e.g. (simple-array single-float (3)) 2018-01-27T00:02:26Z aeth: It would be nice if there was a way to do heterogeneous but typed arrays, though. Where e.g. the first element is a symbol and the next 3 are single-float. 2018-01-27T00:03:13Z aeth: Make this 2 dimensional and it's even more useful because now you have a pattern 2018-01-27T00:03:27Z nopoliti1 quit (Ping timeout: 240 seconds) 2018-01-27T00:03:29Z nopolitica joined #lisp 2018-01-27T00:05:07Z JuanDaugherty joined #lisp 2018-01-27T00:05:16Z oleo quit (Ping timeout: 252 seconds) 2018-01-27T00:05:31Z dmiles: you meant like.. #(layout{type:signedByte} #(0,-1,2,45)) ? 2018-01-27T00:05:44Z dmiles removes the commas before anyone notices 2018-01-27T00:07:05Z fikka quit (Ping timeout: 260 seconds) 2018-01-27T00:09:48Z nirved quit (Quit: Leaving) 2018-01-27T00:10:03Z hhdave quit (Quit: hhdave) 2018-01-27T00:14:56Z dieggsy quit (Remote host closed the connection) 2018-01-27T00:15:28Z ACE_Recliner quit (Read error: Connection reset by peer) 2018-01-27T00:15:48Z dieggsy joined #lisp 2018-01-27T00:19:10Z Karl_Dscc quit (Remote host closed the connection) 2018-01-27T00:25:15Z nowhere_man joined #lisp 2018-01-27T00:28:56Z pierpa joined #lisp 2018-01-27T00:30:45Z holycow: hmmm 2018-01-27T00:31:58Z holycow: okay so now i have a spreadsheet with 30 000 rows and rows counted. calc counts the rows, inserts a line and prints total and groups by date so i get total number of entries per day. 2018-01-27T00:32:02Z holycow: that is perfect 2018-01-27T00:32:55Z holycow: any suggestions on how to collect all of the subtotals and pull them all into a separate worksheet? i'm not googling an obvious way to do something like that. 2018-01-27T00:33:38Z fikka joined #lisp 2018-01-27T00:37:58Z JuanDaugherty: a lisp spreadsheet? 2018-01-27T00:38:11Z igemnace joined #lisp 2018-01-27T00:38:17Z holycow: oh jesus 2018-01-27T00:38:19Z holycow: wrong channel 2018-01-27T00:38:21Z holycow: sorry! 2018-01-27T00:40:09Z jonh left #lisp 2018-01-27T00:40:58Z Poetifox is now known as Poeticode 2018-01-27T00:45:36Z markong quit (Ping timeout: 252 seconds) 2018-01-27T00:46:26Z JuanDaugherty: (there actually are several) 2018-01-27T00:50:49Z holycow: hmm, although, strangely using lisp with a csv export of the data might just be the fastest 2018-01-27T00:50:52Z holycow: hmmmmm 2018-01-27T00:53:12Z eivarv quit (Quit: Sleep) 2018-01-27T00:53:56Z pjb: aeth: you can do whatever you want, just do it, this is lisp! 2018-01-27T00:54:49Z pjb: (let ((typed-vector (cons #(foo 1 2 3) #(symbol fixnum fixnum fixnum)))) (setf (tvref typed-vector 1) 4.4)) => type-error 2018-01-27T00:55:08Z capitaomorte quit (Ping timeout: 252 seconds) 2018-01-27T00:55:22Z pjb: aeth: don't ask that the implementation provides all the silly ideas you have (unless you're the implementor!) 2018-01-27T00:56:36Z aeth: pjb: I'd do it even lazier than that and implement it as a struct 2018-01-27T00:56:48Z wxie joined #lisp 2018-01-27T00:57:11Z aeth: then *only* tvref would be required, since the implementation will probably handle the types for me when using a struct 2018-01-27T00:58:51Z aeth: It would also print as expected with a defmethod print-object on the type created by the struct 2018-01-27T01:00:50Z pagnol quit (Ping timeout: 256 seconds) 2018-01-27T01:01:32Z Pixel_Outlaw joined #lisp 2018-01-27T01:02:32Z wxie quit (Ping timeout: 256 seconds) 2018-01-27T01:03:07Z aeth: (defstruct typed-vector-fixnum (name :name :type symbol) (slot-0 0 :type fixnum) (slot-1 0 :type fixnum) (slot-2 0 :type fixnum)) 2018-01-27T01:03:09Z Cymew joined #lisp 2018-01-27T01:03:10Z aeth: (defmethod print-object ((object typed-vector-fixnum) stream) (format stream "#(~A ~D ~D ~D)" (typed-vector-fixnum-name object) (typed-vector-fixnum-slot-0 object) (typed-vector-fixnum-slot-1 object) (typed-vector-fixnum-slot-2 object))) 2018-01-27T01:03:15Z aeth: (make-typed-vector-fixnum :name :hello-world) 2018-01-27T01:03:34Z aeth: pjb: Just that, with an aditional aref-like function also defined. Fairly easy to generate with macros, too. Might only be efficient for short things. ^ 2018-01-27T01:05:17Z Cymew quit (Read error: Connection reset by peer) 2018-01-27T01:05:41Z Cymew joined #lisp 2018-01-27T01:05:44Z wxie joined #lisp 2018-01-27T01:05:50Z aeth: And tvref could be defined as an inline specialization via specialization-store with the new type definition creating a new defspecialization in addition to the defstruct and the print-object. 2018-01-27T01:06:27Z Oladon joined #lisp 2018-01-27T01:06:51Z atgreen_ joined #lisp 2018-01-27T01:08:05Z atgreen quit (Ping timeout: 240 seconds) 2018-01-27T01:08:05Z cross quit (Ping timeout: 240 seconds) 2018-01-27T01:08:05Z atgreen_ is now known as atgreen 2018-01-27T01:10:23Z windblow quit (Ping timeout: 248 seconds) 2018-01-27T01:10:28Z mejja quit (Quit: mejja) 2018-01-27T01:10:31Z cross joined #lisp 2018-01-27T01:12:10Z Cymew quit (Ping timeout: 256 seconds) 2018-01-27T01:14:04Z arescorpio joined #lisp 2018-01-27T01:14:06Z Cymew joined #lisp 2018-01-27T01:15:46Z pjb: aeth: note that if you write: (defstruct (typed-vector-fixnum (:type vector)) (name :name :type symbol) (slot-0 0 :type fixnum) (slot-1 0 :type fixnum) (slot-2 0 :type fixnum)) then the structure "accessors" should still check the types, but indeed, you would need a custom aref for those vectors. 2018-01-27T01:16:28Z pjb: aeth: but for this custom aref, you will need to keep the type of each slot, unless you hardwire it in a aref specific to each structure type. 2018-01-27T01:18:20Z holycow quit (Quit: Lost terminal) 2018-01-27T01:18:26Z aeth: pjb: specialization-store can handle the dispatch. Efficient inline dispatch if you keep the type, runtime dispatch if it's generic. I don't think specializations can handle setters, though, which would be problematic for an accessor like a fooref in specialization-store, which will probably require a getter and a setter. That may be patchable depending on the architecture, though, and a patch would probably be simpler than a new scheme wit 2018-01-27T01:18:36Z Cymew quit (Ping timeout: 252 seconds) 2018-01-27T01:18:38Z aeth: with a fresh library 2018-01-27T01:19:20Z aeth: pjb: I think the main issue is that most of the novel things will be stored in T arrays or T cons cells or T hash-tables, which *will* lose the type information. 2018-01-27T01:19:32Z wxie quit (Ping timeout: 256 seconds) 2018-01-27T01:19:54Z aeth: If implementors would have to address any of that, that is what they'd have to address, not any specific data structure. 2018-01-27T01:20:12Z Cymew joined #lisp 2018-01-27T01:20:59Z rumbler31 joined #lisp 2018-01-27T01:21:23Z aeth: T cons cells are easy to replace with typed cons cells because of their simplicity. Just do the struct approach again. Arrays and hash-tables would be trickier. 2018-01-27T01:22:09Z FreeBirdLjj joined #lisp 2018-01-27T01:22:47Z turkja joined #lisp 2018-01-27T01:23:09Z White_Flame quit (Remote host closed the connection) 2018-01-27T01:23:37Z aeth: As soon as you want to put this faked-via-structs typed vector into a long array (e.g. 1024 long)... I think that's where this falls apart. 2018-01-27T01:25:05Z White_Flame joined #lisp 2018-01-27T01:25:15Z White_Flame quit (Remote host closed the connection) 2018-01-27T01:25:37Z White_Flame joined #lisp 2018-01-27T01:27:02Z FreeBirdLjj quit (Ping timeout: 252 seconds) 2018-01-27T01:27:10Z terpri joined #lisp 2018-01-27T01:27:28Z Cymew quit (Ping timeout: 256 seconds) 2018-01-27T01:27:55Z warweasle joined #lisp 2018-01-27T01:29:37Z Cymew joined #lisp 2018-01-27T01:31:05Z z3t0 joined #lisp 2018-01-27T01:31:35Z CrazyEddy joined #lisp 2018-01-27T01:34:33Z Cymew quit (Ping timeout: 264 seconds) 2018-01-27T01:35:00Z z3t0 quit (Remote host closed the connection) 2018-01-27T01:36:23Z z3t0 joined #lisp 2018-01-27T01:36:50Z Cymew joined #lisp 2018-01-27T01:40:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-27T01:41:45Z Cymew quit (Ping timeout: 264 seconds) 2018-01-27T01:42:14Z fikka joined #lisp 2018-01-27T01:42:52Z Cymew joined #lisp 2018-01-27T01:43:49Z z3t0 quit (Remote host closed the connection) 2018-01-27T01:47:25Z Cymew quit (Ping timeout: 260 seconds) 2018-01-27T01:48:35Z Cymew joined #lisp 2018-01-27T01:48:58Z z3t0 joined #lisp 2018-01-27T01:50:34Z Cymew quit (Read error: Connection reset by peer) 2018-01-27T01:50:37Z z3t0_ joined #lisp 2018-01-27T01:50:37Z z3t0 quit (Read error: Connection reset by peer) 2018-01-27T01:50:58Z Cymew joined #lisp 2018-01-27T01:53:31Z z3t0 joined #lisp 2018-01-27T01:54:31Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-27T01:55:35Z Cymew quit (Ping timeout: 240 seconds) 2018-01-27T01:56:16Z windblow joined #lisp 2018-01-27T01:57:06Z z3t0_ quit (Ping timeout: 252 seconds) 2018-01-27T01:59:17Z Cymew joined #lisp 2018-01-27T01:59:34Z muyinliu quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-27T02:03:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-27T02:04:09Z Cymew joined #lisp 2018-01-27T02:09:02Z Cymew quit (Ping timeout: 268 seconds) 2018-01-27T02:13:43Z rumbler31 quit (Remote host closed the connection) 2018-01-27T02:16:09Z Cymew joined #lisp 2018-01-27T02:16:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-27T02:17:52Z Pixel_Outlaw quit (Remote host closed the connection) 2018-01-27T02:20:44Z Cymew quit (Ping timeout: 256 seconds) 2018-01-27T02:21:03Z brendyn joined #lisp 2018-01-27T02:22:12Z Cymew joined #lisp 2018-01-27T02:24:09Z nydel quit (Read error: Connection reset by peer) 2018-01-27T02:26:27Z fikka joined #lisp 2018-01-27T02:26:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-27T02:29:41Z gilez joined #lisp 2018-01-27T02:35:11Z emaczen quit (Remote host closed the connection) 2018-01-27T02:37:43Z mitc0185 joined #lisp 2018-01-27T02:40:48Z mitc0185: hey 2018-01-27T02:41:03Z d4ryus2 joined #lisp 2018-01-27T02:43:42Z mitc0185 quit (Remote host closed the connection) 2018-01-27T02:43:56Z mitc0185 joined #lisp 2018-01-27T02:44:15Z d4ryus1 quit (Ping timeout: 248 seconds) 2018-01-27T02:44:57Z nydel joined #lisp 2018-01-27T02:46:54Z pjb: aeth: I don't understand this fad for specialized arrays. Using T everywhere means that the same code is used everywhere all the time, therefore way fewer I-cache lines are needed, therefore the program runs much faster. 2018-01-27T02:48:31Z red-dot quit (Remote host closed the connection) 2018-01-27T02:49:33Z tripty quit (Read error: Connection reset by peer) 2018-01-27T02:52:15Z gilez quit (Ping timeout: 248 seconds) 2018-01-27T02:55:52Z Cymew joined #lisp 2018-01-27T02:57:01Z aeth: pjb: I don't commonly write code actually inteded for T. I generally write code that either gets type inferred well or code that gets type inferred poorly and can benefit from type declarations. The latter case is generally numbers and arrays. (Type declarations or check-type in the former case would just move the type error to the top of the function instead of somewhere else, and not actually improve the compilation.) 2018-01-27T02:58:01Z aeth: (defun foo (x) (car x)) ; x is going to have to be a list or a type error, and SBCL knows this 2018-01-27T02:58:17Z aeth: s/inteded/intended/ 2018-01-27T02:58:20Z fikka quit (Ping timeout: 252 seconds) 2018-01-27T03:00:23Z tripty joined #lisp 2018-01-27T03:00:24Z Cymew quit (Ping timeout: 256 seconds) 2018-01-27T03:01:14Z damke_ joined #lisp 2018-01-27T03:03:12Z warweasle quit (Quit: Leaving) 2018-01-27T03:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-27T03:06:15Z pjb: aeth: what about a cons tree? or just a cons? 2018-01-27T03:06:29Z aeth: Oh, and afaik most of the second case can probably be avoided if everything was put it one compilation-unit (e.g. one file). 2018-01-27T03:07:01Z aeth: pjb: (listp (cons 1 2)) or (typep (cons 1 2) 'list) 2018-01-27T03:07:22Z aeth: You're using the Scheme definition of a list, in CL a proper list. 2018-01-27T03:07:59Z Cymew joined #lisp 2018-01-27T03:08:37Z White_Flame: pjb: i-cache pressure would have an upper bound by type. d-cache pressure is by footprint, which I'd think would hurt more for non-specialized 2018-01-27T03:08:49Z fikka joined #lisp 2018-01-27T03:08:53Z White_Flame: erm, by array footprint, as well as boxing 2018-01-27T03:09:33Z zhoujingrui joined #lisp 2018-01-27T03:10:38Z mepian quit (Quit: Leaving) 2018-01-27T03:10:52Z nika joined #lisp 2018-01-27T03:10:59Z White_Flame: really, the only thing that makes sense for specialization is unboxed numeric types, IMO 2018-01-27T03:11:03Z arescorpio quit (Excess Flood) 2018-01-27T03:12:08Z aeth: White_Flame: What about structs that primarily contain unboxed numeric types? They could also benefit from specialization. 2018-01-27T03:13:04Z White_Flame: hmm, yeah I guess. As long as the types are known by whoever's accessing the array 2018-01-27T03:13:22Z aeth: Also, arrays and structs can unbox things that are normally boxed, e.g. double-float and even (unsigned-byte 64) 2018-01-27T03:13:37Z White_Flame: yeah, that's kind of the point of specialization ;) 2018-01-27T03:13:39Z aeth: So at least until we move to 68-bit CPUs, they're useful for hacks. 2018-01-27T03:14:03Z aeth: Is there any chance that Intel or AMD will make an x86-68? 2018-01-27T03:15:01Z White_Flame: Itanium68 vs amd68 2018-01-27T03:16:33Z Cymew quit (Ping timeout: 264 seconds) 2018-01-27T03:27:04Z Pixel_Outlaw joined #lisp 2018-01-27T03:29:59Z ebzzry joined #lisp 2018-01-27T03:34:06Z zhoujingrui quit (Quit: Leaving) 2018-01-27T03:34:49Z kamog quit (Quit: Leaving.) 2018-01-27T03:35:59Z mepian joined #lisp 2018-01-27T03:41:45Z fikka quit (Ping timeout: 260 seconds) 2018-01-27T03:43:56Z windblow quit (Quit: windblow) 2018-01-27T03:49:26Z fikka joined #lisp 2018-01-27T03:49:47Z djuber joined #lisp 2018-01-27T03:57:18Z dtornabene joined #lisp 2018-01-27T03:58:15Z atgreen_ joined #lisp 2018-01-27T03:58:41Z nullniverse joined #lisp 2018-01-27T03:59:54Z atgreen quit (Ping timeout: 256 seconds) 2018-01-27T03:59:54Z atgreen_ is now known as atgreen 2018-01-27T04:00:10Z safe joined #lisp 2018-01-27T04:04:53Z sjl joined #lisp 2018-01-27T04:05:04Z red-dot joined #lisp 2018-01-27T04:06:52Z milanj quit (Quit: This computer has gone to sleep) 2018-01-27T04:08:46Z red-dot: Is anyone aware of CL libraries for working with Google cloud? With the exception of https://github.com/death/gcm, nothing seems to turn up in searches. 2018-01-27T04:10:17Z quazimodo joined #lisp 2018-01-27T04:12:10Z sjl quit (Ping timeout: 240 seconds) 2018-01-27T04:13:18Z sz0 joined #lisp 2018-01-27T04:22:40Z turkja quit (Ping timeout: 240 seconds) 2018-01-27T04:23:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-27T04:23:49Z nydel quit (Read error: Connection reset by peer) 2018-01-27T04:23:59Z bkst quit (Ping timeout: 248 seconds) 2018-01-27T04:24:36Z p_l: red-dot: nothing available at the moment, should be quite quickly doable as they all follow REST quite well 2018-01-27T04:25:18Z red-dot: Ah, right. Thanks. REST makes it easy. 2018-01-27T04:26:35Z eschatologist quit (Ping timeout: 276 seconds) 2018-01-27T04:27:10Z red-dot: Anyone have a recommendation for a package for working with REST interfaces? 2018-01-27T04:27:12Z eschatologist joined #lisp 2018-01-27T04:28:58Z p_l: not really 2018-01-27T04:29:10Z JuanDaugherty quit (Remote host closed the connection) 2018-01-27T04:29:18Z p_l: red-dot: also, console.cloud.google.com will happily generate sample requests for you 2018-01-27T04:29:36Z bkst joined #lisp 2018-01-27T04:32:04Z red-dot: Too bad there is no swagger description 2018-01-27T04:34:00Z red-dot: Oh, apparently there is. Now they call it "OpenAPI Specification". 2018-01-27T04:34:12Z red-dot: https://cloud.google.com/endpoints/docs/openapi/ 2018-01-27T04:34:17Z fikka joined #lisp 2018-01-27T04:34:50Z red-dot: Not sure if that is the Google APIs themselves, or client written ones. 2018-01-27T04:38:03Z nopolitica quit (Quit: WeeChat 1.9) 2018-01-27T04:41:14Z red-dot: For anyone interested in Google APIs in Swagger (Google has its own version of Swagger): https://groups.google.com/forum/#!topic/google-apis-discovery/NdreD8_xWOk 2018-01-27T04:43:00Z zazzerino quit (Ping timeout: 260 seconds) 2018-01-27T04:48:04Z red-dot: Finally, for someone wanting to generate a client via Swagger, this seem to be the only option out there for CL: https://github.com/incjung/cl-swagger-codegen 2018-01-27T04:54:05Z schoppenhauer quit (Ping timeout: 260 seconds) 2018-01-27T04:56:04Z schoppenhauer joined #lisp 2018-01-27T04:57:17Z LocaMocha joined #lisp 2018-01-27T04:57:18Z LocaMocha quit (Max SendQ exceeded) 2018-01-27T05:00:40Z LocaMocha joined #lisp 2018-01-27T05:08:08Z fikka quit (Ping timeout: 252 seconds) 2018-01-27T05:08:45Z fikka joined #lisp 2018-01-27T05:10:32Z atgreen quit (Quit: atgreen) 2018-01-27T05:11:48Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-27T05:15:14Z jack_rabbit quit (Ping timeout: 276 seconds) 2018-01-27T05:16:39Z shka_ joined #lisp 2018-01-27T05:19:24Z LocaMocha is now known as Sauvin 2018-01-27T05:27:30Z jack_rabbit joined #lisp 2018-01-27T05:29:04Z Oladon quit (Quit: Leaving.) 2018-01-27T05:32:11Z stylewarning: Open sourced MAGICL, a linear algebra library. Definitely a WIP and the high-level interface is rough around the edges. Please send improvements, PRs, issues, or design suggestions! https://github.com/rigetticomputing/magicl 2018-01-27T05:32:47Z jack_rabbit quit (Ping timeout: 276 seconds) 2018-01-27T05:33:10Z dddddd quit (Remote host closed the connection) 2018-01-27T05:40:34Z pierpa quit (Ping timeout: 260 seconds) 2018-01-27T05:40:45Z damke joined #lisp 2018-01-27T05:43:05Z fikka quit (Ping timeout: 260 seconds) 2018-01-27T05:43:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-27T05:46:53Z jack_rabbit joined #lisp 2018-01-27T05:47:04Z fikka joined #lisp 2018-01-27T05:54:43Z sjl joined #lisp 2018-01-27T05:55:39Z aeth: stylewarning: Did your team consider using :downcase help with the readability of your generated files like blas-cffi.lisp? 2018-01-27T05:56:13Z aeth: (or :invert) 2018-01-27T05:59:10Z sjl quit (Ping timeout: 240 seconds) 2018-01-27T06:00:43Z damke_ joined #lisp 2018-01-27T06:03:21Z damke quit (Ping timeout: 264 seconds) 2018-01-27T06:03:47Z mitc0185: hello? 2018-01-27T06:04:42Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T06:04:57Z mitc0185 quit (Quit: leaving) 2018-01-27T06:05:55Z milanj joined #lisp 2018-01-27T06:14:46Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-27T06:17:53Z raynold: ahh it's a wonderful day :-D 2018-01-27T06:18:16Z stylewarning: aeth I was ok making absolutely clear it was generated code 2018-01-27T06:18:21Z stylewarning: But good suggestion 2018-01-27T06:21:15Z fikka quit (Ping timeout: 268 seconds) 2018-01-27T06:23:46Z |3b| usually tries to make generated code look nice if possible, going to see it from M-. often enough :) 2018-01-27T06:24:19Z |3b|: sometimes with comment at the top saying it is generated so don't edit it 2018-01-27T06:25:46Z red-dot joined #lisp 2018-01-27T06:30:40Z fikka joined #lisp 2018-01-27T06:37:16Z dented42 joined #lisp 2018-01-27T06:38:46Z smasta joined #lisp 2018-01-27T06:39:04Z smurfrobot quit (Read error: Connection reset by peer) 2018-01-27T06:39:30Z smurfrobot joined #lisp 2018-01-27T06:43:10Z z3t0_ joined #lisp 2018-01-27T06:43:10Z z3t0 quit (Read error: Connection reset by peer) 2018-01-27T06:43:20Z beach: Good morning everyone! 2018-01-27T06:45:20Z phoe: beach: good morning! 2018-01-27T06:45:42Z phoe: Ha, I actually woke up after the night when you say "good morning". 2018-01-27T06:54:28Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-27T06:55:02Z Pixel_Outlaw quit (Remote host closed the connection) 2018-01-27T06:59:29Z smasta quit (Ping timeout: 268 seconds) 2018-01-27T07:03:27Z rippa joined #lisp 2018-01-27T07:05:46Z pjb quit (Ping timeout: 256 seconds) 2018-01-27T07:09:51Z fikka quit (Ping timeout: 248 seconds) 2018-01-27T07:10:02Z wxie joined #lisp 2018-01-27T07:14:15Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-27T07:22:23Z fikka joined #lisp 2018-01-27T07:22:34Z Karl_Dscc joined #lisp 2018-01-27T07:29:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-27T07:30:12Z fikka joined #lisp 2018-01-27T07:30:45Z makomo joined #lisp 2018-01-27T07:32:52Z wxie quit (Quit: Bye.) 2018-01-27T07:33:02Z pjb joined #lisp 2018-01-27T07:33:34Z parjanya joined #lisp 2018-01-27T07:34:14Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-27T07:35:14Z fikka quit (Ping timeout: 256 seconds) 2018-01-27T07:35:50Z fikka joined #lisp 2018-01-27T07:36:27Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-27T07:37:56Z dtornabene quit (Quit: Leaving) 2018-01-27T07:43:31Z nullniverse quit (Quit: Leaving) 2018-01-27T07:45:15Z fikka quit (Ping timeout: 246 seconds) 2018-01-27T07:47:46Z mishoo joined #lisp 2018-01-27T07:53:27Z Ven`` joined #lisp 2018-01-27T07:56:37Z fikka joined #lisp 2018-01-27T07:57:54Z Ven`` quit (Ping timeout: 252 seconds) 2018-01-27T08:05:45Z z3t0_ quit (Ping timeout: 264 seconds) 2018-01-27T08:05:50Z pjb quit (Ping timeout: 256 seconds) 2018-01-27T08:06:05Z fikka quit (Ping timeout: 256 seconds) 2018-01-27T08:06:20Z jack_rabbit quit (Ping timeout: 252 seconds) 2018-01-27T08:08:32Z Murii joined #lisp 2018-01-27T08:11:33Z Karl_Dscc quit (Remote host closed the connection) 2018-01-27T08:17:49Z fikka joined #lisp 2018-01-27T08:21:05Z z3t0 joined #lisp 2018-01-27T08:24:05Z nowhere_man quit (Remote host closed the connection) 2018-01-27T08:24:47Z JonSmith quit (Remote host closed the connection) 2018-01-27T08:24:48Z z3t0 quit (Remote host closed the connection) 2018-01-27T08:25:29Z shifty joined #lisp 2018-01-27T08:26:05Z nowhere_man joined #lisp 2018-01-27T08:27:01Z vlatkoB quit (Remote host closed the connection) 2018-01-27T08:27:23Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-27T08:30:16Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-27T08:31:12Z nowhere_man joined #lisp 2018-01-27T08:34:47Z jack_rabbit joined #lisp 2018-01-27T08:35:15Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-27T08:37:14Z nowhere_man joined #lisp 2018-01-27T08:37:43Z safe quit (Read error: Connection reset by peer) 2018-01-27T08:38:00Z Amplituhedron joined #lisp 2018-01-27T08:39:50Z jmercouris joined #lisp 2018-01-27T08:43:00Z jack_rabbit quit (Ping timeout: 252 seconds) 2018-01-27T08:50:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-27T08:51:51Z jack_rabbit joined #lisp 2018-01-27T08:51:54Z jack_rabbit quit (Read error: Connection reset by peer) 2018-01-27T08:52:25Z jack_rabbit joined #lisp 2018-01-27T08:53:08Z shrdlu68 joined #lisp 2018-01-27T09:01:34Z damke joined #lisp 2018-01-27T09:03:00Z fikka joined #lisp 2018-01-27T09:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-27T09:12:54Z visof joined #lisp 2018-01-27T09:15:21Z nirved joined #lisp 2018-01-27T09:15:57Z nowhere_man quit (Ping timeout: 264 seconds) 2018-01-27T09:17:28Z shka_: good day everyone 2018-01-27T09:17:42Z beach: Hello shka_. 2018-01-27T09:18:53Z marusich joined #lisp 2018-01-27T09:19:45Z phoe: hey 2018-01-27T09:19:53Z beach: Hello phoe. 2018-01-27T09:25:15Z JonSmith joined #lisp 2018-01-27T09:26:13Z fdfdf joined #lisp 2018-01-27T09:26:55Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-27T09:28:37Z mgsk joined #lisp 2018-01-27T09:30:50Z JonSmith quit (Ping timeout: 256 seconds) 2018-01-27T09:30:52Z sjl joined #lisp 2018-01-27T09:31:14Z windblow joined #lisp 2018-01-27T09:33:51Z fikka quit (Ping timeout: 248 seconds) 2018-01-27T09:34:12Z lnostdal joined #lisp 2018-01-27T09:35:10Z sjl quit (Ping timeout: 240 seconds) 2018-01-27T09:37:46Z fikka joined #lisp 2018-01-27T09:45:36Z milanj quit (Quit: This computer has gone to sleep) 2018-01-27T09:46:02Z random-nick joined #lisp 2018-01-27T09:51:19Z paule32: hello 2018-01-27T09:51:28Z paule32: i can't find the error: 2018-01-27T09:51:31Z paule32: 1 2018-01-27T09:51:31Z paule32: *** - SYSTEM::%STRUCTURE-REF: 1 is not a structure of type WIRE 2018-01-27T09:51:37Z paule32: https://pastebin.com/nF1Xkq4R 2018-01-27T09:54:43Z thijso joined #lisp 2018-01-27T09:55:01Z jackdaniel: I doubt anyone will read into this atraciously formatted code 2018-01-27T09:55:20Z beach: Certainly not me. 2018-01-27T09:59:34Z beach: Some people never learn, it seems. 2018-01-27T10:00:00Z payphone left #lisp 2018-01-27T10:02:01Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-27T10:05:20Z paule32: ok, i get it 2018-01-27T10:08:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-27T10:08:44Z aeth: return-from? 2018-01-27T10:09:58Z aeth: return-from works in functions, apparently. And apparently this works: (defun foo () (return-from foo 42) "Hi") 2018-01-27T10:10:11Z sjl joined #lisp 2018-01-27T10:11:45Z _mjl joined #lisp 2018-01-27T10:13:48Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T10:14:40Z sjl quit (Ping timeout: 252 seconds) 2018-01-27T10:14:50Z aeth: I wonder if *any* package in Quicklisp uses return-from to return from a function 2018-01-27T10:15:18Z Shinmera: _death: Confusing how? And yes, there's no lisp type, just a common-lisp one. I'll see about completion. 2018-01-27T10:17:03Z aeth: paule32: Use cond and and instead of two ifs and then you can get rid of the return-froms and just use the implicit return without changing really anything else in your structure. 2018-01-27T10:18:41Z aeth: each line can be one conditional. (cond ((and (= i1 0) (= i2 0)) 0) ...) 2018-01-27T10:19:13Z quazimodo joined #lisp 2018-01-27T10:19:59Z Shinmera: beach: I'm more astounded that people in here don't learn that helping in this case is pointless and only increases overall suffering. 2018-01-27T10:26:24Z markong joined #lisp 2018-01-27T10:26:59Z stylewarning: aeth: we use RETURN-FROM quite a bit in imperative code 2018-01-27T10:27:38Z JonSmith joined #lisp 2018-01-27T10:27:40Z stylewarning: aeth: it has been preferable to do things like (defun foo () (when condition (return-from foo 42)) [ ... long logic code ... ]) 2018-01-27T10:28:01Z stylewarning: you could use an IF/COND but it needlessly increases the nesting depth 2018-01-27T10:28:24Z shrdlu68: paule32: Use "and" and "or" instead of chaining ifs like that. 2018-01-27T10:28:33Z red-dot joined #lisp 2018-01-27T10:29:05Z aeth: shrdlu68: This should probably be taken to #clnoobs where the exact same question was asked by paule32 2018-01-27T10:29:18Z aeth: It's a good channel for this sort of thing 2018-01-27T10:29:58Z stylewarning: aeth: is there a #python-noobs channel? 2018-01-27T10:30:10Z aeth: considering how large Python is, probably 2018-01-27T10:30:44Z stylewarning: idk, the main channel seems pretty noob friendly to me :) 2018-01-27T10:30:45Z sz0 joined #lisp 2018-01-27T10:30:52Z stylewarning: I hope we can be too. 2018-01-27T10:31:25Z hhdave joined #lisp 2018-01-27T10:31:26Z aeth: stylewarning: off topic here, but there is a ##python-friendly that is "like #python, but friendlier" according to its topic 2018-01-27T10:31:31Z stylewarning: haha 2018-01-27T10:31:47Z stylewarning: #lisp-but-not-so-curmudgeonly 2018-01-27T10:31:57Z JonSmith quit (Ping timeout: 240 seconds) 2018-01-27T10:32:09Z shrdlu68: return-from is a simple way to exit from necessarily complex functions with a given value. 2018-01-27T10:32:12Z aeth: This is an endless source of wisdom (as long as the topic of the channel is SEOed enough). http://irc.netsplit.de/channels/?net=freenode 2018-01-27T10:32:25Z stylewarning: shrdlu68: it can definitely be a code smell 2018-01-27T10:32:28Z beach: Shinmera: I am willing to give them the benefit of the doubt, assuming they haven't seen the recurring behavior. 2018-01-27T10:32:46Z Shinmera: beach: They've been in here long enough that they must have. 2018-01-27T10:32:53Z beach: Hmm. 2018-01-27T10:33:03Z aeth: Shinmera: I have seen paule32 in here once or twice before, iirc. 2018-01-27T10:33:07Z stylewarning: I wonder if I can hijack beach's compiler work to help make static analyzers for code style 2018-01-27T10:33:26Z stylewarning: something like a better lisp-critic 2018-01-27T10:33:39Z beach: Sure, that might work. 2018-01-27T10:33:41Z Shinmera: stylewarning: I wouldn't call it "hijack", I'm pretty sure such a thing is within his interests. 2018-01-27T10:33:57Z stylewarning: Shinmera: I like using edgy words. 2018-01-27T10:34:17Z stylewarning: xX_Styl3-Warn1ng_Xx, etc 2018-01-27T10:35:06Z Amplituhedron joined #lisp 2018-01-27T10:35:36Z aeth: stylewarning: It's interesting that you use return-from heavily. I've used early return statements a lot in most other languages, but in CL. 2018-01-27T10:36:01Z aeth: I wonder what kind of code it is. 2018-01-27T10:36:26Z aeth: Do you have any examples? 2018-01-27T10:36:42Z stylewarning: aeth: Maybe "heavily" is too strong a word, but it occurs frequently enough in code that didn't manage to lend itself well to functional style 2018-01-27T10:38:16Z djuber quit (Ping timeout: 256 seconds) 2018-01-27T10:38:50Z Shinmera: Over (almost) all of my projects I've used return-from exactly... 50 times. 2018-01-27T10:39:02Z Shinmera: So that's extremely little. 2018-01-27T10:39:18Z eivarv joined #lisp 2018-01-27T10:39:18Z stylewarning: aeth: I'll see if I can dig up an example later, but they all fall into the category of rewriting a top-level IF/COND like (if condition ) to (when condition (return-from ...)) 2018-01-27T10:39:41Z aeth: Shinmera: I was going to say that that's still quite a bit but then I remembered how large your Github is. 2018-01-27T10:39:50Z stylewarning: sorry, not top-level in the usual sense, but top-level in the func def 2018-01-27T10:40:10Z Shinmera: aeth: :) 2018-01-27T10:40:59Z marusich quit (Ping timeout: 265 seconds) 2018-01-27T10:41:05Z aeth: stylewarning: Yeah, I've seen and used that pattern in other languages, it's just that I guess idiomatic CL for some reason tends to avoid that sort of thing, at least in my CL. 2018-01-27T10:41:37Z stylewarning: aeth: it's true with my CL as well. Ideally code is refactored that you can return to expression-oriented thinking 2018-01-27T10:42:02Z aeth: Ah, good point, "expression-oriented thinking" is a nice way of putting it. 2018-01-27T10:42:09Z marusich joined #lisp 2018-01-27T10:43:01Z aeth: And just that does wind up changing a lot of small details. 2018-01-27T10:43:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-27T10:43:33Z eivarv quit (Client Quit) 2018-01-27T10:44:58Z damke_ joined #lisp 2018-01-27T10:45:48Z arbv quit (Ping timeout: 240 seconds) 2018-01-27T10:47:09Z damke quit (Ping timeout: 264 seconds) 2018-01-27T10:48:46Z oleo joined #lisp 2018-01-27T10:49:38Z X-Scale joined #lisp 2018-01-27T10:49:59Z X-Scale left #lisp 2018-01-27T10:50:09Z eschatologist quit (Ping timeout: 264 seconds) 2018-01-27T10:50:12Z Tobbi joined #lisp 2018-01-27T10:51:13Z varjag joined #lisp 2018-01-27T10:53:13Z eivarv joined #lisp 2018-01-27T10:54:41Z borodust: Xach: in a tweet you mentioned suggestions, so... :) would be awesome if there will be a quicklisp badge that tells whether system is building or not (not unlike travis and appveyor badges) 2018-01-27T10:59:19Z eivarv quit (Quit: Sleep) 2018-01-27T10:59:49Z arbv joined #lisp 2018-01-27T11:00:14Z azrazalea: ls 2018-01-27T11:00:19Z jmercouris joined #lisp 2018-01-27T11:00:27Z damke joined #lisp 2018-01-27T11:01:35Z zooey quit (Ping timeout: 255 seconds) 2018-01-27T11:02:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-27T11:03:43Z zooey joined #lisp 2018-01-27T11:03:57Z arbv quit (Ping timeout: 240 seconds) 2018-01-27T11:05:31Z pedh joined #lisp 2018-01-27T11:05:44Z azrazalea: Ha :P, nice job me. Not a command prompt!!! Anyway: https://gitlab.com/snippets/1695720 is my .sbclrc and for some reason i'm getting https://gitlab.com/snippets/1695721 when it tries to load linedit. Is linedit broken right now or something? I checked and as far as I can tell i'm not using a local version or anything like that. 2018-01-27T11:06:06Z azrazalea: (also hi, i've been gone forever (and for the most part still am) cause life and stuff) 2018-01-27T11:07:10Z azrazalea: FWIW, i'm on the latest quicklisp dist 2018-01-27T11:10:04Z arbv joined #lisp 2018-01-27T11:12:34Z paule32: aeth: i get it 2018-01-27T11:12:47Z pedh quit (Quit: pedh) 2018-01-27T11:12:56Z spacebat1 joined #lisp 2018-01-27T11:13:57Z borodust: wb azrazalea 2018-01-27T11:14:16Z spacebat1 is now known as sbat 2018-01-27T11:15:11Z stylewarning: man oh man, old lisp code from ca. 1980s is so terrible. Half the files are custom load scripts 2018-01-27T11:15:27Z hhdave quit (Quit: hhdave) 2018-01-27T11:16:15Z azrazalea: borodust: Thanks <3. I'll probably dissapear again for a bit. I _do_ plan on being around again once my life settles. 2018-01-27T11:16:29Z stylewarning: (before people jump on me for making a bold, offensive claim, i don't mean all code from the 80s is terrible and the state of affairs was any better in any other language) 2018-01-27T11:16:52Z azrazalea: Still got a game to right after all :) 2018-01-27T11:16:55Z azrazalea: write* 2018-01-27T11:17:21Z sjl joined #lisp 2018-01-27T11:19:21Z azrazalea: Though, my next lisp will be a slackbot 2018-01-27T11:19:33Z arbv quit (Ping timeout: 264 seconds) 2018-01-27T11:21:54Z sjl quit (Ping timeout: 256 seconds) 2018-01-27T11:22:01Z arbv joined #lisp 2018-01-27T11:22:02Z eivarv joined #lisp 2018-01-27T11:26:52Z quazimodo joined #lisp 2018-01-27T11:29:00Z arbv quit (Ping timeout: 260 seconds) 2018-01-27T11:29:08Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T11:29:53Z red-dot joined #lisp 2018-01-27T11:30:05Z arbv joined #lisp 2018-01-27T11:36:26Z scymtym quit (Ping timeout: 252 seconds) 2018-01-27T11:38:02Z attila_lendvai joined #lisp 2018-01-27T11:39:00Z marusich quit (Ping timeout: 252 seconds) 2018-01-27T11:41:34Z marusich joined #lisp 2018-01-27T11:43:23Z void_pointer joined #lisp 2018-01-27T11:44:57Z attila_lendvai quit (Quit: Leaving.) 2018-01-27T11:47:20Z attila_lendvai joined #lisp 2018-01-27T11:47:24Z arbv quit (Quit: ZNC - http://znc.in) 2018-01-27T11:48:17Z arbv joined #lisp 2018-01-27T11:48:29Z pedh joined #lisp 2018-01-27T11:49:23Z turkja joined #lisp 2018-01-27T11:52:40Z arbv quit (Ping timeout: 240 seconds) 2018-01-27T11:55:05Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2018-01-27T11:55:06Z arbv joined #lisp 2018-01-27T11:57:51Z scymtym joined #lisp 2018-01-27T12:00:05Z pedh quit (Quit: pedh) 2018-01-27T12:02:16Z eivarv quit (Quit: Sleep) 2018-01-27T12:02:16Z fikka quit (Ping timeout: 268 seconds) 2018-01-27T12:03:13Z fikka joined #lisp 2018-01-27T12:07:24Z Xach: borodust: where to put this badge? like make a png and host it to include in readme.md or something? 2018-01-27T12:07:38Z Xach likes this idea 2018-01-27T12:07:57Z shifty quit (Ping timeout: 240 seconds) 2018-01-27T12:08:35Z Xach: stylewarning: i haven't spelunked *too* much, but the custom load scripts i saw were usually pretty simple. like, a list of files to load in a loop. 2018-01-27T12:08:38Z Shinmera: Yeah that's the idea 2018-01-27T12:09:12Z Xach: I don't have a good way to link to the latest status, though. 2018-01-27T12:09:38Z eivarv joined #lisp 2018-01-27T12:16:33Z dcluna quit (Ping timeout: 264 seconds) 2018-01-27T12:17:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-27T12:18:48Z dcluna joined #lisp 2018-01-27T12:21:03Z atgreen joined #lisp 2018-01-27T12:21:33Z marusich quit (Quit: Leaving) 2018-01-27T12:22:33Z aindilis` quit (Ping timeout: 264 seconds) 2018-01-27T12:26:51Z Xach: hmm 2018-01-27T12:27:27Z fikka joined #lisp 2018-01-27T12:28:24Z Shinmera: Would need a redirect thing that goes to the latest page. 2018-01-27T12:28:36Z JonSmith joined #lisp 2018-01-27T12:28:36Z borodust: Xach: yeah, like return different png/svg by the same url depending on the build status 2018-01-27T12:29:14Z borodust: Xach: like those on top of readme here: https://github.com/borodust/bodge-chipmunk/blob/master/README.md 2018-01-27T12:29:53Z borodust: url is always the same but services return different images depending on the build status 2018-01-27T12:30:22Z Shinmera: borodust: Usually you want to have a link to the respective project's page as well 2018-01-27T12:30:30Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T12:30:38Z Shinmera: so you do need a page that can redirect to the latest report 2018-01-27T12:31:07Z borodust: Shinmera: that would be awesome too 2018-01-27T12:31:10Z red-dot joined #lisp 2018-01-27T12:31:45Z borodust: but at least having a status is already very nice! 2018-01-27T12:32:15Z Xach: I'll look into S3 redirects. Maybe they're more straightforward than I remember 2018-01-27T12:32:35Z JonSmith quit (Ping timeout: 240 seconds) 2018-01-27T12:32:50Z shrdlu68: I'm not sure, reading the clhs page on order of execution (loop macro) whether a while clause in the middle of for clauses is executed after the for clauses before it and before the for clauses after it. 2018-01-27T12:33:18Z shrdlu68: clhs 6.1.1.6 2018-01-27T12:33:18Z specbot: Order of Execution: http://www.lispworks.com/reference/HyperSpec/Body/06_aaf.htm 2018-01-27T12:33:45Z beach: They are executed in the order they appear. 2018-01-27T12:34:13Z shrdlu68: Great! Thanks beach 2018-01-27T12:34:17Z ebrasca: Hi 2018-01-27T12:34:29Z beach: Hello ebrasca. 2018-01-27T12:34:54Z shrdlu68: ebrasca: Good afternoon! 2018-01-27T12:35:25Z beach: shrdlu68: The WHILE clause should be seen as a terminate-if-false. 2018-01-27T12:38:03Z khisanth__ joined #lisp 2018-01-27T12:38:17Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-27T12:38:55Z schoppenhauer quit (Ping timeout: 248 seconds) 2018-01-27T12:39:56Z atgreen quit (Quit: atgreen) 2018-01-27T12:41:48Z khisanth_ quit (Ping timeout: 240 seconds) 2018-01-27T12:42:29Z schoppenhauer joined #lisp 2018-01-27T12:49:03Z pagnol joined #lisp 2018-01-27T12:55:58Z eivarv quit (Quit: Sleep) 2018-01-27T12:57:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-27T13:02:58Z _mjl quit (Ping timeout: 252 seconds) 2018-01-27T13:04:01Z solyd joined #lisp 2018-01-27T13:04:03Z eivarv joined #lisp 2018-01-27T13:06:09Z BitPuffin joined #lisp 2018-01-27T13:09:12Z oleo quit (Ping timeout: 252 seconds) 2018-01-27T13:15:08Z eivarv quit (Quit: Sleep) 2018-01-27T13:16:55Z wigust- quit (Ping timeout: 260 seconds) 2018-01-27T13:17:47Z Folkol joined #lisp 2018-01-27T13:22:31Z stylewarning: I’m really interested in having a statically typed eDSL in Lisp 2018-01-27T13:24:00Z stylewarning: I wonder if there’s an expedient way to compile something like Standard ML into Lisp with existing implementations. 2018-01-27T13:26:22Z fikka joined #lisp 2018-01-27T13:26:41Z scymtym: stylewarning: you may be interested in http://www.ccs.neu.edu/home/stchang/pubs/ckg-popl2017.pdf 2018-01-27T13:29:48Z oleo joined #lisp 2018-01-27T13:34:09Z stylewarning: scymtym: cool, haven’t seen it 2018-01-27T13:34:10Z samla joined #lisp 2018-01-27T13:34:18Z Murii quit (Quit: WeeChat 1.4) 2018-01-27T13:36:29Z Achylles joined #lisp 2018-01-27T13:36:31Z dddddd joined #lisp 2018-01-27T13:36:55Z EvW joined #lisp 2018-01-27T13:43:26Z samla quit (Quit: Mutter: www.mutterirc.com) 2018-01-27T13:45:45Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-27T13:45:51Z solyd quit (Quit: solyd) 2018-01-27T13:46:03Z shrdlu68 quit (Remote host closed the connection) 2018-01-27T13:46:53Z samla joined #lisp 2018-01-27T13:47:29Z phoe: Can I have two separate inspectors in slime? 2018-01-27T13:47:49Z phoe: I want to inspect two different objects at a time. I can work around it by opening a second emacs, but I don't want to overkill. 2018-01-27T13:49:53Z Murii joined #lisp 2018-01-27T13:52:04Z samla quit (Ping timeout: 256 seconds) 2018-01-27T13:54:12Z selesdepselesnul joined #lisp 2018-01-27T14:09:04Z pagnol quit (Ping timeout: 256 seconds) 2018-01-27T14:11:59Z shrdlu68 joined #lisp 2018-01-27T14:13:47Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T14:17:24Z shrdlu68 quit (Ping timeout: 252 seconds) 2018-01-27T14:18:28Z shrdlu68 joined #lisp 2018-01-27T14:25:20Z shrdlu68 quit (Ping timeout: 268 seconds) 2018-01-27T14:25:27Z kamog joined #lisp 2018-01-27T14:26:08Z shrdlu68 joined #lisp 2018-01-27T14:26:44Z random-nick quit (Remote host closed the connection) 2018-01-27T14:28:05Z vap1 quit (Ping timeout: 240 seconds) 2018-01-27T14:30:19Z random-nick joined #lisp 2018-01-27T14:30:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-27T14:31:24Z megachombass joined #lisp 2018-01-27T14:31:36Z megachombass: pjb: you there? 2018-01-27T14:33:04Z red-dot joined #lisp 2018-01-27T14:37:09Z zazzerino joined #lisp 2018-01-27T14:38:08Z rumbler31 joined #lisp 2018-01-27T14:38:38Z fikka joined #lisp 2018-01-27T14:40:57Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-27T14:42:52Z pjb joined #lisp 2018-01-27T14:43:34Z pjb quit (Remote host closed the connection) 2018-01-27T14:43:57Z pjb joined #lisp 2018-01-27T14:49:59Z dieggsy joined #lisp 2018-01-27T14:50:00Z wigust joined #lisp 2018-01-27T14:50:53Z phoe: megachombass: feel free to post your questions publicly 2018-01-27T14:51:08Z nowhere_man joined #lisp 2018-01-27T14:51:10Z beach: phoe: You don't understand what you are asking. 2018-01-27T14:51:38Z pjb: That's because irc is like google's mapreduce: you ask one question, you get a hundred of answers, and you have to reduce it to a single meaningful information. 2018-01-27T14:52:23Z dieggsy quit (Remote host closed the connection) 2018-01-27T14:53:05Z atgreen joined #lisp 2018-01-27T14:53:31Z pjb: megachombass: I'm here! 2018-01-27T14:53:50Z shrdlu68 joined #lisp 2018-01-27T14:54:57Z dieggsy joined #lisp 2018-01-27T14:55:10Z pjb: megachombass: To see if pjb is here, you can use the command: /whois pjb 2018-01-27T14:55:54Z EvW quit (Ping timeout: 252 seconds) 2018-01-27T14:56:50Z djuber joined #lisp 2018-01-27T14:57:48Z djuber quit (Read error: Connection reset by peer) 2018-01-27T15:01:57Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-27T15:03:13Z megachombass: i was trying to implement what you told me yestarday 2018-01-27T15:03:14Z jmercouris: beach: lol :D 2018-01-27T15:03:16Z megachombass: but got some troubles 2018-01-27T15:03:43Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-27T15:03:47Z pjb: troubles occur. 2018-01-27T15:04:14Z jmercouris: I find it best to usually just describe the problem instead of just mentioning it :P 2018-01-27T15:06:57Z pjb: It's a rare occurence, when somebody asks a question on irc without having some troubles… 2018-01-27T15:07:11Z megachombass: meh, i think i will just not send this VM and fk this ill have a 0 2018-01-27T15:07:27Z megachombass: on the state this is, he gonna notice is copy pasta and i risk way more than a 0 2018-01-27T15:07:40Z pjb: megachombass: it's the week end, our telepathic powers are low. 2018-01-27T15:08:12Z jmercouris: megachombass: I have literally no idea what it is you are trying to say 2018-01-27T15:08:26Z phoe: megachombass: post your problem instead of complaining about it. this way we might actually be able to help you. 2018-01-27T15:08:45Z jmercouris: phoe: I think beach was right 2018-01-27T15:08:48Z pjb: If you asked a question about your troubbles, we could help, but just stating trivia won't. 2018-01-27T15:08:56Z scottj joined #lisp 2018-01-27T15:08:57Z pjb: beach's always right. 2018-01-27T15:09:05Z beach: Heh. 2018-01-27T15:09:06Z phoe: jmercouris: I am slowly starting to think the same. 2018-01-27T15:09:07Z jmercouris: except for when he's wrong :P 2018-01-27T15:09:20Z drdo: I too have troubles 2018-01-27T15:09:21Z shrdlu68 joined #lisp 2018-01-27T15:09:32Z jmercouris: Don't we all have our own troubles in one way or another? 2018-01-27T15:09:41Z pjb: drdo: I once wrote the specifications for a drdo. 2018-01-27T15:09:49Z megachombass: i think that i didnt refactor the code enough of this lisp VM for the teacher dont notice is copy pasta from somewhere else 2018-01-27T15:10:02Z drdo: pjb: There's more of me? I must meet them at once! 2018-01-27T15:10:05Z jmercouris: megachombass: I think you should drop the class 2018-01-27T15:10:31Z megachombass: im alone on this project, and i doubt that in the 30h left i have, i can code something correct 2018-01-27T15:10:35Z jmercouris: If your solution to passing an assignment is refactoring it until it is no longer recognizable as palgueraized (sp?), then you should drop the class 2018-01-27T15:10:56Z megachombass: sadly if i dropp that class, i have to drop university 2018-01-27T15:11:05Z megachombass: and more i look at it, more i think its going to be the case 2018-01-27T15:11:12Z pjb: drdo: sorry, indeed, it was MrDo, not DrDo. https://pausescreen.files.wordpress.com/2010/11/mr-do-snes.jpg 2018-01-27T15:11:22Z pjb: drdo: uniqueness restored. 2018-01-27T15:11:33Z jmercouris: That's unfortunate, post your issue, and assignment, what you've done so far, and let's see if we can help you get through it 2018-01-27T15:11:50Z jmercouris: We won't give you the answers per se, at least I won't, but I will try to guide you through it 2018-01-27T15:12:01Z pjb: megachombass: don't be too pessimistic. 2018-01-27T15:12:13Z pjb: megachombass: did you try to introduce abstractions as I explained? 2018-01-27T15:12:29Z megachombass: ive tried a bit, sadly i run into issues in implementing it 2018-01-27T15:12:57Z pjb: If you asked about those issues, we could help, but you keep talking about irrelevant things, like troubles and university dropping. 2018-01-27T15:13:06Z pjb: This is #lisp, not #university-life 2018-01-27T15:13:22Z megachombass: if you're up to follow step by step how im trying to implement it, then there is still a chance 2018-01-27T15:13:55Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-27T15:14:15Z theBlackDragon quit (Remote host closed the connection) 2018-01-27T15:15:02Z pjb: megachombass: also, what I forgot to mention, is that when you build abstrations, you can test them independently from the rest of the program. So you can test it incrementaly, module by module. 2018-01-27T15:15:05Z warweasle joined #lisp 2018-01-27T15:15:21Z jack_rabbit quit (Ping timeout: 246 seconds) 2018-01-27T15:16:02Z megachombass: then lets try it module by module. starting by the choice of the structure. i like the defstruct 2018-01-27T15:16:32Z milanj joined #lisp 2018-01-27T15:16:57Z megachombass: most likely because its sounds like C 2018-01-27T15:19:11Z selesdepselesnul quit (Quit: Leaving) 2018-01-27T15:19:48Z pjb: Great. 2018-01-27T15:20:03Z hhdave joined #lisp 2018-01-27T15:20:19Z pjb: Do you have tests? 2018-01-27T15:21:14Z pjb: If you modify your program, how do you ensure it still works? 2018-01-27T15:22:18Z jmercouris: pjb: Tests are for the weak 2018-01-27T15:22:44Z jmercouris: in case it isn't clear to everyone, I am joking 2018-01-27T15:22:46Z Bike: though it is off topic, your class seems to have entirely failed to prepare you for this assignment. assuming others are having problems, you should probably complain. 2018-01-27T15:23:09Z pjb: Strong AI says: yes. 2018-01-27T15:23:13Z jmercouris: Bike: Unless of course they didn't attend the class or pay attention 2018-01-27T15:23:21Z Bike: i'm being charitable. 2018-01-27T15:23:42Z pjb: Well, we see only one asking about this project, so… 2018-01-27T15:26:23Z hhdave quit (Ping timeout: 248 seconds) 2018-01-27T15:26:53Z hhdave joined #lisp 2018-01-27T15:27:06Z eivarv joined #lisp 2018-01-27T15:27:35Z jack_rabbit joined #lisp 2018-01-27T15:27:48Z fikka quit (Ping timeout: 252 seconds) 2018-01-27T15:28:23Z megachombass: i did attend to that class, as i do with every other class and i do pay attention, simply this is way to hard with the few instructions he gave in class 2018-01-27T15:28:25Z megachombass: so 2018-01-27T15:28:27Z megachombass: https://codeshare.io/GkwJYA 2018-01-27T15:28:39Z megachombass: ive created a VM struct. 2018-01-27T15:29:04Z megachombass: btw this site codeshare.io is great as everyone with the link can interact with the code in real time 2018-01-27T15:29:40Z beach: *sigh* 2018-01-27T15:30:25Z shrdlu68 joined #lisp 2018-01-27T15:30:30Z jmercouris: So, I have some strange issues with read-line, sometimes when I type backspace in a terminal after invoking read-line, it will print characters "rubout" instead of actually deleting the previous character 2018-01-27T15:30:32Z jmercouris: why is that? 2018-01-27T15:31:07Z beach: Maybe you need to use DEL instead of backspace. 2018-01-27T15:31:26Z jmercouris: I should clarify that I am on a mac, and I don't actually have a backspace key 2018-01-27T15:31:30Z jmercouris: it says "delete" 2018-01-27T15:31:35Z jmercouris: but not in the sense that it deletes forward 2018-01-27T15:31:39Z dim: CL-USER> (with-open-file (s "/Users/dim/dev/temp/pgloader-issues/733/asist.tiplis.csv" :direction :input :element-type 'character :external-format :utf-8) (format nil "~{~x~^ ~}" (mapcar #'char-code (list (read-char s) (read-char s) (read-char s) (read-char s))))) gives me "FEFF 31 3B 27" 2018-01-27T15:31:50Z dim: you might recon the UTF-8 BOM, as in https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 2018-01-27T15:32:01Z dim: what's the canonical way to deal with that in CL? 2018-01-27T15:32:24Z dim: Note: The UTF-8 representation of the BOM is the (hexadecimal) byte sequence 0xEF,0xBB,0xBF. A text editor or web browser misinterpreting the text as ISO-8859-1 or CP1252 will display the characters  for this. 2018-01-27T15:33:02Z rumbler31 quit (Remote host closed the connection) 2018-01-27T15:33:10Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T15:33:53Z red-dot joined #lisp 2018-01-27T15:34:43Z megachombass: and for testing if my code still works.... one sec i create a test at the end of the file. 2018-01-27T15:34:48Z dim: using (format nil "~{~x~^ ~}" (list (read-byte s) (read-byte s) (read-byte s))) shows "EF BB BF", more to the point maybe 2018-01-27T15:35:06Z dim: (with opening the file with :element-type '(unsigned-byte 8)) 2018-01-27T15:36:42Z dim: my understanding is that it would be safe to always ignore the sequence #xef #xbb #xbf at the beginning of an UTF-8 encoded file... but well... here be dragons? 2018-01-27T15:37:03Z jmercouris: megachombass: this is some of the strangest looking lisp i've seen with hanging indent parens 2018-01-27T15:37:22Z eivarv quit (Quit: Sleep) 2018-01-27T15:37:33Z megachombass: added a fibo test at the end of the file. 2018-01-27T15:37:51Z megachombass: jmercouris: i used emacs to indent! ive learnt that lesson :P 2018-01-27T15:38:29Z jmercouris: does this have to be in Lisp? or did you choose lisp? if it doesn't have to be in lisp, why don't you write it in a language you know? 2018-01-27T15:38:47Z megachombass: be sure i would've never chosen a language i dont know to make this 2018-01-27T15:38:52Z megachombass: it have to be in lisp 2018-01-27T15:40:27Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-27T15:40:46Z capitaomorte joined #lisp 2018-01-27T15:41:29Z megachombass: if it was in c, python java or anything i know, i would've created my own vm from scratch and ispire myself on existing VM's. but in lisp im forced to copy pasta an existing one, and even to modify it its a pain for me 2018-01-27T15:41:51Z pjb: jmercouris: in the preferences of the terminal, in the Advanced tab, you have a checkbox "Delete sends Control-H" this checkbox must be in accord with stty erase. 2018-01-27T15:41:56Z Bike: did your class teach you lisp, at all? 2018-01-27T15:42:13Z shrdlu68 joined #lisp 2018-01-27T15:42:28Z jmercouris: pjb: It only occurs in ansi-term in emacs, so far on #emacs, the best help I've gotten was "lololol" 2018-01-27T15:42:28Z fikka joined #lisp 2018-01-27T15:42:35Z pjb: jmercouris: if you don't check "Delete sends Control-H", then you should stty erase ^? 2018-01-27T15:42:38Z pjb: jmercouris: if you check "Delete sends Control-H", then you should stty erase ^H 2018-01-27T15:43:04Z pjb: jmercouris: Now what occurs in emacs, remains in emacs. 2018-01-27T15:43:31Z pjb: jmercouris: but this is the same principle. What does ansi-term in emacs send when you press DEL? What is stty erase configured to? 2018-01-27T15:43:45Z jmercouris: Not sure, let me investigate 2018-01-27T15:43:55Z pjb: jmercouris: do you run emacs in a terminal? 2018-01-27T15:44:04Z jmercouris: no, I run GUI emacs 2018-01-27T15:44:07Z pjb: ok. 2018-01-27T15:45:13Z pjb: megachombass: the point of the exercise, is to make you write lisp from scratch! How would you learn lisp otherwise? 2018-01-27T15:46:51Z eivarv joined #lisp 2018-01-27T15:47:03Z megachombass: pjb: with examples 2018-01-27T15:47:47Z pjb: megachombass: then you only learn to read, not to write. 2018-01-27T15:48:45Z megachombass: added the instructions to see if the test works 2018-01-27T15:48:47Z Bike: eh. writing a vm in an unfamiliar language with, apparently, zero support, is a bit much. maybe you could ask your classmates what resources they used. 2018-01-27T15:50:06Z megachombass: if you think classmates are gonna share something haha 2018-01-27T15:50:18Z megachombass: well, so after the struc is created 2018-01-27T15:50:23Z megachombass: i read the pastebin you wrote yesterday 2018-01-27T15:50:54Z vap1 joined #lisp 2018-01-27T15:50:54Z vaporatorius joined #lisp 2018-01-27T15:50:54Z vaporatorius quit (Changing host) 2018-01-27T15:50:54Z vaporatorius joined #lisp 2018-01-27T15:51:35Z megachombass: pjb: (defun vm-R0 (VM) (get VM :R0)) will not work with a struct i guess 2018-01-27T15:51:38Z Bike: uh, yeah, i do think that? 2018-01-27T15:51:56Z jmercouris: My classmates were always really helpful 2018-01-27T15:52:15Z megachombass: we were 3 classmates on this project, other 2 literally left me alone coz they abandonated 2018-01-27T15:52:16Z jmercouris: Maybe I got lucky, but I think that generally people in this world are good, if not at least neutral 2018-01-27T15:52:24Z megachombass: i will try my best to have atleast something to present 2018-01-27T15:52:33Z pjb: megachombass: the defstruct will define a function named vm-r0 already. 2018-01-27T15:52:41Z jmercouris: Should your teacher not take into account that the other 2 have dropped out? 2018-01-27T15:52:43Z Bike: i'm just saying, you have no idea what you're doing. you've stated as much. you were not prepared. either your class is doing poorly in general because of poor instruction, or you weren't paying attention. in the former case, you need to talk to the department. 2018-01-27T15:53:04Z pjb: megachombass: try: (let ((*print-circle* nil)) (pprint (macroexpand '(defstruct vm r0 r1 r2 r3 pc sp fp)))) 2018-01-27T15:53:28Z jmercouris: I'm almost of the opinion that you should not attempt to complete the project and instead focus on getting an extension, or going through the appropriate channels as Bike suggested 2018-01-27T15:53:45Z Shinmera: jmercouris: This already is the extension 2018-01-27T15:54:17Z jmercouris: Well then, hindsight is 20/20 I guess 2018-01-27T15:54:21Z pjb: It is assumed that students at university level be autonomous. Basically, teachers say: learn this. and the student go and learn this. 2018-01-27T15:55:04Z pjb: Foremost, when they already know 4 other this that are like it, and when there are a lot of resources on the internet and in libraries about it, and when learning this mainly involves writing programs in this language… 2018-01-27T15:55:23Z jmercouris: pjb: I guess this is probably true in France, and the comments are in French, so I assume this student is also French, so you're probably right, in the US it is a different story 2018-01-27T15:55:36Z jmercouris: in the US we pay a lot of money for education, and we expect that the teachers teach 2018-01-27T15:55:39Z pjb: There's no need for a boring teacher reading the tutorial aloud. You can use your TextToSpeak app for that. 2018-01-27T15:56:18Z megachombass: in france university is free, and i guess thats why teachers dont give a fk 2018-01-27T15:56:19Z pjb: On the other hand, if the student doesn't start early, he cannot come to the teacher with his questions soon enough. 2018-01-27T15:56:54Z megachombass: well, pprint prints alot of stuff, but i guess nothing interesting as ive not set values to it 2018-01-27T15:57:19Z pjb: megachombass: in that you should see a defun vm-r0 2018-01-27T15:57:32Z megachombass: let me see 2018-01-27T15:57:54Z megachombass: yes, it has created some defun 2018-01-27T15:58:09Z megachombass: so this has autogenerated ascessors for that struct right? 2018-01-27T15:58:20Z pjb: therefore you can remove the old vm-r0 from your sources. And all the similar function that have been generated by the defstruct macro. 2018-01-27T15:58:23Z pjb: Yes. 2018-01-27T15:59:01Z megachombass: but, the functions are not generated in my sources? 2018-01-27T15:59:16Z pjb: If you put the defstruct in your sources, yes they will be. 2018-01-27T16:00:09Z turkja quit (Ping timeout: 246 seconds) 2018-01-27T16:00:12Z megachombass: well, i have put the defstruct in my source, and the soruce is still the same 2018-01-27T16:00:13Z pjb: So, in lisp, defstruct does more than a C struct. In C, it only declares a type. In Common Lisp, it also defines utility functions: a constructor, a copier, accessors, a serializer and deserializer. 2018-01-27T16:00:16Z megachombass: even after load 2018-01-27T16:00:20Z pjb: yes. 2018-01-27T16:00:31Z pjb: Just put the defstruct at the beginning of your file. 2018-01-27T16:01:25Z megachombass: with the (let ((*print-circle* nil)) (pprint (macroexpand '(defstruct vm r0 r1 r2 r3 pc sp fp)))) ? or that is just for me to se in lisp interpreter whats going on? 2018-01-27T16:01:38Z pjb: the later. 2018-01-27T16:01:59Z megachombass: okey so i just put defstruct and load the file, and it should add functions to my source 2018-01-27T16:02:00Z megachombass: lets ee 2018-01-27T16:02:03Z megachombass: see* 2018-01-27T16:02:20Z pjb: but erase the old functions such as vm-r0, otherwise they will override the one defined by the defstruct. 2018-01-27T16:03:13Z EvW1 joined #lisp 2018-01-27T16:04:16Z megachombass: i dont have any vm-r0. what is the equivalent in my code? 2018-01-27T16:04:57Z pjb: If you don't have it, then it's good. 2018-01-27T16:05:17Z pjb: Now you need to replace the occurences of (get vm :foo) by (vm-foo vm) 2018-01-27T16:05:33Z megachombass: https://codeshare.io/GkwJYA <== all changes i apply on my sourcecode are updated there 2018-01-27T16:05:52Z megachombass: ive added the struct def and the start of my file, loaded file, still everything the same on source 2018-01-27T16:06:20Z pjb: DeuxiemeElement is not an abstraction. There is already first, second, third, … tenth in CL. 2018-01-27T16:06:55Z pjb: Replace (get VM :PC) by (vm-pc vm) everywhere. And similarly for all the (get VM …) 2018-01-27T16:07:45Z megachombass: okey one sec 2018-01-27T16:08:05Z pjb: An instruction is not composed of elements. It's composed of an operand, an argument and a second argument. 2018-01-27T16:08:31Z beach: I hope this assignment is due soon. 2018-01-27T16:08:36Z pjb: Elements are what are in list, and Lisp, being a List Processing language, already provide functions to operate on lists such as first rest member second third etc. 2018-01-27T16:08:46Z pjb: beach: -29 hours. 2018-01-27T16:09:05Z megachombass: i have untill tomorrow midnight 2018-01-27T16:09:17Z megachombass: well give me a sec to apply the changes 2018-01-27T16:09:58Z pjb: Clearly, it was intended for you to learn lisp and program the assignment during the Christmas holidays. 2018-01-27T16:11:33Z megachombass: yes, but it wasnt the only assignement 2018-01-27T16:11:39Z megachombass: knowing all exams were past week 2018-01-27T16:11:50Z megachombass: i will pass everything but this nightmare 2018-01-27T16:13:11Z megachombass: hum 2018-01-27T16:14:35Z attila_lendvai quit (Ping timeout: 240 seconds) 2018-01-27T16:15:14Z eivarv quit (Read error: Connection reset by peer) 2018-01-27T16:15:26Z varjag quit (Ping timeout: 256 seconds) 2018-01-27T16:16:01Z beach: I don't believe the story about not being taught the language for a second. 2018-01-27T16:16:34Z hifitim joined #lisp 2018-01-27T16:16:36Z jackdaniel: weaseling from assignments isn't a noble thing to do ,) especially that it misses the point 2018-01-27T16:16:55Z jackdaniel: assignments are not something to be finished but rather a mean to a goal of understanding something 2018-01-27T16:17:02Z shrdlu68: Those of us who didn't learn to code in class look on in bewilderment. 2018-01-27T16:17:19Z eivarv joined #lisp 2018-01-27T16:17:35Z attila_lendvai joined #lisp 2018-01-27T16:18:28Z igemnace joined #lisp 2018-01-27T16:18:43Z vlatkoB joined #lisp 2018-01-27T16:19:04Z attila_lendvai quit (Client Quit) 2018-01-27T16:19:21Z turkja joined #lisp 2018-01-27T16:20:00Z saemcro joined #lisp 2018-01-27T16:20:31Z varjag joined #lisp 2018-01-27T16:20:53Z shrdlu68: Back in school I used to hate the exam season because it meant I could code less. Also because the libraries, usually serene hide-outs, would see a sudden surge in visitors. 2018-01-27T16:21:52Z hifitim quit (Quit: Leaving) 2018-01-27T16:23:35Z asarch joined #lisp 2018-01-27T16:24:08Z jackdaniel: on the other hand being honest that it is an assignment is much better than trying to lie that it is not 2018-01-27T16:25:35Z varjag quit (Ping timeout: 268 seconds) 2018-01-27T16:27:26Z brendyn quit (Ping timeout: 268 seconds) 2018-01-27T16:27:49Z Kevslinger joined #lisp 2018-01-27T16:28:05Z orivej joined #lisp 2018-01-27T16:29:57Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-27T16:30:08Z dieggsy quit (Remote host closed the connection) 2018-01-27T16:31:34Z megachombass: by remplacing 2018-01-27T16:31:38Z megachombass: seems this gives problems 2018-01-27T16:31:40Z megachombass: (defun make-vm (&optional (vm 'vm) (tmem 10000)) ;;ca initialise les "variables" (setf (vm-vm) vm) 2018-01-27T16:31:56Z megachombass: it says *** - EVAL/APPLY: Too few arguments (1 instead of at least 2) given to (SETF VM-VM) 2018-01-27T16:32:05Z dieggsy joined #lisp 2018-01-27T16:32:15Z megachombass: (defun make-vm (&optional (vm 'vm) (tmem 10000)) (setf (vm-vm) vm)) 2018-01-27T16:33:59Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T16:33:59Z megachombass: let me update the state of the code 2018-01-27T16:34:31Z megachombass: https://codeshare.io/GkwJYA 2018-01-27T16:34:44Z red-dot joined #lisp 2018-01-27T16:35:00Z megachombass: if i execute (test 'test') it fks up there 2018-01-27T16:36:36Z megachombass: (test 'test) 2018-01-27T16:36:37Z pjb: megachombass: defstruct also creates a make-vm function. 2018-01-27T16:36:42Z pjb: Try it! 2018-01-27T16:37:13Z megachombass: the thing is i still dont see the functions created as you said 2018-01-27T16:37:21Z megachombass: check the code, thats how my source is 2018-01-27T16:38:14Z pjb: (vm-SP) must be written (vm-SP vm), and (setf (vm-SP vm) (+ (vm-SP vm) 1)) can be written (incf (vm-sp vm)) 2018-01-27T16:38:22Z pjb: megachombass: it's in the macroexpansion! 2018-01-27T16:38:27Z Rawriful joined #lisp 2018-01-27T16:39:02Z megachombass: oh so the functions are created but i can only see them by printing right? 2018-01-27T16:40:03Z pjb: yes. 2018-01-27T16:41:03Z megachombass: then i could wait for years 2018-01-27T16:41:24Z megachombass: well, let me rechange all the (vm-SP) by (vm-SP vm) see if it works 2018-01-27T16:41:45Z pjb: For the simple fields, you can give an initial value in the defstruct form. 2018-01-27T16:42:03Z pjb: For fields needing more complex initialization, you can wrap another constructor: https://codeshare.io/2pzoLX 2018-01-27T16:42:19Z pjb: There are other ways to do it, but for now this will do. 2018-01-27T16:42:59Z scottj quit (Quit: leaving) 2018-01-27T16:44:35Z tkd quit (Ping timeout: 256 seconds) 2018-01-27T16:44:44Z pjb: megachombass: merge resetmemory with make-vm-with-memory-size: https://codeshare.io/2pzoLX 2018-01-27T16:45:35Z turkja quit (Ping timeout: 240 seconds) 2018-01-27T16:46:36Z visof quit (Ping timeout: 256 seconds) 2018-01-27T16:46:44Z rumbler31 joined #lisp 2018-01-27T16:47:08Z tkd joined #lisp 2018-01-27T16:47:10Z pjb: Then: (make-vm-with-memory-size 100) --> #S(vm :r0 0 :r1 0 :r2 0 :r3 0 :pc 99 :lc 99 :sp 100 :fp 0 :dpp 0 :de 0 :dpg 0 :taille 100 :memtab #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) :etiq # :etiqnr #) 2018-01-27T16:47:10Z pjb: 2018-01-27T16:48:05Z pjb: What prints #S(vm …) is the "serializer", the printer function that is defined by defstruct for the structure. This syntax can be read back. (But #< cannot, so you would have to use #.(make-hash-table) instead. 2018-01-27T16:48:35Z megachombass: hum 2018-01-27T16:48:54Z pjb: You need to update the code using make-vm, of course. For example: https://codeshare.io/2pzoLX 2018-01-27T16:50:04Z megachombass: but this suposes that i cant have only 1 vm running 2018-01-27T16:50:16Z megachombass: as you dont name it as a parameter in the new make-vm function 2018-01-27T16:50:42Z pjb: (list (make-vm-with-memory-size 4) (make-vm-with-memory-size 10)) #| --> (#S(vm :r0 0 :r1 0 :r2 0 :r3 0 :pc 3 :lc 3 :sp 100 :fp 0 :dpp 0 :de 0 :dpg 0 :taille 4 :memtab #(0 0 0 0) :etiq # :etiqnr #) #S(vm :r0 0 :r1 0 :r2 0 :r3 0 :pc 9 :lc 9 :sp 100 :fp 0 :dpp 0 :de 0 :dpg 0 :taille 10 :memtab #(0 0 0 0 0 0 0 0 0 0) :etiq # :etiqnr #)) |# 2018-01-27T16:50:48Z pjb: You can have as many VM as you want. 2018-01-27T16:50:56Z pjb: Just call make-vm-with-memory-size again. 2018-01-27T16:51:22Z pjb: make-vm is a constructor, it returns a new VM each time it's called. 2018-01-27T16:51:25Z pjb: make-vm-with-memory-size too. 2018-01-27T16:51:43Z turkja joined #lisp 2018-01-27T16:51:47Z vap1 quit (Quit: Leaving) 2018-01-27T16:52:16Z orivej quit (Ping timeout: 256 seconds) 2018-01-27T16:52:24Z megachombass: oh, indeed 2018-01-27T16:52:33Z megachombass: let me a couple minutes to assimilate what you've wrrient 2018-01-27T16:52:34Z namosca joined #lisp 2018-01-27T16:52:38Z megachombass: written* 2018-01-27T16:52:43Z namosca left #lisp 2018-01-27T16:53:04Z pjb: If you wanted to simulate a multi-processor system, you could even create multiple VM with the same memory! :-) 2018-01-27T16:53:20Z fisxoj joined #lisp 2018-01-27T16:54:04Z pjb: megachombass: notice that the vm-taille field is useless, since (vm-taille vm) == (length (vm-memtab vm)) 2018-01-27T16:54:09Z JonSmith joined #lisp 2018-01-27T16:54:43Z fisxoj quit (Client Quit) 2018-01-27T16:54:48Z pjb: If you need to use it, you can (defun vm-taille (vm) (length (vm-memtab vm))) and remove it from the field. This way you would ensure that it is always automatically the right value. 2018-01-27T16:55:11Z puchacz joined #lisp 2018-01-27T16:56:38Z theBlackDragon joined #lisp 2018-01-27T16:58:41Z megachombass: EVAL/APPLY: Trop d'arguments pour MAKE-VM. 2018-01-27T16:58:56Z megachombass: as you calling make-vm in your make-vm-with size it fks up there 2018-01-27T16:59:04Z JonSmith quit (Ping timeout: 256 seconds) 2018-01-27T17:01:21Z megachombass: but why call make-vm in make-vm-with size if the VM have already default values when creating the struct? 2018-01-27T17:02:55Z milanj quit (Quit: This computer has gone to sleep) 2018-01-27T17:03:18Z jonh joined #lisp 2018-01-27T17:07:22Z megachombass: pjb: also, you're not resetting the memory of the vm in this function 2018-01-27T17:09:51Z eivarv quit (Quit: Sleep) 2018-01-27T17:11:09Z warweasle quit (Quit: Leaving) 2018-01-27T17:11:47Z Arcaelyx joined #lisp 2018-01-27T17:15:21Z megachombass: pjb: hit me up when you're back, since ive literally fked up my source code and cant manage to make coexist your make-vm-with-memory-size with the rest of the code 2018-01-27T17:24:42Z capitaomorte quit (Remote host closed the connection) 2018-01-27T17:25:36Z Oladon joined #lisp 2018-01-27T17:27:20Z EvW1 quit (Ping timeout: 252 seconds) 2018-01-27T17:27:24Z hhdave quit (Ping timeout: 256 seconds) 2018-01-27T17:27:50Z hhdave joined #lisp 2018-01-27T17:30:06Z flip214: does CL-SQL include some function that, given the database structure and two tables A and B, gives a query relating both, even across multiple joins? 2018-01-27T17:30:33Z flip214: I'm aware that such a join might be possible across multiple ways, so returning a list of queries would be okay, too. 2018-01-27T17:31:09Z flip214: The usecase is for some generic web frontend - given a user, show the records that may be accessed (by relations to the user record) 2018-01-27T17:32:19Z flip214: So I guess this would be using CLOS/MOP (or the SQL structure directly) 2018-01-27T17:34:04Z ghast joined #lisp 2018-01-27T17:34:31Z solyd joined #lisp 2018-01-27T17:34:33Z Pixel_Outlaw joined #lisp 2018-01-27T17:34:50Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T17:36:10Z red-dot joined #lisp 2018-01-27T17:36:10Z ghast: hello. sbcl question. is it okay to do (sb-ext:save-lisp-and-die "core") a proper way to get a core file for SBCL ? it seems to fail after loading cl-json into the image 2018-01-27T17:36:23Z phoe: ghast: how does it fail? 2018-01-27T17:37:02Z turkja quit (Ping timeout: 256 seconds) 2018-01-27T17:37:16Z warweasle joined #lisp 2018-01-27T17:37:23Z ghast: where can i paste the output ? 2018-01-27T17:37:36Z flip214: http://quickdocs.org/clsql-orm/ is the sentence "Of course, database-type has to be :postgresql." still true, or are other DBs supported as well? 2018-01-27T17:37:48Z flip214: ghast: paste.net, pastebin.com, etc. 2018-01-27T17:39:31Z ghast: https://pastebin.com/hvgkJ4W4 2018-01-27T17:40:16Z phoe: flip214: a brief look at the source states that there is code for handling several databases 2018-01-27T17:41:05Z flip214: phoe: thanks, I found a clsql-mysql-introspect, too... I'd need something for Oracle, though. 2018-01-27T17:41:13Z flip214: ghast: which SBCL version? 2018-01-27T17:41:26Z ghast: SBCL 1.3.12 2018-01-27T17:42:00Z phoe: ghast: show us a backtrace 2018-01-27T17:42:03Z flip214: hmmm... can you do an upgrade? that's a bit old already, not sure whether someone has that version around to do investigations 2018-01-27T17:42:05Z phoe: and also update to a newer SBCL 2018-01-27T17:42:11Z ghast: how can i give you a backtrace ? 2018-01-27T17:42:37Z phoe: in SBCL error prompt, type BACKTRACE 2018-01-27T17:42:50Z paule32: hello 2018-01-27T17:42:52Z phoe: the debugger should give you a backtrace. 2018-01-27T17:43:20Z paule32: is it possible to make names at runtime? 2018-01-27T17:43:41Z paule32: like: (alias (dotimes (n 11) (gate-and-n)) gate-and) 2018-01-27T17:44:04Z phoe: paule32: I suggest you go to #clnoobs. 2018-01-27T17:44:47Z _death: Shinmera: in elisp an optional parameter cannot take a default value in the arglist 2018-01-27T17:45:25Z pjb: megachombass: EVAL/APPLY: Trop d'arguments pour MAKE-VM. probably comes from the fact that you overrode the make-vm function defined by defstruct! 2018-01-27T17:45:25Z ghast: https://pastebin.com/HVq30F9g 2018-01-27T17:46:07Z phoe: ghast: this is an error in SAVE-LISP-AND-DIE, seems like something very internal to SBCL. 2018-01-27T17:46:10Z phoe: Update, and try again. 2018-01-27T17:46:33Z nyef quit (Ping timeout: 264 seconds) 2018-01-27T17:46:59Z ghast: mmmh, i see. obscure stuff right ? 2018-01-27T17:47:03Z zooey quit (Ping timeout: 255 seconds) 2018-01-27T17:47:08Z phoe: ghast: I have no idea. 2018-01-27T17:47:14Z phoe: If it's a bug in SBCL, then it might already have been fixed. 2018-01-27T17:47:23Z phoe: Therefore, update first, and if it still fails, file a bug ticket on SBCL. 2018-01-27T17:47:59Z megachombass: pjb: yes, i noticed i didnt errase my make-vm. now the thing is, it cant make the hashtables as its says etiq and etiqnr are not symbols: :ETIQ #S(HASH-TABLE :TEST FASTHASH-EQL) :ETIQNR #S(HASH-TABLE :TEST FASTHASH-EQL (NB . 0))) is not a symbol 2018-01-27T17:48:53Z ghast: some weird combination of using cl-json before dumping the image just makes my sbcl go mad. i'll try updating sbcl later and see what happens 2018-01-27T17:49:03Z ghast: perhaps that might fix it. (i hope). 2018-01-27T17:49:07Z phoe: ghast: let's hope so. 2018-01-27T17:49:12Z phoe: if it doesn't, then file a bug ticket. 2018-01-27T17:49:24Z phoe: or rather, ask on #sbcl first. 2018-01-27T17:49:25Z pjb: megachombass: the reason why call make-vm in make-vm-with-memory-size is to allocate the memtab abd the hash-tables. You're right that this can be avoided, but as I said, it would require more sophisticated lisping such as https://codeshare.io/2pzoLX ; but since you're a newbie, I wanted to preset the simplier code. 2018-01-27T17:49:29Z phoe: then file a bug ticket. 2018-01-27T17:50:01Z pjb: megachombass: with that new defstruct, you don't need make-vm-with-memory-size, and instead, you can call (make-vm) for a default size of 1000 or (make-vm 10000) to specify the size. 2018-01-27T17:50:12Z asarch quit (Remote host closed the connection) 2018-01-27T17:50:13Z misv quit (Quit: leaving) 2018-01-27T17:50:19Z ghast: phoe: ok, thanks bro! 2018-01-27T17:50:19Z megachombass: let me see 2018-01-27T17:50:41Z asarch joined #lisp 2018-01-27T17:50:45Z _death: ghast: what is your sbcl version 2018-01-27T17:50:50Z zooey joined #lisp 2018-01-27T17:51:51Z pjb: megachombass: when you have errors saying that a list is not a symbol, it probably comes from an error in the parentheses. 2018-01-27T17:52:24Z _death: ghast: ah, you already mentioned.. an ancient version 2018-01-27T17:53:34Z fikka quit (Ping timeout: 265 seconds) 2018-01-27T17:54:29Z pjb: megachombass: in emacs, you can type C-M-< M-x replace-regexp (get vm :\([a-z0-9]*\)) RET (vm-\1 vm) RET to replace the old calls to the new calls. 2018-01-27T17:54:48Z fikka joined #lisp 2018-01-27T17:55:15Z megachombass: y pretty sure it was a fail with one of my remplacements 2018-01-27T17:55:20Z megachombass: im going to start over again 2018-01-27T17:56:18Z scymtym quit (Ping timeout: 252 seconds) 2018-01-27T17:59:54Z megachombass: says me C-M-< is undefined 2018-01-27T18:00:16Z ghast: ok, it works in the new version :). [solved] 2018-01-27T18:00:24Z Myk267 joined #lisp 2018-01-27T18:01:42Z smurfrobot quit (Remote host closed the connection) 2018-01-27T18:02:43Z zazzerino: megachombass: try shift+alt+< then M-x replace-regexp ... 2018-01-27T18:05:03Z fikka quit (Ping timeout: 256 seconds) 2018-01-27T18:05:35Z zazzerino: or actually, C-x h would be better 2018-01-27T18:06:09Z zazzerino: it should select the entire buffer, then you can run M-x replace-regexp ... on the selected region 2018-01-27T18:06:16Z eivarv joined #lisp 2018-01-27T18:07:22Z megachombass: ok so i try again 2018-01-27T18:07:33Z megachombass: i select the whole buffer 2018-01-27T18:07:36Z pjb: megachombass: https://codeshare.io/2pzoLX 2018-01-27T18:08:00Z pjb: You need to replace the last (get vm …) which are used to get and set slots by name. 2018-01-27T18:08:22Z fikka joined #lisp 2018-01-27T18:08:26Z pjb: cf. the property and (setf property) functions. 2018-01-27T18:09:15Z pjb: megachombass: when you launch emacs, it tells you to read the tutorial by typing Control-h t. In the tutorial, you will learn what C-M-< means. 2018-01-27T18:09:44Z megachombass: c-m-< is control+alt+< ? 2018-01-27T18:10:19Z pjb: No, not on my keyboard. 2018-01-27T18:10:29Z pjb: My keyboard distinguishes Meta- from Alt-. 2018-01-27T18:10:57Z pjb: In emacs, key chords are given symbolically, because the actual mapping vary and is configurable. 2018-01-27T18:11:26Z pjb: For example, you could have to type Escape, Control-Shift-comma for C-M-< 2018-01-27T18:12:13Z megachombass: hum 2018-01-27T18:12:29Z pjb: The truth is that is the command: beginning-of-buffer You can run this command by typing: M-x beginning-of-buffer RET 2018-01-27T18:12:36Z megachombass: well alt+x opens the command 2018-01-27T18:12:43Z pjb: then emacs would tell you what keychord could be used (in the minibuffer). 2018-01-27T18:12:45Z megachombass: there i can type replace-regexp 2018-01-27T18:12:58Z megachombass: then i guess i can put (get vm :\([a-z0-9]*\)) RET (vm-\1 vm) 2018-01-27T18:12:59Z pjb: you can also ask it with C-h w 2018-01-27T18:13:18Z pjb: C-h w beginning-of-buffer RET or read the whole documentation with C-h f beginning-of-buffer RET 2018-01-27T18:13:32Z pjb: yes 2018-01-27T18:14:39Z nika quit (Quit: Leaving...) 2018-01-27T18:15:37Z megachombass: http://prntscr.com/i6f42q 2018-01-27T18:15:51Z megachombass: seems he wants to replace (get vm :\([a-z0-9]*\)) RET (vm-\1 vm) RET with something 2018-01-27T18:15:58Z fikka quit (Ping timeout: 268 seconds) 2018-01-27T18:16:07Z ghast left #lisp 2018-01-27T18:16:30Z pjb: megachombass: what the tutorial told you about "RET" ? 2018-01-27T18:18:28Z fikka joined #lisp 2018-01-27T18:18:48Z megachombass: i cant even open the tutorial jesus 2018-01-27T18:18:52Z megachombass: wait a sec i reopen everything 2018-01-27T18:19:09Z megachombass: as C+g doesnt put me back on my code 2018-01-27T18:19:24Z zazzerino: pjb: you are truly a saint 2018-01-27T18:19:43Z pjb: megachombass: I said: Control-h t 2018-01-27T18:20:11Z megachombass: it opens me the todolist 2018-01-27T18:21:44Z megachombass: i guess the todo list isnt the tutorial 2018-01-27T18:22:07Z pjb: It should open the tutorial. 2018-01-27T18:22:32Z pjb: instead you can type: M-x emacs-tutorial RET 2018-01-27T18:23:06Z Myk267 quit (Quit: Leaving) 2018-01-27T18:23:12Z megachombass: and thing is this todo list overrides my source code, and dont know how to go backwards 2018-01-27T18:23:30Z pjb: Well, RET is not mentionned in the tutorial apparently. 2018-01-27T18:23:42Z pjb: It means: "press the Return key". 2018-01-27T18:24:21Z solyd quit (Ping timeout: 264 seconds) 2018-01-27T18:24:29Z megachombass: oh 2018-01-27T18:24:30Z megachombass: so 2018-01-27T18:24:31Z pjb: megachombass: you can manipulate windows with C-x 1, C-x 2, C-x 3, C-x 0, C-x o and C-x B and C-x b 2018-01-27T18:24:56Z pjb: C-u C-x C-o is also useful when you have more than 2 windows open. 2018-01-27T18:26:34Z nowhere_man joined #lisp 2018-01-27T18:26:55Z Karl_Dscc joined #lisp 2018-01-27T18:27:27Z megachombass: so 2018-01-27T18:27:39Z megachombass: i select everything with C-x h 2018-01-27T18:27:58Z megachombass: open command line with M-x 2018-01-27T18:28:05Z megachombass: i type replace regex 2018-01-27T18:28:05Z megachombass: done 2018-01-27T18:28:13Z megachombass: it ask me what i want to replace 2018-01-27T18:28:27Z megachombass: i type in (get vm :\([a-z0-9]*\)) 2018-01-27T18:28:33Z megachombass: but if i press return 2018-01-27T18:28:40Z megachombass: obviousy it deletes my last character 2018-01-27T18:28:51Z megachombass: i doubt that's what i want to do 2018-01-27T18:30:23Z pjb: Then it asks for the replacement. 2018-01-27T18:30:28Z pjb: (vm-\1 vm) 2018-01-27T18:31:10Z megachombass: nvm 2018-01-27T18:31:13Z megachombass: return= enter 2018-01-27T18:31:59Z fikka quit (Ping timeout: 248 seconds) 2018-01-27T18:32:34Z megachombass: 86 ocurrencies 2018-01-27T18:32:53Z megachombass: ok ok, now atleast i know how to remplace with regular expresions with emacs 2018-01-27T18:33:16Z pjb: But now if you search for (get vm you will see that there remains 3 of them. 2018-01-27T18:33:27Z megachombass: im really gonna learn more about emacs and lisp after my project. i just cant accept to feel so dumb 2018-01-27T18:33:38Z pjb: megachombass: to search use C-s 2018-01-27T18:33:45Z pjb: C-s (get vm RET 2018-01-27T18:34:05Z pjb: Then C-s C-s etc to skip to the following occurences. 2018-01-27T18:36:13Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T18:36:28Z fikka joined #lisp 2018-01-27T18:37:33Z red-dot joined #lisp 2018-01-27T18:37:49Z megachombass: yep 2018-01-27T18:37:56Z megachombass: so i still have 3 ocurrencies 2018-01-27T18:38:22Z scymtym joined #lisp 2018-01-27T18:38:27Z smurfrobot joined #lisp 2018-01-27T18:38:38Z pjb: megachombass: check the property and (setf property) functions in the paste. 2018-01-27T18:38:51Z pjb: megachombass: you can replace those get with property. 2018-01-27T18:39:24Z megachombass: noticed you've forgoten BP each time 2018-01-27T18:39:30Z rumbler31 quit (Remote host closed the connection) 2018-01-27T18:39:31Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-27T18:40:50Z pjb: megachombass: you forgot it too, since I copy/pasted… 2018-01-27T18:40:56Z pjb: Add whatever you want. 2018-01-27T18:41:11Z megachombass: i maybe forgot it to then, my bad 2018-01-27T18:41:15Z megachombass: well one sec 2018-01-27T18:41:41Z pjb: It's important to keep all the definition relevant to a single abstraction together, so you can easily keep consistency, when you make such modifications. 2018-01-27T18:43:00Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-27T18:43:31Z megachombass: so (get vm adr) becompes (proprety (vm adr)) ? 2018-01-27T18:44:11Z pjb: (property vm adr) 2018-01-27T18:44:28Z pjb: the property function takes 2 arguments. Why are you trying to pass only 1? 2018-01-27T18:44:42Z megachombass: oh yes 2018-01-27T18:44:58Z megachombass: so used to call a function like fun(x,y) as in other languages 2018-01-27T18:45:20Z fikka quit (Ping timeout: 260 seconds) 2018-01-27T18:46:17Z fikka joined #lisp 2018-01-27T18:46:20Z easieste joined #lisp 2018-01-27T18:47:19Z smurfrobot joined #lisp 2018-01-27T18:48:02Z megachombass: okey, so let me update current code 2018-01-27T18:48:33Z megachombass: https://codeshare.io/GkwJYA 2018-01-27T18:48:39Z megachombass: i have the same error as before 2018-01-27T18:48:51Z megachombass: :ETIQ #S(HASH-TABLE :TEST FASTHASH-EQL (FIBO . 9999)) :ETIQNR #S(HASH-TABLE :TEST FASTHASH-EQL (NB . 0))> is not a symbol 2018-01-27T18:49:35Z megachombass: i have to rechange my useless functions and use first second etc 2018-01-27T18:51:57Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-27T18:54:54Z easieste quit (Quit: easieste) 2018-01-27T18:56:13Z drewc joined #lisp 2018-01-27T18:58:40Z drewc_ quit (Ping timeout: 248 seconds) 2018-01-27T19:00:29Z EvW joined #lisp 2018-01-27T19:03:42Z pjb` joined #lisp 2018-01-27T19:04:10Z pjb quit (Ping timeout: 240 seconds) 2018-01-27T19:06:15Z fikka quit (Ping timeout: 256 seconds) 2018-01-27T19:06:22Z pjb`: megachombass: perhaps you have old code in the image that's interfering. 2018-01-27T19:06:31Z pjb`: megachombass: try to reboot your lisp. 2018-01-27T19:06:34Z pjb` is now known as pjb 2018-01-27T19:06:37Z omilu joined #lisp 2018-01-27T19:06:45Z megachombass: going to try 2018-01-27T19:06:50Z fikka joined #lisp 2018-01-27T19:06:59Z makomo: megachombass: how long until the deadline? 2018-01-27T19:07:01Z warweasle quit (Quit: Leaving) 2018-01-27T19:07:10Z megachombass: tomorrow midnight 2018-01-27T19:07:35Z makomo: hah, i also have a deadline on that exact date 2018-01-27T19:07:54Z megachombass: for the same thing? 2018-01-27T19:07:56Z makomo: but since i'm in a team with another guy and we split our work, it's his worry 2018-01-27T19:08:17Z makomo: hm, well, almost. it's also compiler-related 2018-01-27T19:08:21Z makomo: but it's a simple C-like language 2018-01-27T19:08:42Z makomo: i wrote the semantic analyzer last time, he's writing the codegen today 2018-01-27T19:09:18Z megachombass: pjb: on fresh Clisp. i load the file, then (test) and still same eror 2018-01-27T19:09:40Z pjb: Try: (compile-file "your-file.lisp") and see if you get compilation errors. 2018-01-27T19:10:13Z megachombass: 0 error 38 warningsq 2018-01-27T19:10:29Z shifty joined #lisp 2018-01-27T19:10:29Z Myk267 joined #lisp 2018-01-27T19:10:30Z pjb: Correct all those warnings. 2018-01-27T19:10:57Z pjb: Using the ccl compiler, I get more serious errors, on your file. 2018-01-27T19:11:27Z megachombass: hum 2018-01-27T19:11:35Z fikka quit (Ping timeout: 260 seconds) 2018-01-27T19:11:42Z megachombass: hence the old version was working, was returning 5 2018-01-27T19:11:45Z megachombass: wich is fibo of 5 2018-01-27T19:13:20Z fikka joined #lisp 2018-01-27T19:15:45Z atgreen quit (Quit: atgreen) 2018-01-27T19:15:57Z pjb: This is why it's important to have a test! :-) 2018-01-27T19:15:57Z pjb: 2018-01-27T19:16:09Z pjb: So now you know there's a regression, and you need to debug the modifications. 2018-01-27T19:16:18Z atgreen joined #lisp 2018-01-27T19:16:21Z pjb: How many warnings remaining? 2018-01-27T19:16:25Z atgreen quit (Client Quit) 2018-01-27T19:16:41Z megachombass: brb in 20 mins 2018-01-27T19:17:04Z makomo: can very much agree with what pjb said, having a test suite to run after you make a change is great 2018-01-27T19:19:23Z smurfrobot joined #lisp 2018-01-27T19:23:26Z cryptomarauder: any lisp blockchains yet? 2018-01-27T19:23:55Z cryptomarauder: lispchains 2018-01-27T19:24:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-27T19:24:44Z gilez joined #lisp 2018-01-27T19:25:08Z dented42 joined #lisp 2018-01-27T19:26:43Z zazzerino: sure, the beautifully named "Scheme Coin". https://gist.github.com/BusFactor1Inc/8a4dd842fdab81d84cfa8138a56b1725 2018-01-27T19:27:40Z ebzzry quit (Ping timeout: 240 seconds) 2018-01-27T19:30:15Z fikka quit (Ping timeout: 260 seconds) 2018-01-27T19:30:35Z zazzerino: Also, there's a list dialect that targets the ethereum platform. It's called "Pyramid Scheme". http://www.michaelburge.us/2017/11/28/write-your-next-ethereum-contract-in-pyramid-scheme.html 2018-01-27T19:30:43Z stylewarning: billstclair wrote a nice ledger program 2018-01-27T19:31:13Z random-nick quit (Quit: quit) 2018-01-27T19:37:07Z Folkol joined #lisp 2018-01-27T19:37:32Z smurfrobot joined #lisp 2018-01-27T19:37:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T19:38:10Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-27T19:38:54Z red-dot joined #lisp 2018-01-27T19:39:26Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-27T19:41:21Z rumbler31 joined #lisp 2018-01-27T19:43:05Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-27T19:49:18Z Admin_ joined #lisp 2018-01-27T19:50:52Z megachombass: im back 2018-01-27T19:50:58Z megachombass: time to fix all those warnings 2018-01-27T19:52:28Z windblow quit (Ping timeout: 265 seconds) 2018-01-27T19:55:09Z kamog quit (Quit: Leaving.) 2018-01-27T19:58:53Z fikka joined #lisp 2018-01-27T19:59:52Z kini quit (Quit: No Ping reply in 180 seconds.) 2018-01-27T20:01:48Z damke_ joined #lisp 2018-01-27T20:02:14Z kini joined #lisp 2018-01-27T20:02:23Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-27T20:03:32Z fikka quit (Ping timeout: 252 seconds) 2018-01-27T20:03:47Z arbv quit (Ping timeout: 276 seconds) 2018-01-27T20:04:33Z damke quit (Ping timeout: 263 seconds) 2018-01-27T20:05:39Z arbv joined #lisp 2018-01-27T20:06:25Z nowhere_man quit (Quit: Konversation terminated!) 2018-01-27T20:06:33Z nowhere_man joined #lisp 2018-01-27T20:07:54Z easieste joined #lisp 2018-01-27T20:08:20Z igemnace quit (Ping timeout: 256 seconds) 2018-01-27T20:10:03Z ebrasca: megachombass: Your code has strange parentesis colocations. 2018-01-27T20:10:23Z easieste quit (Client Quit) 2018-01-27T20:12:22Z Amplituhedron joined #lisp 2018-01-27T20:12:59Z eschatologist joined #lisp 2018-01-27T20:13:42Z borei joined #lisp 2018-01-27T20:15:33Z mlf joined #lisp 2018-01-27T20:15:37Z borei: hi all 2018-01-27T20:15:44Z phoe: hey Borei 2018-01-27T20:15:46Z phoe: I mean 2018-01-27T20:15:47Z phoe: hey borei 2018-01-27T20:15:51Z borei: :-) 2018-01-27T20:15:53Z phoe: (: 2018-01-27T20:16:48Z Admin_ quit (Quit: Admin_) 2018-01-27T20:17:41Z borei: i have quick question abt function naming. Does lisp provide some sort of function overload (like it's done in C++ - one name, but different signature). I can achive this functionality using &rest and &key options, but it will require to create some additional logic in the function itself 2018-01-27T20:17:59Z phoe: borei: no. 2018-01-27T20:18:04Z phoe: #'FOO is always #'FOO. 2018-01-27T20:18:12Z megachombass: pjb: well, ive got ride of almost all warnings . one reduntant it says WARNING: in EXEC in lines 109..144 : CASE : Le choix QUOTE se répète: (CASE INSTRUCT ('MOVE (MOVE VM PARAMETRE PARAMETRE2)) ('INCR (OPERATIONVM VM '+ '(:DIESE 1) PARAMETRE)) ('DECR (OPERATIONVM VM '- '(:DIESE 1) PARAMETRE)) ('ADD (OPERATIONVM VM '+ PARAMETRE PARAMETRE2)) ..........etc 2018-01-27T20:18:27Z phoe: if anything, you have the generic function mechanism. 2018-01-27T20:18:27Z atgreen joined #lisp 2018-01-27T20:18:59Z phoe: also, in Lisp, you can pass an argument of any type to a function - that's the "ultimate" function overloading. 2018-01-27T20:19:13Z borei: true 2018-01-27T20:19:22Z phoe: If you want efficiency, you can use compiler macros, that can check types at compile-time and generate more efficient code for known types. 2018-01-27T20:19:32Z phoe: that's another kind of function overloading. 2018-01-27T20:19:46Z phoe: and generic dispatch, which is yet another, object-oriented way of function overloading. 2018-01-27T20:20:08Z phoe: in other words: Lisp can't overload functions because it has nothing to overload. 2018-01-27T20:20:20Z borei: hmm 2018-01-27T20:20:34Z phoe: &key and &rest are yet another way of overloading, this time with relation to argument arity. 2018-01-27T20:21:18Z borei: ok, here is example - function translate, it can take one argument r (as a vector), or x, ,y ,z - numbers 2018-01-27T20:21:40Z borei: what would be "lispiest" approach ? 2018-01-27T20:21:46Z megachombass: Pjb: code with almost all warnings removed https://codeshare.io/GkwJYA 2018-01-27T20:21:54Z tokik quit (Quit: leaving) 2018-01-27T20:22:21Z solyd joined #lisp 2018-01-27T20:22:33Z solyd quit (Client Quit) 2018-01-27T20:23:22Z phoe: borei: IMO, make #'translate accept a sequence 2018-01-27T20:23:26Z pjb: megachombass: there are still those problems: https://codeshare.io/GAQKR8 2018-01-27T20:23:37Z pjb: megachombass: (detected by ccl). 2018-01-27T20:23:39Z phoe: and then call (translate vector) or (translate (list x y z)) 2018-01-27T20:24:18Z megachombass: In exec: Duplicate keyform quote in case statement. this one i dont see whats the problem. seems he think the case is the same 2018-01-27T20:24:25Z megachombass: because they all start with ' 2018-01-27T20:25:02Z phoe: borei: with a compiler macro for most optimized cases, like an argument of type (simple-array (unsigned-byte 8) (3)) 2018-01-27T20:25:30Z fikka joined #lisp 2018-01-27T20:25:32Z phoe: or vector of double-floats 2018-01-27T20:25:40Z phoe: or whatever else you expect to put into that function 2018-01-27T20:26:16Z borei: ok, ic 2018-01-27T20:27:31Z borei: tks for heads-up ! 2018-01-27T20:27:36Z aeth: There is a library 2018-01-27T20:28:04Z varjag joined #lisp 2018-01-27T20:28:18Z phoe: aeth: ? 2018-01-27T20:28:21Z aeth: If you're using a supported implementation you can use specialization-store to do type-based dispath that handles types at compile time. https://github.com/markcox80/specialization-store/ 2018-01-27T20:28:56Z aeth: Obviously it just uses macros, but it's macros you don't have to write. 2018-01-27T20:29:44Z megachombass: pjb: https://codeshare.io/GkwJYA so, this should only give the the quote error duplicate and the setf's 2018-01-27T20:29:52Z megachombass: hence i dont know how to fix those two 2018-01-27T20:32:52Z aeth: s/dispath/dispatch/ 2018-01-27T20:33:20Z vlatkoB quit (Remote host closed the connection) 2018-01-27T20:34:05Z pjb: megachombass: remove the quotes! In exec, ('move -> (move etc. 2018-01-27T20:34:28Z pjb: megachombass: or ((move) …) instead of ('move …) 2018-01-27T20:35:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-27T20:35:24Z pjb: megachombass: it's better to write ((move) …) because if you wanted to test for nil, you would have to put the parentheses ((nil) …) since nil is the same as () and (nil …) would be (() …) ie. an empty list of constant, so the … would never be evaluated. 2018-01-27T20:36:16Z megachombass: i understand 2018-01-27T20:36:30Z megachombass: and now i have the setf problems 2018-01-27T20:36:38Z megachombass: seems its not the correct way to setf a variable 2018-01-27T20:38:28Z eschatologist quit (Quit: ZNC 1.6.5+deb2build2 - http://znc.in) 2018-01-27T20:38:33Z pjb: megachombass: you need to declare the variable! 2018-01-27T20:38:46Z pjb: Use let (let (fibo1 fibo2) … (setf fibo1 …) …) 2018-01-27T20:38:51Z megachombass: but setf doesnt declare it implicitly? 2018-01-27T20:38:59Z pjb: Nope. 2018-01-27T20:39:32Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T20:40:26Z red-dot joined #lisp 2018-01-27T20:41:22Z fikka joined #lisp 2018-01-27T20:42:07Z megachombass: okey 2018-01-27T20:42:09Z megachombass: 0 warnings now 2018-01-27T20:42:20Z arbv quit (Ping timeout: 256 seconds) 2018-01-27T20:42:38Z megachombass: https://codeshare.io/GkwJYA still have the error 2018-01-27T20:43:41Z arbv joined #lisp 2018-01-27T20:44:41Z Shinmera: _death: Oh. Welp. 2018-01-27T20:45:31Z nyef joined #lisp 2018-01-27T20:45:51Z zazzerino quit (Remote host closed the connection) 2018-01-27T20:46:04Z fikka quit (Ping timeout: 252 seconds) 2018-01-27T20:46:43Z megachombass: pjb: :ETIQ #S(HASH-TABLE :TEST FASTHASH-EQL (FIBO . 9999)) :ETIQNR #S(HASH-TABLE :TEST FASTHASH-EQL (NB . 0))> is not a symbol 2018-01-27T20:46:48Z puchacz quit (Quit: Konversation terminated!) 2018-01-27T20:48:19Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-27T20:50:00Z eschatologist joined #lisp 2018-01-27T20:50:16Z arbv quit (Ping timeout: 256 seconds) 2018-01-27T20:50:42Z arbv joined #lisp 2018-01-27T20:52:25Z Shinmera: _death: Fixed 2018-01-27T20:54:10Z pjb: megachombass: ok. So now apply the instructions in the debugging tutorial I gave you 3 days ago. 2018-01-27T20:54:51Z pjb: megachombass: you still have the link, right? 2018-01-27T20:56:56Z smurfrobot joined #lisp 2018-01-27T20:57:40Z arbv quit (Ping timeout: 240 seconds) 2018-01-27T20:58:00Z solyd joined #lisp 2018-01-27T20:58:01Z megachombass: nope 2018-01-27T20:58:09Z megachombass: if you still have it somewhere 2018-01-27T20:59:41Z arbv joined #lisp 2018-01-27T21:00:09Z Achylles quit (Quit: Leaving) 2018-01-27T21:00:47Z dieggsy quit (Remote host closed the connection) 2018-01-27T21:01:01Z pjb: megachombass: https://cliki.net/TutorialClispDebugger 2018-01-27T21:01:59Z pjb: megachombass: so, with clisp the debugger works better on interpreted code. 2018-01-27T21:02:16Z pjb: So while it may be useful to use compile-file to check for more errors, 2018-01-27T21:02:33Z pjb: you will have to reload the source file (load "foo.lisp") before debugging. 2018-01-27T21:03:49Z pjb: megachombass: in your case, since you have a VM with a big vector, you may want to (setf *print-length* 10) so that it doesn't prints thousands of 0s from your memtab. 2018-01-27T21:04:25Z Karl_Dscc quit (Remote host closed the connection) 2018-01-27T21:04:33Z dddddd quit (Remote host closed the connection) 2018-01-27T21:04:53Z arbv quit (Ping timeout: 276 seconds) 2018-01-27T21:05:11Z arbv joined #lisp 2018-01-27T21:05:24Z pjb: megachombass: so, have you found the bug? 2018-01-27T21:05:59Z megachombass: trying to 2018-01-27T21:06:15Z fikka joined #lisp 2018-01-27T21:11:21Z megachombass: https://pastebin.com/61MNz2R7 2018-01-27T21:11:25Z megachombass: so there is my backtrace 2018-01-27T21:11:30Z megachombass: in the tutorial 2018-01-27T21:11:38Z megachombass: it says instantly wich functions fks up 2018-01-27T21:12:05Z megachombass: oh no wait 2018-01-27T21:12:11Z megachombass: okey let me read again the tutorial 2018-01-27T21:13:19Z pjb: megachombass: on line 27 you see the function move. 2018-01-27T21:13:30Z pjb: on line 23 it is called with the function apply 2018-01-27T21:13:42Z pjb: on line 19 you see the evaluation of the body of move. 2018-01-27T21:13:49Z pjb: the problem is in move. 2018-01-27T21:14:28Z pjb: When you read the source of move, you see that you've left an occurence of GET: (setf (get vm adr) res) 2018-01-27T21:14:51Z pjb: vm is a VM structure. GET expects a symbol. Hence the type-error. 2018-01-27T21:14:52Z Folkol joined #lisp 2018-01-27T21:15:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-27T21:15:42Z pjb: you see the call to system::%put on lines 13 and 14. 2018-01-27T21:16:24Z nydel joined #lisp 2018-01-27T21:16:45Z _death: Shinmera: cool, thx 2018-01-27T21:16:46Z megachombass: well the error was indeed that 2018-01-27T21:17:00Z megachombass: but i dont know how you can figure out that move was the problem on that backtrace 2018-01-27T21:17:07Z Folkol quit (Client Quit) 2018-01-27T21:17:07Z Shinmera: _death: I assume that optional argument mishap I introduced wasn't what confused you initially though, so to ask again: what was confusing about plaster-new? 2018-01-27T21:17:15Z pjb: because it's the first user function that appears on the stack! 2018-01-27T21:17:48Z pjb: line 28, not line 27. 2018-01-27T21:17:54Z megachombass: oh so all other is system functions, so i dont have to take care bout it 2018-01-27T21:17:59Z borei: hmm, can't find how to inforce type(s) for function parameters, except declare 2018-01-27T21:18:22Z megachombass: and then, i have to find first function written by me to see whats going on 2018-01-27T21:18:24Z borei: or it's only option ? 2018-01-27T21:18:25Z |3b|: clhs check-type 2018-01-27T21:18:25Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_check_.htm 2018-01-27T21:18:25Z Shinmera: borei: Declare does the opposite of enforcing. 2018-01-27T21:18:27Z pjb: megachombass: the last system function gives you a hint, it's system::%put, if you know that it's what's called when you use (setf gethash). 2018-01-27T21:18:37Z pjb: yes. 2018-01-27T21:18:43Z Shinmera: borei: Declare promises to the compiler that the variable will have that specific type. if it does not the program can burn your house down. 2018-01-27T21:19:15Z megachombass: okey okey 2018-01-27T21:19:21Z megachombass: now, i know to debug 2018-01-27T21:19:24Z megachombass: im progressing 2018-01-27T21:19:54Z pjb: (progn (check-type i integer) (cond ((< i 10) (throw 'done)) ((> i 15) (quit))) (locally (declare (i (integer 10 15))) (foo i))) 2018-01-27T21:20:14Z smurfrobot quit (Remote host closed the connection) 2018-01-27T21:20:49Z zazzerino joined #lisp 2018-01-27T21:20:50Z _death: Shinmera: the first time I tried it, it put up a buffer but I entered "lisp" for type, I missed the C-x C-s message and tried to use C-c C-c (which is what I'd expect).. I think I did end up submitting the entry somehow, but because the type was nonexistent it failed, and the second time I tried to use it, it didn't go the same way (I wasn't presented with an empty buffer) and so I resorted to using the paste-region function 2018-01-27T21:21:03Z gilez quit (Ping timeout: 248 seconds) 2018-01-27T21:21:32Z nydel quit (Read error: Connection reset by peer) 2018-01-27T21:21:46Z dieggsy joined #lisp 2018-01-27T21:21:56Z Shinmera: _death: I see. Why would you expect C-c C-c? 2018-01-27T21:21:59Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-01-27T21:24:37Z _death: Shinmera: C-c C-c -> submit and C-c C-k -> cancel is what I'm used to from writing mails.. magit also used to have these bindings, though it changed submit (in the commit message buffer) to C-x # at some point.. 2018-01-27T21:24:57Z Shinmera: _death: Ah. I avoided C-c C-c because in code buffers it usually means compile. 2018-01-27T21:25:10Z Shinmera: And I wanted to preserve that for when you're looking at a paste. 2018-01-27T21:25:52Z fikka joined #lisp 2018-01-27T21:27:16Z rumbler31 quit (Remote host closed the connection) 2018-01-27T21:30:50Z fikka quit (Ping timeout: 268 seconds) 2018-01-27T21:30:53Z arbv quit (Ping timeout: 276 seconds) 2018-01-27T21:31:45Z aeth: borei: declare behaves like check-type in SBCL when safety != 0 and assumes types when safety == 0. It is slightly smaller in disassembly because it doesn't let you replace the value with a valid value iirc. It might assume the type at all safety levels in some implementations. It looks like CCL ignores it and ECL ignores it. This would be hard to test on all implementations, though, because some might behave differently at different optimi 2018-01-27T21:32:13Z aeth: might behave differently at different optimization levels, like SBCL. 2018-01-27T21:32:14Z arbv joined #lisp 2018-01-27T21:36:07Z _mjl joined #lisp 2018-01-27T21:36:35Z aeth: (It's also possible that they might behave differently at the REPL than with a compiled file, too.) 2018-01-27T21:38:48Z Shinmera: Regardless of what the implementation does, you should /NOT/ use declare to check types. 2018-01-27T21:39:04Z Shinmera: It's not about what it does, it's about what it's designed for and what it reads as. 2018-01-27T21:39:14Z Shinmera: A declaration is a promise, not a check. 2018-01-27T21:40:19Z stylewarning: I tried to implement this type of behavior with WITH-EXPECTATIONS https://bitbucket.org/tarballs_are_good/policy-cond 2018-01-27T21:40:35Z stylewarning: It’ll turn on/off checking depending on policy you set 2018-01-27T21:40:57Z _mjl quit (Ping timeout: 256 seconds) 2018-01-27T21:41:01Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T21:41:02Z pjb: declare is to give information to the compiler, so it may perform type inference. 2018-01-27T21:41:20Z aeth: It definitely looks like there's three possibilities: (1) declaration ignored, (2) declaration checked, (3) declaration assumed. SBCL with (not (zeorp safety)) seems to offer #2, #1 seems to be the most common, and #3 is the risky thing you definitely do NOT want to happen but that could happen. 2018-01-27T21:41:21Z Xach: with-great-responsibility 2018-01-27T21:41:32Z stylewarning: Xach: :D 2018-01-27T21:41:56Z red-dot joined #lisp 2018-01-27T21:41:58Z Shinmera: aeth: Again it doesn't matter. For readability alone you should not use declarations for type checks. 2018-01-27T21:41:59Z aeth: Even with SBCL, I think #1 happens if the function is inline iirc 2018-01-27T21:42:12Z pjb: For example, in (let ((x (foo))) (declare x integer) (+ x 1)) you're telling the compiler that foo returns an integer. So that the + in (+ x 1) can perform integer addition without testing whether x is a ratio, a floating point or a complex, and without signaling a type error for something else. 2018-01-27T21:42:37Z pjb: But if foo returns something else than an integer, then you've LIED to the compiler and it will crash, like a vulgar C program! 2018-01-27T21:43:35Z aeth: Possibly. 2018-01-27T21:43:45Z pjb: On the other hand, in (let ((x (foo))) (check-type x integer) (+ x 1)) foo can return anything. But check-type will ensure that x is an integer after it's executed. Then the compiler can make the same assuption, but now, if foo returns something else than n integer, check-type will interact with the user to ensure that x is an integer or signal a type-error. 2018-01-27T21:44:01Z pjb: check-type is much better! 2018-01-27T21:45:23Z solyd quit (Quit: solyd) 2018-01-27T21:46:08Z Kevslinger joined #lisp 2018-01-27T21:46:11Z stylewarning: I feel like advanced users of Lisp in #lisp all too often reiterate basic facts about Lisp to one another, without actually intending to convey or share info about Lisp, but rather to just (re)broadcast facts that are easy to be opinionated about. 2018-01-27T21:46:25Z stylewarning: (: 2018-01-27T21:46:40Z fikka joined #lisp 2018-01-27T21:47:16Z nirved quit (Quit: Leaving) 2018-01-27T21:47:30Z Bike: is that an example of itself? is this an example? sociologists haven't yet worked it out 2018-01-27T21:48:44Z rumbler31 joined #lisp 2018-01-27T21:49:15Z Shinmera: stylewarning: It's a matter of opinion, but mine is right 2018-01-27T21:51:25Z rumbler31 quit (Remote host closed the connection) 2018-01-27T21:52:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-27T21:56:50Z orivej joined #lisp 2018-01-27T21:57:17Z Murii quit (Quit: WeeChat 1.4) 2018-01-27T22:00:26Z smurfrobot joined #lisp 2018-01-27T22:01:32Z atgreen quit (Remote host closed the connection) 2018-01-27T22:02:20Z eivarv quit (Quit: Sleep) 2018-01-27T22:02:47Z shrdlu68 quit (Quit: Lost terminal) 2018-01-27T22:03:19Z BitPuffin quit (Remote host closed the connection) 2018-01-27T22:05:04Z mishoo quit (Ping timeout: 256 seconds) 2018-01-27T22:08:07Z fikka joined #lisp 2018-01-27T22:08:10Z shka_ quit (Ping timeout: 240 seconds) 2018-01-27T22:11:45Z eivarv joined #lisp 2018-01-27T22:15:32Z shifty quit (Ping timeout: 265 seconds) 2018-01-27T22:16:09Z windblow joined #lisp 2018-01-27T22:16:27Z smurfrobot quit (Remote host closed the connection) 2018-01-27T22:18:06Z fikka quit (Ping timeout: 256 seconds) 2018-01-27T22:22:21Z warweasle joined #lisp 2018-01-27T22:23:23Z Folkol joined #lisp 2018-01-27T22:24:20Z pjb quit (Ping timeout: 256 seconds) 2018-01-27T22:26:27Z hhdave quit (Ping timeout: 240 seconds) 2018-01-27T22:27:34Z hhdave joined #lisp 2018-01-27T22:31:06Z pjb joined #lisp 2018-01-27T22:32:08Z gilez joined #lisp 2018-01-27T22:32:51Z fikka joined #lisp 2018-01-27T22:35:10Z epony quit (Read error: Connection reset by peer) 2018-01-27T22:35:41Z epony joined #lisp 2018-01-27T22:37:05Z smurfrobot joined #lisp 2018-01-27T22:37:46Z jmercouris joined #lisp 2018-01-27T22:38:30Z jmercouris: pjb: Did you guys succeed in the assignment? 2018-01-27T22:42:31Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T22:43:20Z red-dot joined #lisp 2018-01-27T22:45:23Z wxie joined #lisp 2018-01-27T22:46:15Z wxie quit (Remote host closed the connection) 2018-01-27T22:49:40Z pjb quit (Ping timeout: 240 seconds) 2018-01-27T22:53:27Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-27T22:54:14Z smasta joined #lisp 2018-01-27T22:54:48Z Kyo9142 joined #lisp 2018-01-27T22:55:00Z nowhere_man joined #lisp 2018-01-27T22:55:14Z marusich joined #lisp 2018-01-27T22:55:36Z pjb joined #lisp 2018-01-27T22:57:01Z Kyo9142 is now known as Kyo91` 2018-01-27T22:57:15Z Kyo91` quit (Client Quit) 2018-01-27T22:57:53Z Kyo91 joined #lisp 2018-01-27T22:57:54Z pjb: jmercouris: last message was: im progressing 2018-01-27T22:58:25Z warweasle quit (Read error: Connection reset by peer) 2018-01-27T22:58:49Z warweasle joined #lisp 2018-01-27T22:59:06Z fisxoj joined #lisp 2018-01-27T22:59:16Z jmercouris: Hmm, well, hopefully he'll have some good luck 2018-01-27T22:59:26Z jmercouris: We all make mistakes in this life 2018-01-27T23:00:09Z warweasle quit (Client Quit) 2018-01-27T23:01:25Z pagnol joined #lisp 2018-01-27T23:02:17Z ebrasca` joined #lisp 2018-01-27T23:02:40Z damke joined #lisp 2018-01-27T23:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-27T23:04:53Z ebrasca quit (Remote host closed the connection) 2018-01-27T23:05:20Z jmercouris: Anyone familar with cl-who? http://weitz.de/cl-who/ 2018-01-27T23:05:29Z jmercouris: I'm getting extra spaces in some html generation, and I can't understand why 2018-01-27T23:06:52Z jmercouris: here's a small snippet illustrating: https://gist.github.com/5cbceb59e8ff6f535a8eb2ca65423051 2018-01-27T23:06:54Z eschatologist quit (Quit: ZNC 1.6.5+deb2build2 - http://znc.in) 2018-01-27T23:08:24Z jmercouris: Here's the super bizzare part, converting the :h1 to a :a removes the extra spaces 2018-01-27T23:08:31Z brendyn joined #lisp 2018-01-27T23:08:56Z zazzerino quit (Remote host closed the connection) 2018-01-27T23:10:47Z eschatologist joined #lisp 2018-01-27T23:10:57Z pjb: Well, obviously I wrote my own html generator, so I don't have those problems… :com.informatimago.common-lisp.html-generator.html 2018-01-27T23:11:06Z |3b|: jmercouris: might try turning off indentation in generated html if it is on 2018-01-27T23:11:13Z megachombass: im back 2018-01-27T23:11:25Z megachombass: had to prepare and eat dinner 2018-01-27T23:11:53Z jmercouris: |3b|: How do I do that? is that some config during compilation or is there a command? 2018-01-27T23:11:58Z |3b| doesn't remember if cl-who does indentation the correct-but-ugly way or not, doesn't look like it from examples 2018-01-27T23:12:35Z |3b|: jmercouris: option to with-html-output 2018-01-27T23:12:40Z |3b|: looks like it defaults to off though 2018-01-27T23:12:54Z jmercouris: Ah okay, I see 2018-01-27T23:13:05Z jmercouris: It sure seems like a bug to me 2018-01-27T23:13:17Z |3b| notes that including the generated html along with some indication of what you think is wrong with it in the question might get you better answers 2018-01-27T23:13:19Z jmercouris: I'll just make it an anchor for now that jumps down to the "features" section of the page :D 2018-01-27T23:13:39Z zazzerino joined #lisp 2018-01-27T23:13:45Z jmercouris: |3b|: I can upload the generated html as well, one moment please 2018-01-27T23:13:48Z megachombass: pjb: this is the state of the code right now 2018-01-27T23:13:51Z megachombass: https://codeshare.io/GkwJYA 2018-01-27T23:14:47Z megachombass: what more can be done? 2018-01-27T23:15:32Z megachombass: i really dont like the LOC syntax in his asem code, really doesnt represent anything 2018-01-27T23:16:28Z moei quit (Quit: Leaving...) 2018-01-27T23:16:32Z megachombass: because i belive teacher is going to write some asm by hand (as i dont have a compiler to give to him), and gonna wonder wtf (move (LOC -1 0) :R0) does represent 2018-01-27T23:17:23Z jmercouris: |3b|: https://gist.github.com/f500cf3dde4f10f832759f8c942f3ae8 2018-01-27T23:18:26Z |3b|: yeah, looks like you have indentation turned on 2018-01-27T23:18:58Z |3b|: (and it does it the 'wrong' way) 2018-01-27T23:19:15Z jmercouris: I must have it turned on in my site generator then 2018-01-27T23:19:29Z jmercouris: I just recently forked site-generator, and I didn't touch that part of the code yet 2018-01-27T23:19:37Z jmercouris: I'll have to change it, though I do like the idea of using an anchor anyway 2018-01-27T23:19:42Z jmercouris: let me see if the optional param is set 2018-01-27T23:19:51Z jmercouris: s/param/argument 2018-01-27T23:19:55Z ebrasca` is now known as ebrasca 2018-01-27T23:20:02Z jmercouris: Though I guess those are synonyms really 2018-01-27T23:20:39Z |3b| thinks there is a distinction, but never can remember which is which :( 2018-01-27T23:20:59Z |3b|: one is the variable/binding while other is the value when called, or something like that 2018-01-27T23:21:16Z jmercouris: Doesn't matter that much, as long as we have good context 2018-01-27T23:21:22Z |3b| wouldn't be surprised if others define them differently though, naming is hard :) 2018-01-27T23:21:29Z jmercouris: Anyways very interesting, I don't see with-output-to-html anywhere in the codebase 2018-01-27T23:21:56Z jmercouris: damnit, wrong word order 2018-01-27T23:22:02Z jmercouris: with-html-output-to-string exists 2018-01-27T23:22:21Z jmercouris: and you're correct, indent is set to t 2018-01-27T23:22:36Z jmercouris: are there any advantages to indenting? just readability or? 2018-01-27T23:22:51Z jmercouris: at any rate, thank you for your help 2018-01-27T23:23:00Z |3b|: yeah, advantages are readability, wasting bandwidth, and the bug you just ran into 2018-01-27T23:23:26Z dddddd joined #lisp 2018-01-27T23:23:30Z bhyde joined #lisp 2018-01-27T23:23:32Z jmercouris: I'll never be working with the code indented outside of development 2018-01-27T23:23:40Z jmercouris: maybe I should have it as a flag one can set in their config 2018-01-27T23:23:55Z jmercouris: then again, development should mirror production as closely as possible :( 2018-01-27T23:24:18Z |3b|: to indent html 'correctly', your html should look like >, with the indentation inside tags 2018-01-27T23:24:47Z jmercouris: I'm not about to fork cl-who as well :D 2018-01-27T23:24:54Z jmercouris: I've already pulled in enough dependencies lol 2018-01-27T23:28:47Z papachan joined #lisp 2018-01-27T23:29:26Z smurfrobot quit (Remote host closed the connection) 2018-01-27T23:29:57Z pjb: megachombass: well, virtual machine can be anything. But if you make a machine with a PC, a SP, and 4 registers holding each integers or even words (integers modulo 2^p), usually the instructions are themselves encoded into integers. Here you have something more ressembling an interpreter of an assembler, than a virtual machine. I don't know if that was specified or not, but perhaps you would have wanted to make it more like a 2018-01-27T23:29:57Z pjb: micro-processor. The example of virtual machine I gave you the url of was like that. The assembler converted the program into a sequence of byte, and the virtual machine interpreted those bytes. 2018-01-27T23:31:15Z pjb: megachombass: the reason why it's a good thing is that it allows the programm running on this virtual machine to modify itself. Since you only have operations to deal with integers, and none to deal with lists such as (LOC -1 0), in the current VM you cannot write a program generating a program containing references to local variables or parameters! 2018-01-27T23:31:48Z oleo quit (Ping timeout: 252 seconds) 2018-01-27T23:32:05Z pjb: megachombass: (your current file only contains a dash, that's all). https://codeshare.io/GkwJYA 2018-01-27T23:34:12Z megachombass: oh wait what 2018-01-27T23:34:13Z megachombass: where is my code 2018-01-27T23:34:19Z jmercouris: I'm guessing some asshole deleted it 2018-01-27T23:34:40Z pjb: At this point, the following quote comes to mind: "You don't want to sell me death sticks. You want to go home and rethink your life." u 2018-01-27T23:34:47Z pjb: I hope this was your only copy! 2018-01-27T23:34:53Z pjb: sorry: was NOT 2018-01-27T23:34:54Z megachombass: https://codeshare.io/GkwJYA 2018-01-27T23:35:33Z pjb: ok, test seems to do the same as before. 2018-01-27T23:36:18Z megachombass: ye, test prints the load machine contennt and at the end returns 5 (result of (fibo 5) 2018-01-27T23:36:52Z pjb: megachombass: why do you read the fibos from strings? 2018-01-27T23:37:12Z megachombass: because i needed to work with working assembly code 2018-01-27T23:37:13Z megachombass: and that code 2018-01-27T23:37:20Z megachombass: is the result of the lisp compiler 2018-01-27T23:37:38Z milanj joined #lisp 2018-01-27T23:37:48Z megachombass: as i havent even finished with the VM, and prolly will never have time to make the compiler for tomorrow, i needed some code to work with 2018-01-27T23:39:50Z pjb: megachombass: since the lisp compiler produces a sexp, you can just quote it and use it directly! 2018-01-27T23:40:12Z megachombass: sexp? 2018-01-27T23:40:59Z pjb: SYMBOLIC EXPRESSION 2018-01-27T23:41:47Z fisxoj quit (Quit: fisxoj) 2018-01-27T23:41:58Z megachombass: but thats what i do 2018-01-27T23:42:07Z megachombass: reading the string, i convert it to a sexp 2018-01-27T23:42:12Z megachombass: that i can give to the vm 2018-01-27T23:42:28Z Selwyn joined #lisp 2018-01-27T23:43:25Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-27T23:44:25Z red-dot joined #lisp 2018-01-27T23:45:41Z pjb: megachombass: the point is that Lisp already contains a READER! 2018-01-27T23:46:04Z megachombass: if i just '(my asem code) it doesnt work 2018-01-27T23:46:19Z pjb: You don't need to read it yourself from the string! Just write (let ((fibo1 '((entreeprocedure) (@ foo) ...)) (fibo2 '((move …) …))) …) 2018-01-27T23:46:34Z megachombass: going to try again 2018-01-27T23:46:49Z pjb: It will work if you print it with *print-circle* and *print-readably* both set to T. 2018-01-27T23:47:09Z rotty quit (Ping timeout: 264 seconds) 2018-01-27T23:47:45Z ebrasca: megachombass: why you have - in line 29 ? 2018-01-27T23:48:50Z pjb: Notice that - is a special variable in lisp that is bound to the form being evaluated in the REPL. It's NIL elsewhere. 2018-01-27T23:49:34Z pjb: One can therefore have fun by adding lines of: - - - - - - - - - - - - - - - - - - - - - - - - in lisp sources… 2018-01-27T23:50:09Z jmercouris quit (Ping timeout: 256 seconds) 2018-01-27T23:50:13Z megachombass: ebrasca: wasnt me, someone that is checkign the code and adding things 2018-01-27T23:50:33Z pjb: For more fun, you can also use + + + + or ++ ++ ++ or +++ +++ +++ +++ or * * * * * or ** ** ** or *** *** *** *** or / / / / or // // // or /// /// /// or any combination such as + - + - + - + etc. 2018-01-27T23:51:57Z rumbler31 joined #lisp 2018-01-27T23:52:12Z ebrasca: What is for codeshare ? 2018-01-27T23:52:20Z Selwyn quit (Read error: Connection reset by peer) 2018-01-27T23:53:13Z pjb: it's a paste that can be edited by anybody. Unless you lock your pastes. 2018-01-27T23:53:20Z pjb: It allows collaborative editing. 2018-01-27T23:53:28Z pjb: There's also an option for videochat. 2018-01-27T23:54:33Z ebrasca: I am retarted , I think it is read only ... 2018-01-27T23:54:59Z ebrasca: megachombass: Sory for mi mistake 2 times ... 2018-01-27T23:55:41Z ebrasca: pjb: Thanks for explaining. 2018-01-27T23:55:59Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-27T23:56:22Z rumbler31 quit (Ping timeout: 268 seconds) 2018-01-27T23:56:30Z wigust- joined #lisp 2018-01-27T23:57:02Z marusich quit (Ping timeout: 265 seconds) 2018-01-27T23:58:09Z ebrasca: pjb: How I can copy all code for testing? 2018-01-27T23:58:19Z pjb: Select all and copy work. 2018-01-27T23:58:25Z pjb: You may have to click on the text first. 2018-01-27T23:58:29Z marusich joined #lisp 2018-01-27T23:59:50Z fittestbits quit (Quit: Leaving.) 2018-01-28T00:00:01Z kozy quit (Remote host closed the connection) 2018-01-28T00:00:05Z fittestbits joined #lisp 2018-01-28T00:00:06Z wigust quit (Ping timeout: 256 seconds) 2018-01-28T00:00:27Z Kyo91 quit (Ping timeout: 240 seconds) 2018-01-28T00:00:43Z kozy joined #lisp 2018-01-28T00:00:59Z megachombass: removed the read for strings 2018-01-28T00:01:03Z megachombass: from* 2018-01-28T00:01:26Z ebrasca: pjb: I have accident delete 2 times some code by trying to copy it ... 2018-01-28T00:01:45Z megachombass: https://codeshare.io/GkwJYA 2018-01-28T00:02:18Z megachombass: no worries ebrasca, just contrl+a control+c and just paste it in emacs 2018-01-28T00:02:43Z zooey quit (Remote host closed the connection) 2018-01-28T00:04:04Z zooey joined #lisp 2018-01-28T00:05:07Z megachombass: pjb: so yeah, as said before, only request are is to have a VM that reads compiled fibo and fact 2018-01-28T00:05:21Z megachombass: must use registers, cant be stack based 2018-01-28T00:05:27Z pjb: ok.e 2018-01-28T00:05:36Z ym joined #lisp 2018-01-28T00:05:46Z megachombass: from there, if you have sugestions 2018-01-28T00:05:57Z ebrasca: It only copy "-" to my emacs ... 2018-01-28T00:06:25Z ebrasca: megachombass: Make good parentesis in your functions. 2018-01-28T00:06:37Z megachombass: ebra 2018-01-28T00:06:40Z pjb: megachombass: as I said a few days ago, my suggestions are here: http://informatimago.com/articles/usenet.html#Compilation 2018-01-28T00:06:43Z megachombass: ebrasca: yep im about to reindent 2018-01-28T00:08:11Z pjb: megachombass: in particular, Toy Language Byte Code Compiler. https://groups.google.com/forum/#!msg/comp.lang.lisp/QMakibYYZRg/fgQulr5b4BwJ shows both a compiler to lap assembler, a lap assembler to VM byte code, and the VM. 2018-01-28T00:08:52Z pjb: megachombass: Compile to a simple VM https://groups.google.com/forum/#!msg/comp.lang.lisp/HqV4B5aoj-c/yI4_av1C6KUJ is another example. 2018-01-28T00:09:56Z pjb: megachombass: notice at the bottom of the post, how a call to (assemble (compile-program …)) --> #(0 0 6 0 42 0 0 1 4 25 0 2 0 0 2 4 21 0 1 6 5 0 2 6 5 0 3 6 0 4 6 7) 2018-01-28T00:10:16Z pjb: megachombass: the VM called by execute interprets this byte code. 2018-01-28T00:11:10Z megachombass: hum 2018-01-28T00:11:15Z megachombass: i see plus or less 2018-01-28T00:11:31Z megachombass: but kinda imposible for me to implement that in 23 hours remaining 2018-01-28T00:11:47Z pjb: I gave those links several days ago. 2018-01-28T00:11:50Z megachombass: knowing that i would need to translate that bytecode for my vm to read it 2018-01-28T00:12:29Z pjb: Well, at this point it's probably wiser to only make cosmetic changes, if any. 2018-01-28T00:12:33Z megachombass: pjb: i know, and seems several days im still on the VM xD 2018-01-28T00:13:08Z megachombass: thats why i think the best is to have a "perfect VM" atleast 2018-01-28T00:14:07Z eivarv quit (Quit: Sleep) 2018-01-28T00:14:09Z pjb: No problem. Define "perfect". 2018-01-28T00:15:05Z rotty joined #lisp 2018-01-28T00:16:17Z megachombass: well, by perfect in my case is : " does essentially the same as the already existing code, but without beeing the existing code. make a change to the (move (loc - 1 0) :RO) that does weird operations with the FP that i cant explain myself. maybe do some functionallity changes on the VM, that can still load and execute the asm code without changing the asm code given as param (exept for the loc thing))" 2018-01-28T00:16:40Z borei quit (Quit: Leaving.) 2018-01-28T00:17:38Z megachombass: pjb: btw, i will never be thankfull enough for the help you giving me. really, my university career depends on this, and having people really passionated of progamming, whiling to spend their time on newbies like me, its beatifull 2018-01-28T00:17:55Z megachombass: hope one day, when i will be senior dev, i will always have an irc open to do the same 2018-01-28T00:18:07Z megachombass: right now i cant teach much xd 2018-01-28T00:18:13Z pjb: You ust need to become passionate about programming yourself. 2018-01-28T00:18:16Z pjb: j 2018-01-28T00:18:39Z megachombass: i am, but i tend to abandonate quickly when i dont understand something 2018-01-28T00:19:00Z megachombass: when well explained, i understand everything 2018-01-28T00:19:31Z pjb: So you only need to explain it to yourself well, so you may understand it. 2018-01-28T00:19:46Z pjb: Use google, read, learn, and give yourself a good explanation! 2018-01-28T00:19:58Z megachombass: thats what i usually do 2018-01-28T00:20:29Z megachombass: but with >"old technologies"< that i cant find handy examples , its hard 2018-01-28T00:20:44Z pjb: I don't know what you're refering to here. 2018-01-28T00:20:54Z ebrasca: I like someone explain me how to port mezzano to POWER9 cpu architecture and talos II. 2018-01-28T00:20:57Z pjb: In the case of lisp since it exists since 60 years, there are a lot of handy examples! 2018-01-28T00:21:03Z ebrasca: I have never write any assambly. 2018-01-28T00:21:03Z megachombass: for me lisp is like from another era 2018-01-28T00:21:57Z pjb: megachombass: how many of those tutorials have you read? https://www.cliki.net/Online%20Tutorial 2018-01-28T00:21:58Z ebrasca: For me is lisp is new and fun. 2018-01-28T00:22:10Z pjb: megachombass: how many of those books have you read? https://www.cliki.net/Lisp%20Books 2018-01-28T00:22:13Z megachombass: specially ive been acepted on a internship in japan for this summer, where i will work on some android dev and web services based on REST 2018-01-28T00:22:37Z pjb: And basically, they're only about Common Lisp, we've not started a list about Lisp in general! 2018-01-28T00:23:03Z pjb: megachombass: great. Learn Japanese well, so you may be able to read robotics and AI papers! 2018-01-28T00:23:26Z megachombass: im already learning it! among the 100000 things im learning atm 2018-01-28T00:23:45Z pjb: and all those nice japanese lisp projects: https://github.com/suguru03/made-in-japan/blob/master/docs/Common%20Lisp.md 2018-01-28T00:23:46Z megachombass: but to go to japan, imma need to pass the VM assignment xd 2018-01-28T00:25:25Z pjb: megachombass: well read at least those two posts I linked above. 2018-01-28T00:25:51Z megachombass: he told us friday that the most important was to have a compiler that compiles fibo and fact. i told him "we" only had a VM he said well, you're kinda fked, and that we had untill sunday to send him our work 2018-01-28T00:26:07Z megachombass: i guss that if the VM is perfect,i will get atleast a 10/20 2018-01-28T00:26:34Z pjb: You need that you still have to write the compiler? 2018-01-28T00:26:47Z pjb: s/need/mean/ 2018-01-28T00:26:55Z megachombass: not exactly 2018-01-28T00:27:06Z megachombass: i told him "we have a fraction of compiler" 2018-01-28T00:27:16Z pierpa joined #lisp 2018-01-28T00:27:17Z megachombass: i could make the compiler and send him 2018-01-28T00:27:18Z varjag quit (Ping timeout: 256 seconds) 2018-01-28T00:27:19Z megachombass: thats not ilegal 2018-01-28T00:27:36Z megachombass: but how on earth imma build a fact fibo compiler that fits my VM in 1 day 2018-01-28T00:27:49Z megachombass: if i take it from internet i would be fked as they have anticheat tools 2018-01-28T00:27:51Z pjb: Oh, the compiler must run in the VM? 2018-01-28T00:28:08Z megachombass: must run in A vm 2018-01-28T00:28:15Z openupsky joined #lisp 2018-01-28T00:28:16Z megachombass: not specially the one we've been twering around 2018-01-28T00:28:52Z megachombass: but must fit in a vm with registers 2018-01-28T00:28:53Z pjb: Yes. So your VM must be a lisp VM, not just an arithmetic VM. 2018-01-28T00:29:06Z megachombass: yes, must be a lisp vm 2018-01-28T00:29:07Z ebzzry joined #lisp 2018-01-28T00:29:38Z megachombass: http://www.lirmm.fr/~lafourcade/ML-enseign/Compilation/compil-GenCode.HTML 2018-01-28T00:29:42Z pjb: Yes, you will need more instructions and data types. 2018-01-28T00:30:42Z smurfrobot joined #lisp 2018-01-28T00:30:43Z pjb: This is not a lisp VM. Here is one: https://clisp.sourceforge.io/impnotes/bytecode.html 2018-01-28T00:31:15Z pjb: See for example: https://clisp.sourceforge.io/impnotes/instr-set.html#instr-inline 2018-01-28T00:31:58Z megachombass: yes, its not a lisp vm. we have to do a vm + or - like that one 2018-01-28T00:32:01Z damke_ joined #lisp 2018-01-28T00:32:05Z varjag joined #lisp 2018-01-28T00:32:10Z megachombass: well wait, going to give you another link 2018-01-28T00:33:57Z damke quit (Ping timeout: 265 seconds) 2018-01-28T00:34:09Z megachombass: nvm i have lost it 2018-01-28T00:34:26Z megachombass: let me check your links 2018-01-28T00:34:49Z pjb: So you need a specification of the lisp VM; So you write in lisp a compiler that compiles lisp to lap assembler. Then you write an assembler that assembles the lap assembler to the lisp VM bytecode. And you need to implement the lisp VM. Then you can compile everything with CL. Then once you have a running VM, you compile your compiler with the compiler you compiled in CL, thus obtaining your compiler in lap assembler. You asse 2018-01-28T00:34:49Z pjb: it, and you load it in the lisp VM. then you can run it on itself. 2018-01-28T00:36:06Z megachombass: ye, he told us the ultimate goal was to be able to "compile the compiler" 2018-01-28T00:36:15Z pjb: Anyways, as I said earlier, your current VM can't be used to run the compiler on itself, since it has no instruction to deal with things like (move (loc -1 0) :r0). The instructions it has are only move, incr, decr, add, sub, mult, div, jmp, cmp, jg, jge, jeq, jl, jle, jne, jsr, push pop rtn. 2018-01-28T00:36:34Z pjb: It doesn't even have I/O, so you cannot implement a lisp reader. 2018-01-28T00:36:47Z varjag quit (Ping timeout: 248 seconds) 2018-01-28T00:37:06Z hhdave quit (Quit: hhdave) 2018-01-28T00:37:07Z pjb: megachombass: you're not there at all. 2018-01-28T00:37:45Z megachombass: wait a sec, the vm does handle (move (loc -1 0) :r0) 2018-01-28T00:37:49Z megachombass: it have the functions in it 2018-01-28T00:37:51Z megachombass: for that case 2018-01-28T00:38:14Z pjb: Write in assembler a program that will generate move instructions! 2018-01-28T00:39:11Z megachombass: well, the ASM for fibo does have moves :(MOVE (:DIESE 2) :R0) 2018-01-28T00:39:17Z pjb: Write in assembler a program that takes two arguments a and b will generate for example, the binary code for a function that takes 1 argument x and computes a*x+b. 2018-01-28T00:39:19Z megachombass: puts constant 2 into register RO 2018-01-28T00:40:09Z pjb: In lisp: (defun generate-line-function (a b) (lambda (x) (+ (* a x) b))) 2018-01-28T00:40:09Z pjb: (generate-line-function 3 2) --> # 2018-01-28T00:40:09Z pjb: (funcall (generate-line-function 3 2) 1) --> 5 2018-01-28T00:40:53Z marusich quit (Quit: Leaving) 2018-01-28T00:41:18Z megachombass: hum, just lacking lambda? 2018-01-28T00:42:14Z megachombass: all is base on this guy work : https://github.com/thibaudcolas/clisp-compiler-vm 2018-01-28T00:42:25Z pjb: It should be called this way: (move (:diese 3) :r0) (push :r0) (move (:diese 2) :r0) (push :r0) (jsr (@ generate)) (move (:dieze 1) :r1) (push :r1) (jsr :r0) 2018-01-28T00:42:27Z Rawriful quit (Quit: WeeChat 1.4) 2018-01-28T00:43:39Z megachombass: and why whould the VM right cant handle those moves? 2018-01-28T00:43:50Z megachombass: right now* 2018-01-28T00:44:35Z turkja joined #lisp 2018-01-28T00:44:45Z pjb: the problem is in what @generate will return in :r0 2018-01-28T00:44:54Z pjb: What will you compute and put in :r0? 2018-01-28T00:46:19Z megachombass: in my understadning, jsr will go to the generate function, does not specially put something in :R0 2018-01-28T00:46:47Z pjb: the generate function must return a new function (more precisely, a closure). Let's say that it returns it in the register :r0. What will you put there? 2018-01-28T00:47:06Z pjb: What can you compute with the instructions of the VM to be stored in r0? 2018-01-28T00:47:32Z pjb: Jotice that I use (jsr :r0) next. So what should r0 contain? 2018-01-28T00:47:37Z pjb: s/J/N/ 2018-01-28T00:48:17Z megachombass: th result of generate? 2018-01-28T00:48:28Z pjb: Which is WHAT? 2018-01-28T00:48:36Z megachombass: and i add his adress to the stack? 2018-01-28T00:48:44Z pjb: the address to WHAT? 2018-01-28T00:48:50Z megachombass: we dont know yet, as we have to execute the generate function to know 2018-01-28T00:49:05Z pjb: No, you have to WRITE the function generate. 2018-01-28T00:49:23Z pjb: I'm trying to show you that it is IMPOSSIBLE to write a function generate that does what is required! 2018-01-28T00:49:37Z megachombass: hum 2018-01-28T00:49:44Z pjb: The function generate will return the address of the generated function. 2018-01-28T00:50:46Z megachombass: could we modify the VM to actually take this into account? 2018-01-28T00:51:01Z babalua joined #lisp 2018-01-28T00:51:26Z pjb: When we run (jsr :r0), the PC will be loaded with the content of r0. Now the question is what should be stored at this address? Ie, at the address of the generated function? 2018-01-28T00:51:35Z babalua left #lisp 2018-01-28T00:52:44Z megachombass: it should be the entry of the function, aka the defun part 2018-01-28T00:53:08Z megachombass: like at the adress of pc returned by R0, it should contain (defun generate) 2018-01-28T00:53:13Z megachombass: or something like this 2018-01-28T00:54:16Z pmc_ joined #lisp 2018-01-28T00:54:23Z dmiles: in a WAM VM it might have (trust generate) :P 2018-01-28T00:54:47Z pmc_: Why do I get a warning in SBCL when I type at the toplevel: (setf x 'a) ? 2018-01-28T00:55:12Z dmiles: (means that the next instruction promises to be the trustworthy code of generate :P 2018-01-28T00:56:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T00:57:12Z pjb: megachombass: the memory cell at that address must contain (entreefonction). How do you write a function such as @generate, to store (entreefonction) in memory? 2018-01-28T00:57:19Z Bike: pmc_: cos you haven't told it what x is. doesn't it say something like that? "undefined variable" maybe? 2018-01-28T00:57:30Z pjb: megachombass: you have move :dieze, add sub mul div cmp to do it! 2018-01-28T00:57:34Z dmiles apologizes ) 2018-01-28T00:58:07Z pjb: megachombass: notice that load-vm is written in Common Lisp, not in assembler. You cannot write load-vm in your VM assembler! 2018-01-28T00:59:02Z pmc_: bike: oh, so I have to do (defparameter x 'a) ? 2018-01-28T00:59:04Z pjb: megachombass: you have two alternative: either you move your VM toward your assembly, adding data types and instructions to deal with Sexp in the VM, or you must write an assembler that converts the sexps into numbers and only numbers. 2018-01-28T00:59:12Z Bike: pmc_: something like that, yes. 2018-01-28T00:59:17Z pjb: and run-vm must only deal with numbers, since that's all that your VM can process! 2018-01-28T00:59:52Z megachombass: i believe its better to move VM towards assembly 2018-01-28T01:00:00Z pmc_: bike: thanks 2018-01-28T01:00:16Z megachombass: it will add more functionalities to the VM (as i have not added much code to the actual vm......) 2018-01-28T01:00:38Z damke joined #lisp 2018-01-28T01:00:58Z pjb: megachombass: if you choose the later option, you should notice that if you want to use the same compiler generating the same assembler, you will need to implement in your VM that works only with numbers, a lisp VM, ie. you will have to implement functions such as CONS, CAR, CDR, NULL, INTERN, READ, etc… 2018-01-28T01:01:12Z pjb: megachombass: this is what is done by what we call "native lisp compilers". 2018-01-28T01:01:44Z pjb: megachombass: if you choose the earlier option, then you can keep most of the current compiler and assembler, since you have a lisp VM. This is similar to the clisp "lisp byte code compiler". 2018-01-28T01:01:44Z smasta quit (Ping timeout: 268 seconds) 2018-01-28T01:01:52Z markong quit (Ping timeout: 256 seconds) 2018-01-28T01:02:19Z megachombass: defintivly option 1 2018-01-28T01:02:33Z megachombass: if i had time, option 2 would be great 2018-01-28T01:02:40Z pjb: megachombass: in either case, we're not talking about 0.2 BTC. It's rather something like 20,000 BTC, to find somebody with a time machine to send you back last month. 2018-01-28T01:03:06Z megachombass: well 2018-01-28T01:03:08Z presiden quit (Ping timeout: 256 seconds) 2018-01-28T01:03:10Z megachombass: and what can be done 2018-01-28T01:03:13Z megachombass: for cheap 2018-01-28T01:03:17Z megachombass: in the remaining time i have 2018-01-28T01:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T01:03:38Z pjb: (assuming 20 million USD is what it takes for a 1-month time travel, but I could be wrong, it could be 200 million or 2 billions). 2018-01-28T01:04:50Z megachombass: im willing to pay for something half decent i cant send to teacher tomorrow 2018-01-28T01:04:59Z pjb: megachombass: You have barely the time to write the specifications and a design sketch for your system. 2018-01-28T01:04:59Z presiden joined #lisp 2018-01-28T01:05:08Z damke_ joined #lisp 2018-01-28T01:05:18Z rotty quit (Ping timeout: 252 seconds) 2018-01-28T01:06:15Z megachombass: thats why im basing on https://github.com/thibaudcolas/clisp-compiler-vm 2018-01-28T01:06:33Z pjb: megachombass: Have you heard about Ariane 5? 2018-01-28T01:06:46Z megachombass: the rocket? 2018-01-28T01:06:52Z megachombass: isnt that one who blow up 2018-01-28T01:06:59Z megachombass: coz of a byte error? 2018-01-28T01:07:17Z pjb: http://www-users.math.umn.edu/~arnold/disasters/ariane.html 2018-01-28T01:07:27Z pjb: Basically because they used a module without reading the specifications. 2018-01-28T01:08:03Z pjb: The interface between modules is not performed at the level of the API. It's performed at the level of the specifications. 2018-01-28T01:08:04Z Folkol quit (Read error: Connection reset by peer) 2018-01-28T01:08:09Z damke quit (Ping timeout: 264 seconds) 2018-01-28T01:09:02Z megachombass: well, thanks god im not trying to make a rocket 2018-01-28T01:09:15Z megachombass: and in my case, if it explodes mid air, aint a big deal 2018-01-28T01:09:52Z megachombass: right now it barely takes off xD 2018-01-28T01:10:45Z pmc_ quit (Quit: Leaving) 2018-01-28T01:13:00Z smasta joined #lisp 2018-01-28T01:13:25Z damke joined #lisp 2018-01-28T01:15:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T01:16:23Z aeth: megachombass: How much time do you have? 2018-01-28T01:16:51Z megachombass: untill tomorrow midnight 2018-01-28T01:17:10Z pjb: less than 22 hours. 2018-01-28T01:17:59Z heurist` joined #lisp 2018-01-28T01:18:41Z wmannis joined #lisp 2018-01-28T01:18:43Z heurist quit (Ping timeout: 265 seconds) 2018-01-28T01:18:48Z smurfrobot quit (Remote host closed the connection) 2018-01-28T01:18:50Z aeth: How many of those hours can you spend on this project? 2018-01-28T01:19:02Z megachombass: well 2018-01-28T01:19:05Z megachombass: i have to sleep 2018-01-28T01:19:13Z megachombass: so 22-8 2018-01-28T01:19:27Z megachombass: 14h 2018-01-28T01:19:34Z aeth: I'm guessing only 10-12 productive hours in that period, at most. 2018-01-28T01:19:35Z rotty joined #lisp 2018-01-28T01:19:45Z megachombass: y 2018-01-28T01:19:53Z megachombass: knowing im a pure garbage in lisp 2018-01-28T01:20:07Z megachombass: i will , by myself , do 2 tiny mods in 12h 2018-01-28T01:20:24Z pagnol quit (Quit: Ex-Chat) 2018-01-28T01:20:34Z aeth: Imo, anticipate the worst case and schedule a way to try and finish the project in 8-9 hours. 2018-01-28T01:21:13Z megachombass: by myself i cant 2018-01-28T01:21:28Z ebrasca: megachombass: Good luck 2018-01-28T01:21:37Z Chream_ joined #lisp 2018-01-28T01:21:38Z megachombass: all significative changes have been done by pjb 2018-01-28T01:21:39Z pjb: design and implement a VM able to run self modifying programs. Design and implement the assembler and compiler so that it can be targetted to that VM. 2018-01-28T01:21:57Z damke quit (Ping timeout: 264 seconds) 2018-01-28T01:22:06Z megachombass: like in 1 hour he has done more than me in a week 2018-01-28T01:22:13Z pjb: Basically, you have to know that very well, you have to know lisp very well, and you have to start from scratch. 2018-01-28T01:22:19Z fikka joined #lisp 2018-01-28T01:23:09Z megachombass: exactly, and i know the vm comme ci comme ca, im a dumbass in lisp, and if i start from sracth i will do nothing in the remaining time 2018-01-28T01:23:31Z pjb: I would say, there would be a 0.6 probability I could do it in 22 hours, but I would ask form more than 2 BTC, and even with the money I'm not sure I'm motivated to do it. And unfortunately, I'd have to sleep too, so… 2018-01-28T01:23:35Z openupsky quit (Ping timeout: 260 seconds) 2018-01-28T01:24:05Z pjb: So this is where the lesson is taught. Start your projects early! 2018-01-28T01:24:30Z megachombass: and i clearly dont have 2 btc 2018-01-28T01:24:35Z megachombass: beeing a stundent xd 2018-01-28T01:24:53Z megachombass: THEREFORE, i cant maybe purchase a couple of hours of your time to work on whats already been done? 2018-01-28T01:24:58Z megachombass: i could* 2018-01-28T01:25:07Z pjb: Happily, you don't need a user interface or a debugger! 2018-01-28T01:25:08Z megachombass: like 1 hours of yours is 1 week of mine 2018-01-28T01:25:43Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T01:26:07Z ebrasca: megachombass: Everyone need to lear some day. 2018-01-28T01:26:27Z aeth: You need to (1) understand the subject, (2) be comfortable in the language being used, and (3) have written something similar before. 2018-01-28T01:26:28Z ebrasca: megachombass: I am doing mi fat32 XD. 2018-01-28T01:26:36Z aeth: In order to do it in a day. 2018-01-28T01:26:54Z megachombass: yep 2018-01-28T01:27:02Z megachombass: pjb meets like all the requirements 2018-01-28T01:27:11Z megachombass: almost wondering if he is not my teacher xd 2018-01-28T01:27:25Z Chream_ joined #lisp 2018-01-28T01:27:29Z aeth: The problem is that the only people who meet the requirements are people who won't do people's homework, especially not for free. 2018-01-28T01:27:38Z Bike: if you're worried about being kicked out of university, paying someone to do your homework seems like a bad move to me 2018-01-28T01:28:00Z megachombass: well actually noone will never know that i purchased it 2018-01-28T01:28:01Z aeth: (and if you want to find some shady Internet figure to pay, doing it in a public channel is not a good idea) 2018-01-28T01:28:08Z Bike: the perfect crime 2018-01-28T01:28:12Z megachombass: as if he makes the code, it wont be on the internet 2018-01-28T01:28:42Z aeth: This isn't a major language, you probably won't be able to find anyone. 2018-01-28T01:28:50Z ebrasca: What if he get your money and don't make any code? 2018-01-28T01:29:03Z aeth: ebrasca: Then megachombass can issue a chargeback on the BTC 2018-01-28T01:29:11Z aeth: oh wait 2018-01-28T01:29:20Z ebrasca: Yea 2018-01-28T01:29:22Z megachombass: well, in this case i will be scammed and kicked of the university 2018-01-28T01:29:25Z megachombass: double fked 2018-01-28T01:29:36Z megachombass: but atleast i would've tried 2018-01-28T01:29:51Z zazzerino: good thing you're not on the internet right now 2018-01-28T01:30:17Z megachombass: zazzerino: why you say so? 2018-01-28T01:30:36Z ebrasca: megachombass: Pay me now what you can , I can make your code trust me. 2018-01-28T01:30:52Z megachombass: ebras 2018-01-28T01:30:55Z megachombass: ebrasca: :P 2018-01-28T01:31:14Z ebrasca: Yea trust some random guy in some IRC. 2018-01-28T01:31:15Z zazzerino: megachombass: He's trying to rip you off. I'll do it for just 1 BTC 2018-01-28T01:31:19Z aeth: The thing is, programmers can make a lot of money with their talents without having to resort to shady internet deals. 2018-01-28T01:31:47Z megachombass: pjb: common, just a couple hours of your time! you save my life, and you earn some money 2018-01-28T01:31:55Z megachombass: really, im fking desesperate 2018-01-28T01:32:18Z aeth: At this point, the best you can do is partial credit, and try to write as much as possible and do as much as possible. 2018-01-28T01:33:02Z aeth: Buy coffee, go for a walk, think about how to implement as much as you can in 8-10 hours of work. Keep in mind that a sleep break will probably make you more productive, so don't pull an all-nighter. 2018-01-28T01:33:31Z megachombass: aeth: 2018-01-28T01:34:00Z megachombass: the thing is i dont really know what and how to implement from my VM 2018-01-28T01:34:28Z megachombass: right now, adding just a couple functionalities to the VM, make the code nicier would be enough 2018-01-28T01:38:37Z aeth: You need to follow a strict schedule right now. Break up the issue into features. Estimate the time. Find out what you think you can do in 8-10 hours. Prioritize on getting it as complete as possible. Ignore polish. Any optimizations or polish can just be commented in a note that you could update later, when you have time, if you need to use that program later. 2018-01-28T01:39:08Z aeth: Don't think about nicer, just think about crossing items off of a checklist. 2018-01-28T01:39:19Z smurfrobot joined #lisp 2018-01-28T01:39:49Z aeth: #lisp will tell you the proper, idiomatic way of doing things. That is nice. That will save you time maintaining the code and make your code readable to the community. What you need, though, is a giant mess of spaghetti as long as you can get it done. 2018-01-28T01:41:23Z megachombass: well, in any case, im off to sleep now 2018-01-28T01:41:31Z megachombass: will come back tomorrow for more begging xd 2018-01-28T01:41:50Z ebrasca: megachombass: good nigth 2018-01-28T01:41:50Z jonh left #lisp 2018-01-28T01:42:10Z zazzerino: megachombass: Good luck with your assignment. Keep in mind the more effort you put into this, the more people will be willing to help you. 2018-01-28T01:43:26Z ebrasca: Someone like to read my fat32 code? 2018-01-28T01:44:18Z ebrasca: Here link : http://termbin.com/n7qs 2018-01-28T01:44:50Z Karl_Dscc joined #lisp 2018-01-28T01:45:45Z ebrasca: I like to make 1 function from 3 : read-dir-from-cluster , remove-dir-from-cluster and write-metadata. 2018-01-28T01:46:11Z ebrasca: They are almost equal , but I can't find how to unifi them. 2018-01-28T01:48:39Z megachombass quit (Ping timeout: 260 seconds) 2018-01-28T01:48:53Z aeth: Oh, and for the record, my advice (create technical debt! just meet the features!) is only applicable when you have less than a day to do more than a week's worth of work. It's terrible advice under normal circumstances. 2018-01-28T01:49:22Z aeth: If you do this for most projects you'll find that it's easier to rewrite it than to improve it. And that's a really bad thing. 2018-01-28T01:51:28Z ebrasca: aeth: I understand I have 3 similar functions in mi code and don't know how to refactor them. 2018-01-28T01:51:43Z smurfrobot quit (Remote host closed the connection) 2018-01-28T01:55:06Z aeth: Oh, and lots of coffee helps for the last day of an impossible deadline. 2018-01-28T01:55:19Z aeth: (Unless you already drink too much coffee.) 2018-01-28T01:56:16Z smasta quit (Ping timeout: 256 seconds) 2018-01-28T01:56:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-28T01:57:49Z aeth: Oh, and don't make panic coding huge projects at the last minute a habit, though. Not only do you create terrible programs, you also can only get away with this a few times in your life. 2018-01-28T01:59:48Z EvW quit (Ping timeout: 265 seconds) 2018-01-28T02:01:07Z aeth: (It's very unhealthy.) 2018-01-28T02:01:11Z fikka joined #lisp 2018-01-28T02:04:34Z ebrasca: Here working link : http://termbin.com/dxcn 2018-01-28T02:04:57Z aeth: ebrasca: woah 2018-01-28T02:05:14Z aeth: megastruct 2018-01-28T02:05:28Z ebrasca: aeth: ??? 2018-01-28T02:05:36Z aeth: That's the largest struct I've seen in CL 2018-01-28T02:06:54Z aeth: ebrasca: what do you need help with? 2018-01-28T02:07:02Z ebrasca: aeth: Do you think I can make 1 function from read-dir-from-cluster , remove-dir-from-cluster and write-metadata? 2018-01-28T02:08:57Z smasta joined #lisp 2018-01-28T02:09:00Z aeth: If it has a lot of common structure, but that structure is a wrapper around a body that's different, it looks like you might want a macro 2018-01-28T02:09:52Z aeth: i.e. the functions remain different, but the common, duplicated part is removed from the functions 2018-01-28T02:10:29Z aeth: The common part is a loop, so just glancing at it, it looks like the do-foo macro pattern might be a good idea. 2018-01-28T02:11:30Z ebrasca: I have read 1 time do-prime in practical common lisp. 2018-01-28T02:15:19Z damke joined #lisp 2018-01-28T02:16:33Z wigust- quit (Ping timeout: 264 seconds) 2018-01-28T02:17:36Z ebrasca: With last refactoring read file changed from someting like 2 million bytes consed to 217,376 bytes consed. XD 2018-01-28T02:18:29Z aeth: careful, eliminating consing can be addictive 2018-01-28T02:19:10Z damke_ joined #lisp 2018-01-28T02:20:05Z Karl_Dscc quit (Remote host closed the connection) 2018-01-28T02:21:36Z ebrasca: aeth: This time it is side effect of making it more readable. 2018-01-28T02:21:57Z damke quit (Ping timeout: 264 seconds) 2018-01-28T02:24:49Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-28T02:24:56Z ebrasca: mmm it is [03:21] here 2018-01-28T02:27:21Z smurfrobot joined #lisp 2018-01-28T02:31:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-28T02:34:41Z fluke` joined #lisp 2018-01-28T02:35:09Z fikka quit (Ping timeout: 264 seconds) 2018-01-28T02:35:36Z smurfrobot joined #lisp 2018-01-28T02:36:46Z ebrasca: aeth: I think someting like do-prime can work. Thanks you and good nigth. 2018-01-28T02:37:18Z wmannis quit (Quit: wmannis) 2018-01-28T02:39:53Z fikka joined #lisp 2018-01-28T02:40:06Z zazzerino quit (Remote host closed the connection) 2018-01-28T02:40:15Z d4ryus3 joined #lisp 2018-01-28T02:42:53Z smasta quit (Ping timeout: 276 seconds) 2018-01-28T02:43:27Z d4ryus2 quit (Ping timeout: 240 seconds) 2018-01-28T02:43:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T02:44:50Z dented42 joined #lisp 2018-01-28T02:49:50Z smurfrobot quit (Remote host closed the connection) 2018-01-28T02:53:52Z king joined #lisp 2018-01-28T02:55:49Z igemnace joined #lisp 2018-01-28T03:02:02Z windblow quit (Quit: windblow) 2018-01-28T03:05:39Z ebzzry quit (Ping timeout: 256 seconds) 2018-01-28T03:05:54Z damke_ joined #lisp 2018-01-28T03:11:40Z fikka quit (Ping timeout: 260 seconds) 2018-01-28T03:13:13Z pillton joined #lisp 2018-01-28T03:13:35Z cromachina joined #lisp 2018-01-28T03:13:48Z fikka joined #lisp 2018-01-28T03:14:18Z cromachina_ quit (Ping timeout: 240 seconds) 2018-01-28T03:19:50Z omilu quit (Ping timeout: 260 seconds) 2018-01-28T03:23:21Z troydm joined #lisp 2018-01-28T03:28:30Z thinkpad quit (Quit: lawl) 2018-01-28T03:29:20Z smurfrobot joined #lisp 2018-01-28T03:33:05Z smasta joined #lisp 2018-01-28T03:37:55Z smasta quit (Ping timeout: 260 seconds) 2018-01-28T03:40:01Z smurfrobot quit (Remote host closed the connection) 2018-01-28T03:41:12Z smurfrobot joined #lisp 2018-01-28T03:41:22Z warweasle joined #lisp 2018-01-28T03:41:42Z beach: Good morning everyone! 2018-01-28T03:42:01Z warweasle: Good morning...or as we call it here, almost midnight. 2018-01-28T03:42:35Z beach: http://www.total-knowledge.com/~ilya/mips/ugt.html 2018-01-28T03:44:43Z warweasle: Well now I feel silly. 2018-01-28T03:45:15Z beach: No need to feel silly. 2018-01-28T03:46:20Z oleo joined #lisp 2018-01-28T03:46:53Z pjb: ebrasca: yes, it looks like you have a common loop in those functions. You could put it in a high order function to which you would pass the body as a closure. 2018-01-28T03:47:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T03:47:54Z cryptomarauder: I just want to thank the entire lisp community for NOT using camelCase. There are a few exceptions but generally that schizophrenic code style hasn't infected the holy order of the knights of lambda calculus. *tips hat* 2018-01-28T03:49:01Z Bike: https://i.imgur.com/i9TpuYC.jpg 2018-01-28T03:49:47Z warweasle: cryptomarauder: That's only possible because of lisp itself. That whole '-' sign being a math thing and all... 2018-01-28T03:50:02Z pjb: ebrasca: something like: (map-cluster (lambda (i name …) …) cluster) or (docluster ((i name) cluster) …) 2018-01-28T03:50:02Z fikka joined #lisp 2018-01-28T03:50:05Z warweasle: Only lisp could transend mathematics itself. 2018-01-28T03:51:17Z smurfrobot quit (Remote host closed the connection) 2018-01-28T03:52:45Z adolf_stalin joined #lisp 2018-01-28T04:00:49Z milanj quit (Quit: This computer has gone to sleep) 2018-01-28T04:05:05Z cryptomarauder: warweasle: that's true. I think I was lead to sensible style when I read the style guide of the Linux kernel. Ill admit, im a bit of a Torvalds fanboy. But really that's because hes nearly always right which is rare. Rare like Theo de Raadt being wrong. 2018-01-28T04:15:03Z nikivi quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-28T04:15:03Z _whitelogger quit (Remote host closed the connection) 2018-01-28T04:17:18Z _whitelogger joined #lisp 2018-01-28T04:22:34Z Oladon quit (Quit: Leaving.) 2018-01-28T04:24:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-28T04:26:55Z smasta joined #lisp 2018-01-28T04:28:21Z fikka joined #lisp 2018-01-28T04:28:36Z daniel-s joined #lisp 2018-01-28T04:31:35Z smasta quit (Ping timeout: 260 seconds) 2018-01-28T04:35:40Z aeth: Proper camelCase in CL would be worse than camelCase in most languages. 2018-01-28T04:35:54Z aeth: you'd have to write fooBar like |fooBar| 2018-01-28T04:36:17Z aeth: otherwise it just becomes FOOBAR 2018-01-28T04:36:30Z smurfrobot joined #lisp 2018-01-28T04:39:04Z JonSmith joined #lisp 2018-01-28T04:39:26Z warweasle: aeth, That would be FOOBAR 2018-01-28T04:40:20Z warweasle: Programming question: In your favorite language, write a program to make a string all upper case.... 2018-01-28T04:41:09Z aeth: I would argue, though, that if you're going to start escaping things, might as well use real spaces instead of camelCase. (defclass |foo bar factory| ...) 2018-01-28T04:41:38Z aeth: Only Common Lisp can scale to truly long class names. Java has nothing on CL here. 2018-01-28T04:43:47Z beach: warweasle: (string-upcase string) 2018-01-28T04:43:50Z pjb: aeth: (setf (readtable-case *readtable*) :preserve) (DEFUN fooBar (noNeedForEscapes noneedForesCapes) (+ noNeedForEscapes noneedForesCapes)) (fooBar 1 2) --> 3 2018-01-28T04:44:00Z JonSmith quit (Ping timeout: 256 seconds) 2018-01-28T04:44:21Z pjb: aeth: there's even the :invert option, but I prefer :preserve. 2018-01-28T04:44:33Z aeth: pjb: (1) I wouldn't want to program in a project that requires doing that to the readtable. (2) You'd have to have a lower case alias for everything or you just made your program even more unreadable than merely using camelcase 2018-01-28T04:44:37Z aeth: But, yes, valid 2018-01-28T04:45:05Z aeth: I shouldn't have said "you'd have to write", I should have said "you would probably write" 2018-01-28T04:45:24Z pjb: aeth: actually case sensitivity is nice. C uses it. Modula-2 uses it. Most languages use it. 2018-01-28T04:45:42Z pjb: Anyways, good night! 2018-01-28T04:45:45Z aeth: CL has a lot less of a need for case-sensitivity because of its many namespaces for things afaik. 2018-01-28T04:47:09Z smurfrobot quit (Remote host closed the connection) 2018-01-28T04:47:40Z aeth: pjb: good night 2018-01-28T04:48:59Z karswell quit (Remote host closed the connection) 2018-01-28T04:49:40Z schoppenhauer quit (Ping timeout: 240 seconds) 2018-01-28T04:49:59Z karswell joined #lisp 2018-01-28T04:50:10Z pjb quit (Ping timeout: 240 seconds) 2018-01-28T04:51:45Z schoppenhauer joined #lisp 2018-01-28T04:57:53Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-28T04:59:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T05:05:12Z pierpa quit (Quit: Page closed) 2018-01-28T05:05:18Z dented42 joined #lisp 2018-01-28T05:06:38Z fikka joined #lisp 2018-01-28T05:07:51Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-28T05:09:19Z warweasle quit (Quit: Leaving) 2018-01-28T05:17:18Z pjb joined #lisp 2018-01-28T05:20:59Z smasta joined #lisp 2018-01-28T05:25:50Z smasta quit (Ping timeout: 260 seconds) 2018-01-28T05:26:30Z zmt00 quit (Read error: Connection reset by peer) 2018-01-28T05:26:54Z zmt00 joined #lisp 2018-01-28T05:27:45Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-28T05:28:08Z gglitch joined #lisp 2018-01-28T05:28:27Z gilez quit (Ping timeout: 256 seconds) 2018-01-28T05:32:03Z vap1 joined #lisp 2018-01-28T05:35:15Z vaporatorius quit (Ping timeout: 256 seconds) 2018-01-28T05:37:20Z dmiles: does anyone know where i can get the lisp version of this function https://gitlab.com/ivargasc/ecl/blob/develop/src/c/compiler.d#L2737 ? 2018-01-28T05:38:11Z dmiles: i assume its left the repository some time ago 2018-01-28T05:39:05Z solyd joined #lisp 2018-01-28T05:39:28Z Bike: alexandria has a few functions for parsing lambda lists. 2018-01-28T05:40:33Z dmiles: right on.. there are just a few .lsp files that depend on it.. so i started writing it by hand and relized it must already exist 2018-01-28T05:40:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T05:41:10Z dmiles started realizing how many he is ending up writting by hand 2018-01-28T05:43:07Z dmiles: i almost 2018-01-28T05:43:45Z dmiles didnt have a complete thought there just an acidently bump of an key 2018-01-28T05:44:42Z gglitch quit (Ping timeout: 252 seconds) 2018-01-28T05:47:11Z solyd quit (Quit: solyd) 2018-01-28T05:47:13Z fikka joined #lisp 2018-01-28T05:50:18Z pjb quit (Ping timeout: 256 seconds) 2018-01-28T05:52:42Z nika joined #lisp 2018-01-28T05:52:53Z asarch: Where could I learn about the "standard library" of Common Lisp? 2018-01-28T05:53:42Z asarch: In the sense of, "this function is for..., that function is for..."? 2018-01-28T05:56:41Z |3b|: http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm 2018-01-28T05:56:53Z |3b|: ^ is (more or less) the standard 2018-01-28T05:57:59Z |3b|: for example http://www.lispworks.com/documentation/HyperSpec/Body/f_cons.htm tells you what CONS does 2018-01-28T05:58:32Z |3b| isn't sure if that is exactly what you are looking for or not 2018-01-28T06:01:44Z damke joined #lisp 2018-01-28T06:03:35Z safe joined #lisp 2018-01-28T06:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T06:04:49Z solyd joined #lisp 2018-01-28T06:06:02Z asarch: Well, if this was C, the description of all the functions in for example 2018-01-28T06:06:36Z beach: clhs 16 2018-01-28T06:06:36Z specbot: Strings: http://www.lispworks.com/reference/HyperSpec/Body/16_.htm 2018-01-28T06:07:39Z dddddd quit (Quit: Hasta otra..) 2018-01-28T06:08:02Z beach: asarch: ↑ 2018-01-28T06:08:23Z asarch: Thank you 2018-01-28T06:08:27Z asarch: Thank you very much guys 2018-01-28T06:08:51Z Bike quit (Quit: Lost terminal) 2018-01-28T06:10:39Z asarch: I was reading the chapter 2 from "Land of LISP: Learn to Program in Lisp, One Game at a Time!" book and I found the flet command 2018-01-28T06:11:49Z beach: clhs flet 2018-01-28T06:11:49Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_flet_.htm 2018-01-28T06:12:01Z beach: asarch: Try to use the right terminology. Common Lisp doesn't have any "commands". FLET is a "special operator". 2018-01-28T06:12:14Z asarch: D'oh! :'-( 2018-01-28T06:12:21Z asarch: The book uses the term "command" 2018-01-28T06:12:31Z beach: I am sorry to hear that. 2018-01-28T06:12:37Z asarch: https://www.amazon.com.mx/gp/product/1593272812/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1#reader_B004AE3P4K 2018-01-28T06:12:47Z asarch: You can check the sample chapter in Amazon 2018-01-28T06:13:06Z asarch: That book is a lie! 2018-01-28T06:13:16Z beach: I don't think I would like that book. 2018-01-28T06:14:04Z |3b| thinks it is an OK simplification if it succeeds at its goal of making it interesting to get started 2018-01-28T06:14:45Z asarch: Ah, touche! 2018-01-28T06:14:53Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-28T06:15:05Z smasta joined #lisp 2018-01-28T06:15:29Z oleo quit (Ping timeout: 265 seconds) 2018-01-28T06:16:27Z solyd quit (Quit: solyd) 2018-01-28T06:19:23Z |3b| has the impression it tries to present (lisp) programming as "interesting/fun thing you might want to investigate more on your own" as opposed to "boring/difficult thing that must be pounded into your head by authority figures", which seems like a good goal :) 2018-01-28T06:19:35Z smasta quit (Ping timeout: 240 seconds) 2018-01-28T06:19:59Z |3b|: hopefully those it convinces would then be motivated to go beyond the simplifications 2018-01-28T06:19:59Z beach: I am not saying the book is bad. I am saying I personally don't like that style. 2018-01-28T06:20:21Z beach: It is perhaps a generational kind of thing. 2018-01-28T06:20:34Z beach: Just the cover makes me not want to open it. 2018-01-28T06:21:09Z fikka quit (Ping timeout: 256 seconds) 2018-01-28T06:21:25Z whoman: why is it so expensive ? 2018-01-28T06:21:29Z whoman: it is a great book 2018-01-28T06:21:49Z beach: whoman: So that the publishing company can become rich at the expense of the author. 2018-01-28T06:21:56Z whoman: the art style is personal, very well done. its inspired realm of racket but i havent seen that 2018-01-28T06:22:10Z whoman: $750? 2018-01-28T06:22:18Z |3b|: because amazon :/ 2018-01-28T06:23:19Z beach: https://www.amazon.co.uk/Land-Lisp-Learn-Program-Game/dp/1593272812/ref=sr_1_1?ie=UTF8&qid=1517120584&sr=8-1&keywords=land+of+lisp 2018-01-28T06:23:51Z beach: 37 UKP 2018-01-28T06:24:01Z asarch: If a book would cost, for example, $100 USD. How much exactly do you earn from every book? 2018-01-28T06:24:46Z beach: 40 € at amazon.fr 2018-01-28T06:24:46Z |3b|: does .mx have some different interpretation of $ ? prices seem odd there in general if interpreted as USD 2018-01-28T06:25:01Z beach: I think you are right about that. 2018-01-28T06:25:17Z beach: asarch: A few $ at most. 2018-01-28T06:25:18Z asarch: 40 € for every book?!!! 2018-01-28T06:25:18Z |3b|: randomly clicking around front page, razor blades for $99 2018-01-28T06:25:28Z asarch: Wow!!! 2018-01-28T06:25:31Z asarch: That's great! 2018-01-28T06:25:45Z beach: asarch: The author makes a few $ at most. 2018-01-28T06:25:53Z asarch: ~10% 2018-01-28T06:25:53Z beach: I was quoting the price of the book in different countries. 2018-01-28T06:26:01Z asarch: D'oh! Sorry 2018-01-28T06:26:59Z beach: asarch: That is why I use self publishing instead. The margin is higher, and I can set the price myself (it has to be higher than the printing cost). 2018-01-28T06:27:30Z asarch: It seems that nowadays is more profitable to become a YouTuber than a writer :-( 2018-01-28T06:27:32Z |3b|: ok, apparently peso uses $ also :/ 2018-01-28T06:27:49Z beach: |3b|: That's what I was guessing. 2018-01-28T06:28:02Z asarch: $1USD = ~$20MXP 2018-01-28T06:28:16Z |3b|: ok, that makes sense then :) 2018-01-28T06:29:32Z solyd joined #lisp 2018-01-28T06:30:22Z asarch: "Programming languages teach you not to want they cannot provide" —Paul Graham, ANSI Common Lisp 2018-01-28T06:30:38Z asarch: The best quote I ever read! 2018-01-28T06:30:50Z beach: It is also ungrammatical. 2018-01-28T06:30:52Z asarch: s/to want/to what what/ 2018-01-28T06:30:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-28T06:30:59Z whoman: what 2018-01-28T06:30:59Z asarch: Yeah, a typo. Sorry 2018-01-28T06:31:25Z asarch: Programming languages teach you not to want what they cannot provide 2018-01-28T06:31:31Z fikka joined #lisp 2018-01-28T06:31:32Z asarch: Sorry, sorry 2018-01-28T06:31:36Z whoman: aha 2018-01-28T06:31:44Z beach: There is definitely some truth to that. 2018-01-28T06:31:58Z asarch: https://github.com/clojurians-org/lisp-ebook/blob/master/ANSI%20Common%20LISP.pdf 2018-01-28T06:32:34Z solyd quit (Client Quit) 2018-01-28T06:32:41Z beach: That looks like an illegal copy. 2018-01-28T06:33:32Z asarch: "(defun addn (n) #'(lambda (x) (+ x n))). What does addn look like in C? You just can't write it" 2018-01-28T06:33:49Z beach: Correct, you can't write it. 2018-01-28T06:35:01Z vlatkoB joined #lisp 2018-01-28T06:38:06Z dieggsy quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-28T06:38:23Z asarch: Anyway. Thank you very much guys 2018-01-28T06:38:39Z asarch: Have an excellent and a great day :-) 2018-01-28T06:38:59Z asarch: See you later 2018-01-28T06:39:05Z asarch quit (Quit: Leaving) 2018-01-28T06:41:18Z gglitch joined #lisp 2018-01-28T06:41:18Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T06:41:46Z Chream_ joined #lisp 2018-01-28T06:44:32Z dieggsy joined #lisp 2018-01-28T06:46:25Z gglitch quit (Ping timeout: 265 seconds) 2018-01-28T06:47:25Z adolf_stalin quit (Quit: Leaving...) 2018-01-28T06:50:20Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-28T06:57:20Z malcom2073 quit (Quit: No Ping reply in 180 seconds.) 2018-01-28T06:58:32Z malcom2073 joined #lisp 2018-01-28T07:00:38Z fikka quit (Ping timeout: 268 seconds) 2018-01-28T07:01:23Z smasta joined #lisp 2018-01-28T07:02:17Z thinkpad joined #lisp 2018-01-28T07:02:41Z fikka joined #lisp 2018-01-28T07:03:57Z nika quit (Quit: Leaving...) 2018-01-28T07:04:21Z nika joined #lisp 2018-01-28T07:06:11Z smasta quit (Ping timeout: 268 seconds) 2018-01-28T07:08:05Z fikka quit (Ping timeout: 276 seconds) 2018-01-28T07:09:58Z __|--|__ joined #lisp 2018-01-28T07:10:34Z nika quit (Quit: Leaving...) 2018-01-28T07:12:04Z thinkpad quit (Quit: lawl) 2018-01-28T07:15:32Z thinkpad joined #lisp 2018-01-28T07:19:09Z thinkpad quit (Client Quit) 2018-01-28T07:19:39Z __|--|__ quit 2018-01-28T07:29:44Z thinkpad joined #lisp 2018-01-28T07:30:43Z damke_ joined #lisp 2018-01-28T07:33:06Z thinkpad quit (Client Quit) 2018-01-28T07:33:21Z damke quit (Ping timeout: 264 seconds) 2018-01-28T07:34:45Z fikka joined #lisp 2018-01-28T07:36:19Z thinkpad joined #lisp 2018-01-28T07:41:57Z fikka quit (Ping timeout: 268 seconds) 2018-01-28T07:43:19Z rippa joined #lisp 2018-01-28T07:46:47Z fikka joined #lisp 2018-01-28T07:51:57Z fikka quit (Ping timeout: 264 seconds) 2018-01-28T07:52:50Z _mjl joined #lisp 2018-01-28T07:55:35Z smasta joined #lisp 2018-01-28T07:59:30Z fikka joined #lisp 2018-01-28T08:00:04Z smasta quit (Ping timeout: 256 seconds) 2018-01-28T08:00:19Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-28T08:05:25Z mishoo joined #lisp 2018-01-28T08:13:48Z fluke` quit (Remote host closed the connection) 2018-01-28T08:14:20Z fluke` joined #lisp 2018-01-28T08:15:47Z arbv_ joined #lisp 2018-01-28T08:16:10Z arbv quit (Ping timeout: 260 seconds) 2018-01-28T08:16:10Z arbv_ is now known as arbv 2018-01-28T08:18:51Z loli quit (Quit: WeeChat 2.0.1) 2018-01-28T08:19:43Z loli joined #lisp 2018-01-28T08:28:29Z mlf quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-28T08:30:48Z arbv quit (Ping timeout: 252 seconds) 2018-01-28T08:32:05Z arbv joined #lisp 2018-01-28T08:37:23Z fluke` quit (Remote host closed the connection) 2018-01-28T08:38:23Z arbv quit (Ping timeout: 248 seconds) 2018-01-28T08:39:08Z arbv joined #lisp 2018-01-28T08:40:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T08:42:34Z gglitch joined #lisp 2018-01-28T08:44:25Z fluke` joined #lisp 2018-01-28T08:47:18Z gglitch quit (Ping timeout: 252 seconds) 2018-01-28T08:52:35Z Murii joined #lisp 2018-01-28T08:53:24Z flak joined #lisp 2018-01-28T08:54:56Z ikopico quit (Ping timeout: 248 seconds) 2018-01-28T08:54:56Z anaumov quit (Ping timeout: 248 seconds) 2018-01-28T08:55:27Z dim quit (Ping timeout: 248 seconds) 2018-01-28T08:55:29Z SaganMan joined #lisp 2018-01-28T08:55:59Z rippa quit (Ping timeout: 248 seconds) 2018-01-28T08:57:00Z oleo joined #lisp 2018-01-28T08:57:32Z ikopico joined #lisp 2018-01-28T08:58:08Z dim joined #lisp 2018-01-28T09:00:23Z vlatkoB quit (Quit: No Ping reply in 180 seconds.) 2018-01-28T09:01:05Z hvxgr quit (Ping timeout: 260 seconds) 2018-01-28T09:01:37Z vlatkoB joined #lisp 2018-01-28T09:01:42Z damke joined #lisp 2018-01-28T09:02:23Z dim quit (Ping timeout: 248 seconds) 2018-01-28T09:02:44Z hvxgr joined #lisp 2018-01-28T09:02:55Z heurist` quit (Ping timeout: 248 seconds) 2018-01-28T09:03:07Z dmiles: hrrm echolisp used to do.. (in-package 'system) 2018-01-28T09:03:24Z dmiles: ecolisp* 2018-01-28T09:03:36Z dmiles: was that never legal? 2018-01-28T09:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T09:04:16Z dmiles: (due to in-package being a macro?) 2018-01-28T09:07:25Z phoe: dmiles: (QUOTE CL-USER) is not a string designator 2018-01-28T09:07:48Z dmiles: right! 2018-01-28T09:07:52Z phoe: I mean 2018-01-28T09:07:55Z phoe: (QUOTE SYSTEM) 2018-01-28T09:08:21Z phoe: in-package is a macro and accepts #1=a string designator, not something that evals to #1# 2018-01-28T09:08:28Z fikka joined #lisp 2018-01-28T09:08:44Z dmiles: just weird that ecolisp used to let itself get away wiuth that.. sinc ei swear i have seen at least one other lisp do that as well 2018-01-28T09:11:15Z dmiles: some lisps nowadays if they want to do that will do (%in-package 'system) 2018-01-28T09:11:25Z saki quit (Quit: saki) 2018-01-28T09:11:37Z dmiles: (defmacro in-package (name) `(eval-when (:compile-toplevel :load-toplevel :execute) (%in-package ,(string name)))) 2018-01-28T09:12:53Z dmiles: anyhow i just updating the 1995 files to use #:system instead of 'system 2018-01-28T09:14:00Z phoe: dmiles: maybe don't update the files 2018-01-28T09:14:02Z Folkol joined #lisp 2018-01-28T09:14:11Z phoe: if you're interpreting another lisp dialect, maybe just shadow IN-PACKAGE 2018-01-28T09:14:21Z phoe: with something that implements it as a function. 2018-01-28T09:14:32Z BitPuffin joined #lisp 2018-01-28T09:16:08Z dmiles: LarKC, CYC which used their own lisp dialects do impl as a function.. and a few years later 2001 when renamed to ECL.. it started doing "SYSTEM" 2018-01-28T09:16:20Z dmiles: (EcoLisp that is) 2018-01-28T09:16:38Z saki joined #lisp 2018-01-28T09:17:15Z dmiles: I am using EcoLisp to bootstrap my WAM-CL lisp as back in the old days EcoLisp had not C-ified everyhting yet the way ECL has 2018-01-28T09:18:23Z dmiles: "back when things were much simpler" :) 2018-01-28T09:18:50Z nirved joined #lisp 2018-01-28T09:21:16Z dmiles: I think what happens is a developer will convert a .lisp function to .c .. get tired of converting that every build and start improving it from C while erasing the original .lisp 2018-01-28T09:22:19Z solyd joined #lisp 2018-01-28T09:22:31Z dmiles: so even if you grep the source repostiory the .lisp function is way behind the improvments maintained in C 2018-01-28T09:23:39Z solyd quit (Client Quit) 2018-01-28T09:24:50Z Folkol_ joined #lisp 2018-01-28T09:25:15Z solyd joined #lisp 2018-01-28T09:26:27Z Folkol quit (Ping timeout: 256 seconds) 2018-01-28T09:29:08Z heurist` joined #lisp 2018-01-28T09:29:56Z parjanya quit (Remote host closed the connection) 2018-01-28T09:30:23Z solyd quit (Quit: solyd) 2018-01-28T09:34:12Z shrdlu68 joined #lisp 2018-01-28T09:34:36Z shrdlu68: Good afternoon, fellow sentient beings! 2018-01-28T09:35:03Z phoe: GOOD MORNING, FELLOW HUMAN. 2018-01-28T09:39:14Z shrdlu68: I've been messing around with compression, and I'm pleased that I've written something that appears to beat gzip in terms of compression ratio. It's based on a simple binary arithmetic coder. 2018-01-28T09:39:15Z shifty joined #lisp 2018-01-28T09:40:41Z nika joined #lisp 2018-01-28T09:40:54Z Tobbi joined #lisp 2018-01-28T09:42:13Z smurfrobot joined #lisp 2018-01-28T09:42:27Z knicklux joined #lisp 2018-01-28T09:42:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-28T09:43:30Z smasta joined #lisp 2018-01-28T09:44:30Z Tobbi quit (Client Quit) 2018-01-28T09:47:20Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-28T09:48:18Z smasta quit (Ping timeout: 256 seconds) 2018-01-28T09:50:10Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-28T09:50:26Z fikka joined #lisp 2018-01-28T09:52:48Z rumbler31 joined #lisp 2018-01-28T09:57:22Z rumbler31 quit (Ping timeout: 256 seconds) 2018-01-28T09:58:18Z milanj joined #lisp 2018-01-28T09:59:04Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-28T09:59:31Z Folkol_: Sounds good, shrdlu68! Did you try different gzip compression levels? How do they compare in speed? 2018-01-28T09:59:38Z Folkol_ is now known as Folkol 2018-01-28T09:59:42Z stylewarning: Hey folks 2018-01-28T10:01:47Z stylewarning: Is there a WAM implemented in CL? 2018-01-28T10:02:50Z shka_ joined #lisp 2018-01-28T10:03:12Z chiyosaki joined #lisp 2018-01-28T10:03:41Z dmiles: https://github.com/sjl/temperance 2018-01-28T10:04:42Z dmiles: the only one i have heard of 2018-01-28T10:05:50Z saki quit (Ping timeout: 260 seconds) 2018-01-28T10:06:37Z dmiles: oh i guess there is something here: https://books.google.com/books?id=ciQEHp39pAkC&pg=PA57&lpg=PA57&dq=wam+common+lisp&source=bl&ots=Vyt8Y3nGMe&sig=zk2lk81j_0FPOVdTJtCrvsR1ugU&hl=en&sa=X&ved=0ahUKEwjct76ptPrYAhXFjVQKHWqwANcQ6AEIeDAN#v=onepage&q=wam%20common%20lisp&f=false 2018-01-28T10:07:44Z stylewarning: sjl is really becoming a star Lisp coder 2018-01-28T10:08:01Z stylewarning: (Not to be confused with a *Lisp coder) 2018-01-28T10:09:07Z stylewarning: I’ve been interested in donating money to a pool to restore and modernize old Lisp projects from the 70s–90s. 2018-01-28T10:09:37Z solyd joined #lisp 2018-01-28T10:09:46Z stylewarning: There’s so much useful but bitrotted code. 2018-01-28T10:10:08Z solyd quit (Client Quit) 2018-01-28T10:10:24Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-28T10:11:05Z stylewarning: For instance, I discovered Yale Haskell, which seems to have CL compatibility. Would love to see it run again. 2018-01-28T10:11:07Z dmiles: the AI-ish programs of those eras especially? 2018-01-28T10:11:22Z stylewarning: Yes 2018-01-28T10:12:27Z dmiles: I'd like to see people put such programs together using a common blackboard (to share overlapping datastructures) 2018-01-28T10:13:08Z dmiles: a 700 million dollar project called CYC was started to do that 2018-01-28T10:13:45Z stylewarning: What would a “common blackboard” give to anyone 2018-01-28T10:14:12Z dmiles: its allows SHRDLU to move arround MUD objects and not just blockworld 2018-01-28T10:14:49Z dmiles: it allows DAYDREAMER to use SWALEs data which daydreamer was designed for but never got a chance 2018-01-28T10:15:26Z dmiles: allows PAM and SAM to work togethere 2018-01-28T10:15:35Z stylewarning: I think that’s maybe too optimistic. (: 2018-01-28T10:15:50Z dmiles: Plan applier mechanism and Script applier mechanism 2018-01-28T10:16:25Z dmiles: such a system got built and is now currated by Cycorp 2018-01-28T10:16:42Z groovy2shoes quit (Ping timeout: 246 seconds) 2018-01-28T10:17:09Z stylewarning: I don’t buy the “got built” part in the sense you’ve described 2018-01-28T10:17:40Z stylewarning: AFAIK they built some huge DB of common knowledge with some reasoning skills 2018-01-28T10:18:21Z dmiles: you are correct not even as employees has been allowed to combine any of the above systems :P 2018-01-28T10:18:57Z shrdlu68 joined #lisp 2018-01-28T10:19:21Z dmiles: those *some* systems did get put in.. such as SHOP2 + a charniac parser or two 2018-01-28T10:19:51Z dmiles: those/though 2018-01-28T10:20:10Z dmiles: bit those systems are bitrotting even in Cyc 2018-01-28T10:20:36Z fikka quit (Ping timeout: 256 seconds) 2018-01-28T10:20:49Z dmiles: (as most of the new employees are into machine learning) 2018-01-28T10:22:08Z visof joined #lisp 2018-01-28T10:22:08Z visof quit (Changing host) 2018-01-28T10:22:08Z visof joined #lisp 2018-01-28T10:22:22Z dmiles: here is a chanriac like output (to see what i am talking about ... https://docs.google.com/document/d/1rdI_f-2YnX0e2RD6rGAY57YAqzLj2xHsk36m5HT6SoM/edit ) 2018-01-28T10:22:31Z safe quit (Read error: Connection reset by peer) 2018-01-28T10:22:46Z dmiles: erm sorry a HSPG parser 2018-01-28T10:23:11Z dmiles: such a program can and shold be combined with a bl;ackboard 2018-01-28T10:24:15Z fikka joined #lisp 2018-01-28T10:24:33Z stylewarning: Idk maybe maybe not 2018-01-28T10:24:52Z stylewarning: What I want is far more humble: make old code work again 2018-01-28T10:25:08Z dmiles: "AFAIK they built some huge DB of common knowledge with some reasoning skills" <- very close.. what they built was a Knowledge Representation language that was ideal for how programs would share data 2018-01-28T10:25:56Z dmiles: (of course along with what you said.. they just dont promote that part of the project.. which btw was the only reason for funding) 2018-01-28T10:27:44Z dmiles is just very irritated at cycorp right now 2018-01-28T10:28:17Z stylewarning: dmiles: I’m irritated with a big bag of companies! 2018-01-28T10:32:55Z Amplituhedron joined #lisp 2018-01-28T10:34:37Z shka_ quit (Quit: Konversation terminated!) 2018-01-28T10:34:53Z quazimodo joined #lisp 2018-01-28T10:40:17Z shka joined #lisp 2018-01-28T10:43:06Z random-nick joined #lisp 2018-01-28T10:43:46Z gglitch joined #lisp 2018-01-28T10:47:48Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-28T10:48:33Z gglitch quit (Ping timeout: 246 seconds) 2018-01-28T10:49:04Z randomstrangerb joined #lisp 2018-01-28T10:49:33Z dmiles: anyhow that has been my lifes mission for a long time.. to combine those old AI programs into a Inference engine 2018-01-28T10:51:21Z dmiles: just recreating what i've used at various publicly funded projects 2018-01-28T10:51:31Z Tobbi joined #lisp 2018-01-28T10:51:40Z Tobbi quit (Client Quit) 2018-01-28T10:52:46Z dmiles: (i used the word "recreation" only so to say that there is not much technological innovation required) 2018-01-28T10:52:57Z anaumov joined #lisp 2018-01-28T10:59:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-28T11:00:57Z knicklux quit (Quit: Leaving) 2018-01-28T11:01:09Z damke_ joined #lisp 2018-01-28T11:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-28T11:04:13Z fikka joined #lisp 2018-01-28T11:05:37Z smurfrobot joined #lisp 2018-01-28T11:05:40Z eivarv joined #lisp 2018-01-28T11:08:47Z markong joined #lisp 2018-01-28T11:09:51Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-28T11:12:51Z zaquest quit (Quit: Leaving) 2018-01-28T11:14:41Z zaquest joined #lisp 2018-01-28T11:18:10Z _mjl quit (Ping timeout: 260 seconds) 2018-01-28T11:23:24Z megachombass joined #lisp 2018-01-28T11:23:43Z megachombass: hello to all! the help beggar is back again for a final round! 2018-01-28T11:23:58Z milanj quit (Quit: This computer has gone to sleep) 2018-01-28T11:29:23Z Murii quit (Quit: WeeChat 1.4) 2018-01-28T11:32:23Z king quit (Quit: 离开) 2018-01-28T11:32:40Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-28T11:36:02Z thinkpad quit (Quit: lawl) 2018-01-28T11:39:17Z thinkpad joined #lisp 2018-01-28T11:39:19Z Murii joined #lisp 2018-01-28T11:46:10Z visof quit (Ping timeout: 256 seconds) 2018-01-28T11:46:38Z stylewarning: Ask away 2018-01-28T11:48:38Z megachombass: well, i want my code to do the same thing, but written in different way: https://codeshare.io/GkwJYA 2018-01-28T11:48:51Z megachombass: i want to add redundancies and things like that 2018-01-28T11:49:33Z stylewarning: That loads an ad on mobile but doesn’t load any code 2018-01-28T11:50:45Z shrdlu68 joined #lisp 2018-01-28T11:50:58Z varjag joined #lisp 2018-01-28T11:51:46Z megachombass: well one sec 2018-01-28T11:52:00Z chiyosaki quit (Ping timeout: 248 seconds) 2018-01-28T11:52:19Z megachombass: https://codepaste.net/w12ady 2018-01-28T11:55:05Z stylewarning: Definitely rough around the edges 2018-01-28T11:55:14Z random-nick quit (Ping timeout: 256 seconds) 2018-01-28T11:55:54Z ym quit (Quit: Leaving) 2018-01-28T11:56:20Z saki joined #lisp 2018-01-28T11:57:15Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-01-28T11:57:18Z megachombass: want to modify it as much as posible 2018-01-28T12:00:43Z milanj joined #lisp 2018-01-28T12:02:30Z scymtym quit (Ping timeout: 260 seconds) 2018-01-28T12:04:12Z Karl_Dscc joined #lisp 2018-01-28T12:08:56Z EvW joined #lisp 2018-01-28T12:13:49Z eivarv quit (Quit: Sleep) 2018-01-28T12:15:57Z Folkol_ joined #lisp 2018-01-28T12:17:45Z Folkol quit (Ping timeout: 264 seconds) 2018-01-28T12:18:28Z heurist` quit (Ping timeout: 256 seconds) 2018-01-28T12:18:46Z heurist` joined #lisp 2018-01-28T12:24:55Z random-nick joined #lisp 2018-01-28T12:27:39Z jackdaniel: why? 2018-01-28T12:28:34Z Folkol joined #lisp 2018-01-28T12:29:44Z Folkol__ joined #lisp 2018-01-28T12:30:30Z Folkol_ quit (Ping timeout: 260 seconds) 2018-01-28T12:32:48Z Folkol quit (Ping timeout: 252 seconds) 2018-01-28T12:38:41Z phoe: to make the professor not notice that this is not original contentf 2018-01-28T12:42:18Z kolko joined #lisp 2018-01-28T12:42:51Z scymtym joined #lisp 2018-01-28T12:45:08Z gglitch joined #lisp 2018-01-28T12:45:47Z megachombass: exactly 2018-01-28T12:47:15Z Bike joined #lisp 2018-01-28T12:47:56Z random-nick quit (Remote host closed the connection) 2018-01-28T12:49:06Z megachombass: so here i call to your originality to add some useless but fancy things in it 2018-01-28T12:49:39Z gglitch quit (Ping timeout: 246 seconds) 2018-01-28T12:50:47Z solyd joined #lisp 2018-01-28T12:51:42Z random-nick joined #lisp 2018-01-28T12:57:32Z jackdaniel: so basically you ask us to help you cheating? 2018-01-28T12:57:39Z phoe: yes, he was 2018-01-28T13:00:58Z fikka quit (Ping timeout: 256 seconds) 2018-01-28T13:02:18Z saki quit (Quit: saki) 2018-01-28T13:04:28Z wxie joined #lisp 2018-01-28T13:05:53Z smurfrobot joined #lisp 2018-01-28T13:09:37Z markong is now known as supernaut 2018-01-28T13:09:49Z supernaut is now known as suprnaut 2018-01-28T13:10:08Z suprnaut is now known as markong 2018-01-28T13:10:23Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-28T13:13:49Z megachombass: not really cheating, just to be creative 2018-01-28T13:16:32Z Shinmera: It's still derivative and thus likely prohibited. 2018-01-28T13:16:46Z Shinmera: Not to mention morally objectionable in any case. 2018-01-28T13:17:05Z smurfrobot joined #lisp 2018-01-28T13:17:17Z quazimodo quit (Ping timeout: 276 seconds) 2018-01-28T13:17:23Z random-nick quit (Remote host closed the connection) 2018-01-28T13:17:26Z Tobbi joined #lisp 2018-01-28T13:19:28Z random-nick joined #lisp 2018-01-28T13:24:25Z visof joined #lisp 2018-01-28T13:24:25Z visof quit (Changing host) 2018-01-28T13:24:25Z visof joined #lisp 2018-01-28T13:25:25Z wigust joined #lisp 2018-01-28T13:28:13Z random-nick quit (Remote host closed the connection) 2018-01-28T13:28:38Z ft quit (Ping timeout: 255 seconds) 2018-01-28T13:30:52Z random-nick joined #lisp 2018-01-28T13:36:02Z _whitelogger quit (Remote host closed the connection) 2018-01-28T13:38:15Z _whitelogger joined #lisp 2018-01-28T13:48:37Z fikka joined #lisp 2018-01-28T13:51:14Z pjb joined #lisp 2018-01-28T13:53:40Z megachombass: pjb: hi! 2018-01-28T13:54:07Z fikka quit (Ping timeout: 248 seconds) 2018-01-28T13:56:09Z milanj quit (Quit: This computer has gone to sleep) 2018-01-28T13:57:53Z wxie quit (Remote host closed the connection) 2018-01-28T13:59:22Z ebzzry joined #lisp 2018-01-28T14:01:04Z SaganMan quit (Quit: WeeChat 1.6) 2018-01-28T14:02:14Z _mjl joined #lisp 2018-01-28T14:04:37Z ft joined #lisp 2018-01-28T14:06:02Z dieggsy joined #lisp 2018-01-28T14:06:38Z pjb: megachombass: hi! 2018-01-28T14:07:05Z pjb: megachombass: you know, nowadays, you just cannot copy anything or get help from any programmer without the teacher being able to EASILY and trivially know it. 2018-01-28T14:07:46Z megachombass: well, he cant know what ive done by myself and what not 2018-01-28T14:07:52Z megachombass: right now, i wont add more functionalities 2018-01-28T14:07:57Z megachombass: just code it propelly 2018-01-28T14:08:09Z megachombass: whats wrong with this let syntax (let (vm (make-vm 1000)) (vm2 (make-vm 1000)) fibo1 fibo2 fact1 fact2) 2018-01-28T14:08:48Z pjb: megachombass: current DNA-research, machine learning and artificial intelligence techniques exist to easily 1- match source code with other source code to determine their common ancestor, whatever the transformation you make on it (notably, renaming, things you can do with replace-regexp, are completely transparent), and 2- identify the AUTHOR of a chunk of code! 2018-01-28T14:09:11Z megachombass: +, teacher got absolutly no idea what is our coding level, even wonder if he know who i am 2018-01-28T14:09:19Z pjb: megachombass: basically, if your teacher cares, he will run the program on the code, and he will know, line by line, who wrote it, what git repo it comes from, etc. 2018-01-28T14:09:44Z _death: you should also know that the lisp community isn't that big, that some professors reside here, and that this channel's log is publicly available 2018-01-28T14:09:50Z fikka joined #lisp 2018-01-28T14:09:54Z pjb: megachombass: nothing is wrong in the syntax of: (let (vm (make-vm 1000)) (vm2 (make-vm 1000)) fibo1 fibo2 fact1 fact2) 2018-01-28T14:10:06Z warweasle joined #lisp 2018-01-28T14:10:10Z pjb: megachombass: now for the semantics, it probably doesn't try to do what you think. 2018-01-28T14:10:12Z megachombass: then i fked up somewhere ,let me recheck 2018-01-28T14:11:28Z pjb: megachombass: it means: create a variable named VM, bind it to NIL. create a variable named MAKE-VM, bind it to 1000. Call the function vm2, with as argument the result of the call of the function make-vm with as argument 1000. Ignore the result. Evaluate a free variable fibo1. Ignore the result. Evaluate a free variable fibo2. Ignore the result. Evaluate a free variable fact1. Ignore the result. Evaluate a free variable fact 2018-01-28T14:11:28Z pjb: Return its value. 2018-01-28T14:12:05Z pjb: megachombass: https://theory.stanford.edu/~aiken/moss/ 2018-01-28T14:12:36Z pjb: megachombass: http://www.aicbt.com/authorship-attribution/ 2018-01-28T14:12:36Z EvW quit (Ping timeout: 246 seconds) 2018-01-28T14:12:49Z EvW joined #lisp 2018-01-28T14:12:51Z pjb: megachombass: https://books.google.fr/books?id=waUzDwAAQBAJ&pg=PA286&lpg=PA286&dq=identify+code+author&source=bl&ots=xKeviX41nO&sig=mztxKotHQkwV_xbqe3dqug6lzQI&hl=en&sa=X&ved=0ahUKEwjX6oy66_rYAhXKBcAKHQGbDpwQ6AEITTAF#v=onepage&q=identify%20code%20author&f=false 2018-01-28T14:12:56Z pjb: Even on compiled code, of course. 2018-01-28T14:13:18Z _mjl quit (Ping timeout: 246 seconds) 2018-01-28T14:13:49Z megachombass: hum 2018-01-28T14:13:57Z megachombass: but we've changed alot of things 2018-01-28T14:14:04Z pjb: megachombass: so, seriously, remember the first thing we told you: write it yourself! 2018-01-28T14:14:11Z pjb: Nothing! 2018-01-28T14:14:29Z megachombass: i have like what, 9 h left xd 2018-01-28T14:14:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T14:14:42Z megachombass: and if i try to rewrite from scrath, 100% i end up doing the same thing 2018-01-28T14:15:14Z pjb: megachombass: just time to write an essay explaining what you've done, what problem you have, and make a planing indicating how much time you'd need to implement the project. 2018-01-28T14:15:39Z _death: oh, and don't forget the panopticon.. it's easy to forget about the panopticon 2018-01-28T14:16:25Z pjb: _death: what do you mean? 2018-01-28T14:16:27Z megachombass: if i send him an essay 2018-01-28T14:16:28Z megachombass: without code 2018-01-28T14:16:33Z megachombass: ill get a nice and gentle 0/20 2018-01-28T14:17:07Z pjb: megachombass: oh, true, if I was a lisp teacher, obviously I would already be on all the lisp irc channels, the lisp newsgroups, the lisp forums, and they'd be logged. 2018-01-28T14:17:26Z pjb: megachombass: notice how beach routinely ask people whether their new in #lisp, and check them in his logs… 2018-01-28T14:17:31Z megachombass: in any case its specified i couldn't get help tho 2018-01-28T14:19:54Z random-nick quit (Quit: quit) 2018-01-28T14:20:00Z random-nickname joined #lisp 2018-01-28T14:20:17Z random-nickname is now known as random-nick 2018-01-28T14:21:07Z megachombass: and to avoid banhammer, i will clearly specified (thanks to pjb for his help on this project, without him this wouldnt exist) 2018-01-28T14:22:55Z anaumov quit (Ping timeout: 248 seconds) 2018-01-28T14:24:12Z theBlackDragon quit (Remote host closed the connection) 2018-01-28T14:24:27Z theBlackDragon joined #lisp 2018-01-28T14:24:28Z pjb: megachombass: but seriously, at this point if you want to save your skin, writing a project report explaining the failure, how it occured, and what you could do to recover and complete the project (whatever time you'd need), is IMO the best option. 2018-01-28T14:24:35Z fikka joined #lisp 2018-01-28T14:26:04Z megachombass: wich failure? 2018-01-28T14:26:24Z pjb: You didn't complete the project, implementing a VM able to run the compiler. 2018-01-28T14:27:43Z ebrasca: Good afternoon. 2018-01-28T14:27:47Z smurfrobot quit (Remote host closed the connection) 2018-01-28T14:29:27Z visof quit (Ping timeout: 240 seconds) 2018-01-28T14:29:38Z megachombass: actually is not that 2018-01-28T14:29:51Z megachombass: actually is i didnt implement a compiler that produces code for the vm 2018-01-28T14:33:43Z thinkpad quit (Quit: lawl) 2018-01-28T14:36:20Z ebrasca: pjb, aeth : Finally I have refactor to this : http://termbin.com/wgsm 2018-01-28T14:36:57Z thinkpad joined #lisp 2018-01-28T14:38:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-28T14:46:05Z fikka joined #lisp 2018-01-28T14:46:18Z gglitch joined #lisp 2018-01-28T14:50:07Z _death: ebrasca: there is still some duplication that can be factored 2018-01-28T14:50:40Z gglitch quit (Ping timeout: 252 seconds) 2018-01-28T14:54:59Z pjb: ebrasca: are you sure? I had the impression the then branch of the if #x0f was common? 2018-01-28T14:55:58Z Ven`` joined #lisp 2018-01-28T14:59:34Z beach: I have to agree with _death. There is a lot of duplication. 2018-01-28T15:00:12Z daniel-s quit (Read error: Connection reset by peer) 2018-01-28T15:04:26Z dddddd joined #lisp 2018-01-28T15:10:28Z rumbler31 joined #lisp 2018-01-28T15:10:55Z shifty quit (Ping timeout: 248 seconds) 2018-01-28T15:20:12Z shrdlu68 joined #lisp 2018-01-28T15:21:28Z fluke` quit (Remote host closed the connection) 2018-01-28T15:22:03Z fluke` joined #lisp 2018-01-28T15:30:06Z smurfrobot joined #lisp 2018-01-28T15:30:21Z ebzzry quit (Ping timeout: 264 seconds) 2018-01-28T15:31:11Z shrdlu68 quit (Ping timeout: 248 seconds) 2018-01-28T15:35:14Z saki joined #lisp 2018-01-28T15:35:36Z rumbler31 quit (Remote host closed the connection) 2018-01-28T15:38:41Z Rawriful joined #lisp 2018-01-28T15:40:27Z milanj joined #lisp 2018-01-28T15:43:06Z Oladon joined #lisp 2018-01-28T15:44:11Z milanj quit (Client Quit) 2018-01-28T15:47:44Z ebrasca: _death: Here 1 with less duplication : http://termbin.com/mqrl . 2018-01-28T15:50:28Z ebzzry joined #lisp 2018-01-28T15:53:20Z rumbler31 joined #lisp 2018-01-28T15:54:02Z igemnace joined #lisp 2018-01-28T15:58:43Z eminhi joined #lisp 2018-01-28T15:59:40Z smurfrobot quit (Remote host closed the connection) 2018-01-28T16:01:47Z quotation_ joined #lisp 2018-01-28T16:02:01Z smurfrobot joined #lisp 2018-01-28T16:05:21Z warweasle quit (Quit: Leaving) 2018-01-28T16:07:24Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-28T16:07:24Z asarch joined #lisp 2018-01-28T16:12:02Z Chream_2 joined #lisp 2018-01-28T16:13:47Z Chream_ quit (Ping timeout: 268 seconds) 2018-01-28T16:17:36Z knicklux joined #lisp 2018-01-28T16:21:23Z anaumov joined #lisp 2018-01-28T16:24:49Z phoe: FLET ADD is not really readable for me. The function name ADD sounds like mathematical addition to me. 2018-01-28T16:24:51Z smurfrobot joined #lisp 2018-01-28T16:26:11Z phoe: Also in (defmacro do-cluster (fat32 cluster finally if-t &body if-nil) ...) 2018-01-28T16:26:27Z phoe: The lambda list seems weird. IF-T is a single form but IF-NIL is a &body. 2018-01-28T16:27:47Z phoe: ;; Read long name 2018-01-28T16:27:52Z phoe: This should be a separate function. 2018-01-28T16:29:21Z Rawriful quit (Quit: WeeChat 1.4) 2018-01-28T16:30:36Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-28T16:31:43Z quotation_ quit 2018-01-28T16:32:13Z Chream_ joined #lisp 2018-01-28T16:33:34Z knicklux quit (Quit: Leaving) 2018-01-28T16:34:00Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T16:34:04Z EvW quit (Ping timeout: 252 seconds) 2018-01-28T16:34:09Z beach: ebrasca: You have blank lines in mysterious places. 2018-01-28T16:34:28Z pjb: :-) 2018-01-28T16:35:17Z smurfrobot quit (Remote host closed the connection) 2018-01-28T16:35:22Z Chream_ joined #lisp 2018-01-28T16:35:27Z beach: ebrasca: Your LOOP clauses are not correctly indented. I suggest you use the slime-indentation contribution to get them right. 2018-01-28T16:36:13Z rumbler31 quit (Remote host closed the connection) 2018-01-28T16:36:31Z ebrasca: beach: What do you mean with slime-indentation contribution? 2018-01-28T16:37:36Z beach: In my .emacs I have: (slime-setup '(slime-fancy slime-tramp slime-asdf slime-indentation)) 2018-01-28T16:37:43Z beach: I mean the last item on that list. 2018-01-28T16:38:11Z ebrasca: beach: What do you mean with "You have blank lines in mysterious places." ? 2018-01-28T16:38:40Z beach: In Common Lisp code, there is usually one blank line between each top-level form and no blank lines anywhere else. 2018-01-28T16:39:13Z beach: So you have several blank lines in places that are not between top-level forms. 2018-01-28T16:39:24Z beach: And I don't see why you have them there, so they are mysterious. 2018-01-28T16:39:56Z ebrasca: I think it help to understand better my code. 2018-01-28T16:40:25Z jonh joined #lisp 2018-01-28T16:40:44Z beach: ebrasca: Perhaps, but the problem is that you are submitting it for others to read. So then, you should make it such that it is easier for THEM to read, and the best bet is then to follow established conventions. 2018-01-28T16:41:27Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-28T16:41:39Z beach: Oh, and the indentation of the arguments to MAP is wrong in one place. 2018-01-28T16:42:38Z ebrasca: I try to follow established conventions. 2018-01-28T16:42:50Z beach: I am sure you do. 2018-01-28T16:43:04Z beach: And I am just pointing out a few places where you aren't right now. 2018-01-28T16:43:11Z pjb: ebrasca: basically, if you need to insert a blank line in a function, it means you should refactor it, calling smaller functions. 2018-01-28T16:44:02Z pjb: ebrasca: then, you can also find a smart comment to insert on those blank lines ;-) 2018-01-28T16:44:02Z pjb: 2018-01-28T16:44:20Z beach: ebrasca: COND has a value, so you can do (setf name (cond ((string= ...)...))) 2018-01-28T16:44:22Z pagnol joined #lisp 2018-01-28T16:44:54Z beach: ebrasca: STACK is a list of things, right? 2018-01-28T16:45:30Z beach: Then use '() to initialize it. NIL means either the Boolean value false, or some default value. Not the empty list. 2018-01-28T16:46:22Z beach: ebrasca: '() is the empty list 'nil is the symbol NIL, () is the empty parameter list, and NIL, like I said, is a Boolean or a default value. 2018-01-28T16:47:06Z gglitch joined #lisp 2018-01-28T16:49:01Z beach: On a deeper level, I find it confusing the way your macro introduces variables, such as NAME that then occur without context when the macro is called. It suggests that the macro does not correspond to a very good abstraction. 2018-01-28T16:50:44Z milanj joined #lisp 2018-01-28T16:51:08Z Folkol__ quit (Read error: Connection reset by peer) 2018-01-28T16:51:40Z gglitch quit (Ping timeout: 252 seconds) 2018-01-28T16:52:35Z ebrasca: beach: I don't understand your last sentence . what context? 2018-01-28T16:53:35Z broccolistem quit (Read error: Connection reset by peer) 2018-01-28T16:53:47Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T16:53:52Z broccolistem joined #lisp 2018-01-28T16:54:34Z ebrasca: beach: My loops lock better with slime-indentation. 2018-01-28T16:55:13Z Chream_ joined #lisp 2018-01-28T16:56:37Z zazzerino joined #lisp 2018-01-28T16:57:45Z asarch: How would you run a system command from Lisp? 2018-01-28T16:58:57Z Kevslinger joined #lisp 2018-01-28T16:58:59Z moei joined #lisp 2018-01-28T17:01:01Z ebrasca: asarch: You can use trivial-shell. 2018-01-28T17:01:20Z fikka quit (Ping timeout: 248 seconds) 2018-01-28T17:01:29Z asarch: Thank you 2018-01-28T17:01:37Z asarch: Thank you very much ebrasca :-) 2018-01-28T17:01:41Z fisxoj joined #lisp 2018-01-28T17:04:48Z ebrasca: Here link of full archive : http://termbin.com/gkvi 2018-01-28T17:05:01Z smurfrobot joined #lisp 2018-01-28T17:06:01Z pjb: ebrasca: so you do read-only? No write-file? 2018-01-28T17:06:11Z heurist`_ joined #lisp 2018-01-28T17:06:21Z ebrasca: pjb: There is some write opetations done. 2018-01-28T17:06:37Z ebrasca: pjb: I am working now on write operations for FAT32. 2018-01-28T17:07:04Z heurist` quit (Ping timeout: 252 seconds) 2018-01-28T17:07:17Z ebrasca: pjb: You can write , resize and delete with some limitations. 2018-01-28T17:08:30Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T17:10:13Z Chream_ joined #lisp 2018-01-28T17:10:21Z _mjl joined #lisp 2018-01-28T17:10:33Z khisanth__ quit (Ping timeout: 264 seconds) 2018-01-28T17:10:59Z heurist`_ quit (Read error: Connection reset by peer) 2018-01-28T17:11:38Z heurist`_ joined #lisp 2018-01-28T17:12:41Z pjb: ok. 2018-01-28T17:12:43Z pjb: THanks. 2018-01-28T17:14:12Z beach: ebrasca: I guess I can be more specific after you put in comments describing what each function and macro does. That way, I can more easily tell whether they represent good abstractions. 2018-01-28T17:14:54Z Folkol joined #lisp 2018-01-28T17:17:40Z fikka joined #lisp 2018-01-28T17:17:49Z ebrasca: read-dir-from-cluster return all files/directories in directory. 2018-01-28T17:18:59Z ebrasca: remove-dir-from-cluster write byte #xE5 to all segments of one file/directori. 2018-01-28T17:19:11Z ebrasca: #xE5 idicate it is deleted. 2018-01-28T17:20:03Z ebrasca: write-metadata write some metadata like file-size , last-write-date to file/directory. 2018-01-28T17:21:10Z ebrasca: beach: ^ 2018-01-28T17:22:54Z khisanth__ joined #lisp 2018-01-28T17:24:17Z beach: OK, I am looking for a more detailed description. Like the type and role of each parameter, especially those of do-cluster. And I am looking for a kind of contract for it. Obviously it seems like it introduces variables such as NAME, CHECKSUM, etc. How does the body (bodies?) use those variables. What are their values, in each iteration. What is FINALLY, IF-T, IF-NIL and why are they named that way? etc, etc, etc. 2018-01-28T17:25:02Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T17:25:26Z beach: It looks like sort-name is only available in IF-NIL. Why? 2018-01-28T17:25:33Z beach: What is it? etc, etc. 2018-01-28T17:25:41Z ebrasca: beach: IF-T is for what is diferent in if if it is t 2018-01-28T17:26:23Z ebrasca: IF-NIL is sort-name of FAT32 files/directories 2018-01-28T17:26:26Z beach: I am not looking for a one-liner here in the channel. I am looking for a comment or a docstring, or both, that I can compare with the code. 2018-01-28T17:26:32Z Chream_ joined #lisp 2018-01-28T17:26:35Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T17:27:35Z beach: Oh, so IF-T and IF-NIL are FAT32-defined names? 2018-01-28T17:27:48Z beach: That doesn't sound right to me. 2018-01-28T17:28:44Z beach: Anyway, I need to go. Time to go cook dinner for my (admittedly small) family. 2018-01-28T17:29:04Z Chream_ joined #lisp 2018-01-28T17:30:16Z rumbler31 joined #lisp 2018-01-28T17:31:14Z beach: It seems I have a few more minutes. I have no idea what you mean by "IF-T is for what is diferent in if if it is t" 2018-01-28T17:31:33Z beach: "in if", in what "if"? 2018-01-28T17:31:40Z beach: You mean the IF inside the macro body? 2018-01-28T17:32:10Z beach: like the (if (= #x0F ...) ...? 2018-01-28T17:32:38Z ebrasca: yea 2018-01-28T17:32:54Z beach: If that is the case, I am now convinced thet do-cluster is not a good abstraction. Abstractions should be possible to understand by reading the name and the parameters (and the comments to those parameters), not what is inside it. 2018-01-28T17:33:32Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T17:33:50Z ebrasca: Maybe better names are : long-dir-name-diff dir-name-diff . 2018-01-28T17:33:51Z beach: So, you are basically saying "Hey, macro user, in order to know how to use this macro, you need to read the code for it. In fact, you need to read the code for it just in order to understand why the parameters are named the way they are". 2018-01-28T17:34:26Z milanj quit (Quit: This computer has gone to sleep) 2018-01-28T17:34:32Z beach: I don't know. I would have to wait for your docstrings and comments to tell. 2018-01-28T17:34:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T17:34:49Z Chream_ joined #lisp 2018-01-28T17:35:30Z milanj joined #lisp 2018-01-28T17:35:41Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T17:36:31Z fikka joined #lisp 2018-01-28T17:37:02Z Chream_ joined #lisp 2018-01-28T17:37:52Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T17:38:57Z _mjl quit (Ping timeout: 240 seconds) 2018-01-28T17:39:46Z Chream_2 joined #lisp 2018-01-28T17:40:17Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-28T17:41:10Z asarch quit (Ping timeout: 240 seconds) 2018-01-28T17:41:12Z fikka quit (Ping timeout: 246 seconds) 2018-01-28T17:42:02Z Chream_2 joined #lisp 2018-01-28T17:42:07Z nowhere_man joined #lisp 2018-01-28T17:42:25Z rumbler31 quit (Remote host closed the connection) 2018-01-28T17:42:46Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-28T17:44:30Z Chream_ joined #lisp 2018-01-28T17:44:37Z milanj quit (Quit: This computer has gone to sleep) 2018-01-28T17:47:47Z Chream_3 joined #lisp 2018-01-28T17:48:18Z Chream_3 quit (Read error: Connection reset by peer) 2018-01-28T17:48:47Z Chream_ quit (Ping timeout: 248 seconds) 2018-01-28T17:50:01Z BitPuffin quit (Remote host closed the connection) 2018-01-28T17:50:07Z Chream_ joined #lisp 2018-01-28T17:51:36Z ebrasca: beach: Now with better comments : http://termbin.com/ypdb 2018-01-28T17:56:38Z eivarv joined #lisp 2018-01-28T17:57:15Z Amplituhedron joined #lisp 2018-01-28T17:59:17Z orivej quit (Ping timeout: 256 seconds) 2018-01-28T18:03:59Z gilez joined #lisp 2018-01-28T18:05:42Z scymtym quit (Ping timeout: 246 seconds) 2018-01-28T18:07:30Z ebrasca: beach: Is it more easy to understand now? 2018-01-28T18:13:18Z Oladon quit (Quit: Leaving.) 2018-01-28T18:15:57Z randomstrangerb quit (Ping timeout: 240 seconds) 2018-01-28T18:17:12Z randomstrangerb joined #lisp 2018-01-28T18:18:14Z Pixel_Outlaw joined #lisp 2018-01-28T18:18:26Z solyd quit (Quit: solyd) 2018-01-28T18:20:56Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-28T18:22:48Z scymtym joined #lisp 2018-01-28T18:23:12Z dim joined #lisp 2018-01-28T18:27:48Z smurfrobot quit (Remote host closed the connection) 2018-01-28T18:28:02Z nika quit (Quit: Leaving...) 2018-01-28T18:31:28Z megachombass quit (Ping timeout: 260 seconds) 2018-01-28T18:31:44Z Oladon joined #lisp 2018-01-28T18:34:01Z TMA quit (Ping timeout: 265 seconds) 2018-01-28T18:34:36Z TMA joined #lisp 2018-01-28T18:41:04Z Kyo91 joined #lisp 2018-01-28T18:47:15Z warweasle joined #lisp 2018-01-28T18:47:53Z gglitch joined #lisp 2018-01-28T18:49:47Z eivarv quit (Quit: Sleep) 2018-01-28T18:51:22Z gglitch quit (Remote host closed the connection) 2018-01-28T18:51:34Z gglitch joined #lisp 2018-01-28T18:54:16Z vlatkoB quit (Remote host closed the connection) 2018-01-28T18:55:20Z Chream_ quit (Read error: Connection reset by peer) 2018-01-28T18:55:58Z gglitch quit (Ping timeout: 252 seconds) 2018-01-28T18:56:35Z fikka joined #lisp 2018-01-28T18:56:42Z EvW joined #lisp 2018-01-28T18:57:09Z Chream_ joined #lisp 2018-01-28T18:58:32Z d4ryus3 is now known as d4ryus 2018-01-28T18:59:06Z saki quit (Ping timeout: 256 seconds) 2018-01-28T18:59:16Z saki joined #lisp 2018-01-28T18:59:40Z turkja quit (Ping timeout: 256 seconds) 2018-01-28T19:02:30Z drewc_ joined #lisp 2018-01-28T19:02:46Z eivarv joined #lisp 2018-01-28T19:02:50Z dieggsy quit (Remote host closed the connection) 2018-01-28T19:04:10Z drewc quit (Ping timeout: 240 seconds) 2018-01-28T19:04:46Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-28T19:05:33Z dieggsy joined #lisp 2018-01-28T19:06:03Z randomstrangerb joined #lisp 2018-01-28T19:07:53Z ebrasca: beach: Are you here? 2018-01-28T19:09:57Z orivej joined #lisp 2018-01-28T19:11:00Z TMA quit (Ping timeout: 256 seconds) 2018-01-28T19:11:22Z beach: It is too late for me. I need to go spend time with my (admittedly small) family. I'll look tomorrow morning (UTC+1). 2018-01-28T19:11:30Z TMA joined #lisp 2018-01-28T19:11:45Z ebrasca: beach: Ok 2018-01-28T19:12:27Z gglitch joined #lisp 2018-01-28T19:17:06Z gglitch quit (Ping timeout: 246 seconds) 2018-01-28T19:24:47Z gilez quit (Ping timeout: 248 seconds) 2018-01-28T19:27:52Z Mon_Ouie joined #lisp 2018-01-28T19:27:56Z rumbler31 joined #lisp 2018-01-28T19:29:46Z drewc_ is now known as drewc 2018-01-28T19:30:28Z mlf joined #lisp 2018-01-28T19:31:13Z libreman quit (Ping timeout: 248 seconds) 2018-01-28T19:32:38Z rumbler31 quit (Ping timeout: 252 seconds) 2018-01-28T19:38:19Z smurfrobot joined #lisp 2018-01-28T19:40:09Z fikka quit (Ping timeout: 256 seconds) 2018-01-28T19:41:22Z gglitch joined #lisp 2018-01-28T19:42:38Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-28T19:43:59Z libreman joined #lisp 2018-01-28T19:47:32Z fisxoj quit (Quit: fisxoj) 2018-01-28T19:50:10Z eivarv quit (Quit: Sleep) 2018-01-28T19:51:11Z gglitch quit (Ping timeout: 276 seconds) 2018-01-28T19:51:14Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-28T19:51:36Z Rawriful joined #lisp 2018-01-28T19:54:36Z Chream_ joined #lisp 2018-01-28T19:56:14Z specbot quit (Remote host closed the connection) 2018-01-28T19:56:15Z minion quit (Remote host closed the connection) 2018-01-28T19:56:51Z fikka joined #lisp 2018-01-28T19:57:58Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-28T20:01:06Z damke joined #lisp 2018-01-28T20:01:26Z fikka quit (Ping timeout: 256 seconds) 2018-01-28T20:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T20:07:38Z aeth: ebrasca: From a previous conversation here on docstrings, I came up with this rule for my projects: "Docstrings for functions and methods should mention the inputs, the outputs, and the side effects." 2018-01-28T20:12:13Z aeth: so e.g. your read-file currently says "Return data buffer of file", but that's only the outputs part (except, I guess it mentions the variable file?) 2018-01-28T20:12:45Z aeth: In particular, it's unclear what the variable fat32 does. 2018-01-28T20:14:05Z dieggsy quit (Ping timeout: 255 seconds) 2018-01-28T20:15:47Z Amplituhedron joined #lisp 2018-01-28T20:16:19Z ebrasca: aeth: It is fat32 partition data. 2018-01-28T20:17:14Z ebrasca: aeth: How to manage multi line docstrings , or make 1 line docstrings? 2018-01-28T20:18:19Z aeth: I think multi-line docstrings are usually just indented poorly. 2018-01-28T20:18:51Z gilez joined #lisp 2018-01-28T20:19:11Z aeth: The ones I've seen usually have the first line line up with the function indentation and then the rest aren't indented. 2018-01-28T20:19:14Z pjb: the problem is that the string itself is indented. SO when multiline, I usually start it with a newline (and end it similarly). 2018-01-28T20:20:11Z ebrasca: pjb: What do you mean? 2018-01-28T20:20:15Z ym joined #lisp 2018-01-28T20:20:55Z aeth: ebrasca: " RET type your documentation RET type your documentation RET type your documentation RET " 2018-01-28T20:21:00Z aeth: (I think.) 2018-01-28T20:22:00Z ebrasca: mmm all lines start in column 0 2018-01-28T20:22:00Z attila_lendvai joined #lisp 2018-01-28T20:22:44Z ebrasca: aeth: do you mean that for multiline docstrigs? ^ 2018-01-28T20:24:36Z fikka joined #lisp 2018-01-28T20:25:59Z ebrasca: aeth: What are side effects ? 2018-01-28T20:26:46Z aeth: ebrasca: Here's an elaborate example of what pjb's style is, from pjb's own code: https://gitlab.com/com-informatimago/com-informatimago/blob/51d8149b18cdce4626c1d795181d9232c465c883/rdp/rdp-macro.lisp#L48-208 2018-01-28T20:27:22Z groovy2shoes joined #lisp 2018-01-28T20:27:30Z aeth: Notice that the first " lines up with the source indentation and then the rest start at column 0 2018-01-28T20:28:19Z aeth: ebrasca: Side effects would be on something like format, where what format t does depends on *standard-output* 2018-01-28T20:28:39Z eivarv joined #lisp 2018-01-28T20:28:43Z aeth: Side effects would also be if you modify an input data structure. 2018-01-28T20:28:50Z aeth: like e.g. map-into 2018-01-28T20:28:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T20:29:20Z ebrasca: mmm there is more docstring than code ... 2018-01-28T20:29:40Z fikka joined #lisp 2018-01-28T20:29:46Z ebrasca: I have read good code is better than documentation. 2018-01-28T20:30:39Z phoe: no. 2018-01-28T20:30:42Z aeth: Okay, I'm actually not sure if interacting with an outside global is a side effect or an input, actually. 2018-01-28T20:30:53Z phoe: people want to know what your library does without reading the code. 2018-01-28T20:31:01Z rumbler31 joined #lisp 2018-01-28T20:31:05Z aeth: I think setting it might be a side effect, but reading it might be an input. So my format example might be bad. 2018-01-28T20:31:35Z aeth: But I guess FORMAT does interact in a non-functional way with that variable. 2018-01-28T20:31:40Z drcode quit (Read error: Connection reset by peer) 2018-01-28T20:33:37Z aeth: ebrasca: In some sense, "good code is better than documentation" is true, but not in the way you think it is. I think it applies more to comments than to docstrings. If you have to comment some part of your code heavily, you can probably just write it better and not have to comment that part. 2018-01-28T20:34:19Z aeth: But you can't really do that with variable names themselves unless you make their names very long and ugly. 2018-01-28T20:35:20Z drcode joined #lisp 2018-01-28T20:35:39Z Sauvin is now known as Lupinity 2018-01-28T20:35:45Z drcode quit (Remote host closed the connection) 2018-01-28T20:36:13Z Lupinity is now known as Sauvin 2018-01-28T20:37:02Z ebrasca: aeth: How much is very long? 2018-01-28T20:37:25Z drcode joined #lisp 2018-01-28T20:38:14Z aeth: There is nothing stopping you from writing a mini-hyperspec in docstrings, complete with examples, etc. People would probably like that. You would probably need some markup convention for that, though. e.g. Python uses reStructuredText and Java uses JavaDoc 2018-01-28T20:38:14Z oleo: evening 2018-01-28T20:38:31Z aeth: What I gave is the minimum documentation you need to give in a docstring, not the maximum. 2018-01-28T20:39:19Z aeth: Doing something equivalent to docstrings in variable names would (1) capture only the minimum part, (2) look ugly, (3) violate CL style guidelines 2018-01-28T20:39:58Z pjb quit (Ping timeout: 256 seconds) 2018-01-28T20:40:17Z aeth: ebrasca: Well, some programmers in other programming languages used concise conventions so they could have their self-documenting variable names while not greatly lengthening their variable names. e.g. https://en.wikipedia.org/wiki/Hungarian_notation 2018-01-28T20:40:33Z aeth: And it's quite possibly the most hated coding style you can use. 2018-01-28T20:41:26Z aeth: (And it doesn't give anywhere near as much information as a well-written docstring.) 2018-01-28T20:41:50Z puchacz joined #lisp 2018-01-28T20:42:16Z puchacz: hi, in CFFI, how do I define something like this pls? 2018-01-28T20:42:17Z puchacz: void(*)(void*) 2018-01-28T20:42:34Z puchacz: I don't know C so I don't even know what it means 2018-01-28T20:42:44Z puchacz: like here: void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*)); 2018-01-28T20:43:01Z acolarh joined #lisp 2018-01-28T20:43:10Z puchacz: I can see in SQLITE source code it is defined as 2018-01-28T20:43:12Z puchacz: typedef void (*sqlite3_destructor_type)(void*); 2018-01-28T20:43:17Z igemnace joined #lisp 2018-01-28T20:43:22Z puchacz: #define SQLITE_TRANSIENT ((sqlite3_destructor_type)-1) 2018-01-28T20:44:57Z Bike: it's the type of pointers to functions of one void* argument with return type void. 2018-01-28T20:45:23Z borei joined #lisp 2018-01-28T20:45:30Z puchacz: Bike, okay, so is SQLITE_TRANSIENT a function? 2018-01-28T20:45:49Z Bike: it's uh... -1 cast to a function pointer. 2018-01-28T20:45:52Z Bike: that's pretty weird. 2018-01-28T20:46:18Z oleo: a define directive is for c-style macros not ? 2018-01-28T20:46:30Z puchacz: oleo, yes, text based 2018-01-28T20:46:33Z oleo: ok 2018-01-28T20:47:02Z puchacz: Bike, so I am not sure what argument to pass to sqlite_result_text using CFFI 2018-01-28T20:47:03Z ebrasca: aeth: I need to document small functions? 2018-01-28T20:47:11Z Bike: puchacz: a callback 2018-01-28T20:47:36Z borei: hi all 2018-01-28T20:47:57Z oleo: and typedef is like an alias 2018-01-28T20:48:01Z puchacz: Bike: so defcalback first, and it should take :pointer as an argument and return :void, right? 2018-01-28T20:48:06Z borei: lisp doesn't like my type specifier in method definition 2018-01-28T20:48:09Z Bike: think so, yes. 2018-01-28T20:48:16Z borei: (r '(simple-array double-float (4))) 2018-01-28T20:48:25Z puchacz: Bike: so where's the -1 coming into play? 2018-01-28T20:48:36Z Bike: borei: you mean, you tried to use this as a specializer? in the defmethod lambda list? 2018-01-28T20:48:44Z borei: yep 2018-01-28T20:48:50Z Bike: puchacz: i am honestly not sure how to do that in cffi 2018-01-28T20:49:02Z borei: (defmethod (setf translate) ((r '(simple-array double-float (4))) (transform transform-3d)) ..... ) 2018-01-28T20:49:08Z puchacz: Bike: and direct fli in lispworks? 2018-01-28T20:49:12Z Bike: borei: point one, don't quote it. point two, not all types are specializers. that type is not a specializer. 2018-01-28T20:49:17Z aeth: ebrasca: You have to have docstrings for every exported function in most styles. For the other functions, it depends on the style. 2018-01-28T20:49:21Z Bike: puchacz: i know even less about that, but you should have support available. 2018-01-28T20:49:32Z aeth: ebrasca: Small functions should have small docstrings, though. At least in general. 2018-01-28T20:49:35Z Bike: borei: defmethod deals with classes and eql specializers. 2018-01-28T20:49:54Z aeth: ebrasca: You can probably fit everything on two lines for small functions. 2018-01-28T20:50:01Z puchacz: Bike: ok, thanks. I will mail them 2018-01-28T20:50:31Z ebrasca: aeth: But i think some names are self explanatori. 2018-01-28T20:51:11Z ebrasca: aeth: like check-boot-jmp or first-data-sector . 2018-01-28T20:51:38Z Intensity joined #lisp 2018-01-28T20:51:48Z minion joined #lisp 2018-01-28T20:51:55Z aeth: Something like a make-foo could possibly be documented in one line: "Returns a newly allocated foo based on the filename file and the number number" 2018-01-28T20:52:28Z aeth: If it's not complicated, no need to make the documentation complicated. 2018-01-28T20:52:28Z specbot joined #lisp 2018-01-28T20:53:20Z aeth: If you had a formal style for your docstrings, it would probably make them take up several lines at a minimum. 2018-01-28T20:53:33Z ebrasca: Documentation is hard , don't say it is not hard. 2018-01-28T20:53:49Z hel-io joined #lisp 2018-01-28T20:54:38Z ebrasca: But I sometimes don't remember what output some of my functions ... 2018-01-28T20:55:06Z aeth: The output is the most important part! (at least in CL) 2018-01-28T20:56:19Z aeth: A lot of the tile you might say things like "the number number" in your docstring because your variable name for the input is perfectly named. Sometimes people capitalize the names to make it look a little better, i.e. "the number NUMBER" 2018-01-28T20:56:24Z aeth: s/tile/time/ 2018-01-28T20:56:49Z flak quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-28T20:56:50Z aeth: But the output can definitely be surprising. 2018-01-28T20:58:14Z ebrasca: I don't like my fat32 implementation. 2018-01-28T20:59:35Z raynold quit (Quit: Connection closed for inactivity) 2018-01-28T21:00:49Z Oladon quit (Quit: Leaving.) 2018-01-28T21:01:07Z puchacz: Bike: FYI, changing the argument type from :pointer to :int of sqlite3-result-text lets me pass -1 and it seems to work..... 2018-01-28T21:01:24Z puchacz: C is really relaxed about types :) 2018-01-28T21:01:43Z Bike: more like cffi has no way to say no 2018-01-28T21:02:24Z smurfrobot quit (Remote host closed the connection) 2018-01-28T21:02:45Z puchacz: but it seems that C code is passing -1, straight integer there 2018-01-28T21:03:16Z oleo: since it was textual ? 2018-01-28T21:03:26Z oleo: verbatim -1 ? 2018-01-28T21:03:30Z puchacz: yes 2018-01-28T21:03:39Z oleo: hmmm 2018-01-28T21:03:46Z gilez quit (Ping timeout: 256 seconds) 2018-01-28T21:04:00Z puchacz: I think "casting" to function pointer does not do anything in C to actual bitpattern of data in memory..... but I may be wrong, as I don't know C 2018-01-28T21:04:44Z oleo: erm, afaik the layouts from lisp to C types are very different 2018-01-28T21:05:01Z puchacz: but -1 is translated in CFFI 2018-01-28T21:05:03Z oleo: other than that....C side itself is pretty complicated.... 2018-01-28T21:05:22Z oleo: no idea 2018-01-28T21:06:39Z fikka quit (Ping timeout: 248 seconds) 2018-01-28T21:06:47Z nowhereman_ joined #lisp 2018-01-28T21:06:58Z smasta joined #lisp 2018-01-28T21:07:05Z pjb joined #lisp 2018-01-28T21:07:17Z Bike: puchacz: you are correct, that cast doesn't really have to do with the actual value. 2018-01-28T21:07:25Z Bike: also, you can ignore oleo. 2018-01-28T21:07:41Z quotation_ joined #lisp 2018-01-28T21:07:44Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-28T21:07:55Z markong quit (Ping timeout: 260 seconds) 2018-01-28T21:09:07Z puchacz: Bike: which means then that I really can just pass -1 :-) 2018-01-28T21:09:22Z Bike: yes. 2018-01-28T21:09:28Z puchacz: (as you are confirming casting is really no-op at runtime) 2018-01-28T21:09:46Z Bike: that particular cast is. 2018-01-28T21:10:30Z papachan joined #lisp 2018-01-28T21:11:20Z smurfrobot joined #lisp 2018-01-28T21:15:23Z smasta quit (Quit: WeeChat 2.0.1) 2018-01-28T21:18:15Z pjb: ebrasca: yes: basically all that you put in the docstring, you could put it in a declare. 2018-01-28T21:18:49Z eivarv quit (Quit: Sleep) 2018-01-28T21:19:33Z pjb: ebrasca: you only have to invent a language and declaim the declarations ;-) 2018-01-28T21:19:48Z random-nick quit (Remote host closed the connection) 2018-01-28T21:20:01Z zazzerino left #lisp 2018-01-28T21:20:18Z ebrasca: pjb: I have never read about declare function. 2018-01-28T21:20:41Z pjb: declare is not an operator. 2018-01-28T21:20:54Z ebrasca: ??? 2018-01-28T21:21:06Z gglitch` joined #lisp 2018-01-28T21:22:27Z mishoo quit (Ping timeout: 240 seconds) 2018-01-28T21:22:35Z fikka joined #lisp 2018-01-28T21:23:05Z Bike: declare is a syntax thing. it only looks like an operator. 2018-01-28T21:24:00Z ebrasca: I have remember it is for safety , speed and types. 2018-01-28T21:24:20Z zazzerino joined #lisp 2018-01-28T21:24:29Z hel-io quit (Remote host closed the connection) 2018-01-28T21:25:01Z hiroaki joined #lisp 2018-01-28T21:25:16Z pjb: ebrasca: https://codeshare.io/5vXo4y 2018-01-28T21:25:23Z pjb: ebrasca: it is for whatever you want. 2018-01-28T21:25:25Z eivarv joined #lisp 2018-01-28T21:25:31Z pjb: You just need to declare the declarations you use. 2018-01-28T21:25:45Z pjb: Then of course, it may be useful to write tools processing those declarations… 2018-01-28T21:25:56Z gglitch` quit (Ping timeout: 252 seconds) 2018-01-28T21:25:57Z hel-io joined #lisp 2018-01-28T21:27:38Z dieggsy joined #lisp 2018-01-28T21:28:10Z TMA: ebrasca: the main thing is that you can ignore most (if not all) of the declarations except for (declare (special ...)) 2018-01-28T21:29:28Z zazzerino quit (Remote host closed the connection) 2018-01-28T21:29:40Z _death: TMA: not really, an implementation can ignore them, not a programmer 2018-01-28T21:30:11Z zazzerino joined #lisp 2018-01-28T21:30:43Z Bike: yeah, a programmer can ignore anything they want. free will, baby 2018-01-28T21:31:20Z _death: I expected that comeback ;) 2018-01-28T21:31:52Z Bike: special is the only one with a straightforward semantic effect though 2018-01-28T21:38:54Z acolarh quit (Ping timeout: 256 seconds) 2018-01-28T21:38:59Z puchacz quit (Quit: Konversation terminated!) 2018-01-28T21:39:28Z fikka quit (Ping timeout: 256 seconds) 2018-01-28T21:40:03Z ebrasca: I don't like someone to ignore my commands less some PC. 2018-01-28T21:41:16Z fikka joined #lisp 2018-01-28T21:42:17Z Folkol quit (Read error: Connection reset by peer) 2018-01-28T21:42:17Z smurfrobot quit (Remote host closed the connection) 2018-01-28T21:46:36Z jmercouris joined #lisp 2018-01-28T21:46:46Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-28T21:46:50Z hiroaki quit (Ping timeout: 252 seconds) 2018-01-28T21:47:36Z damke_ joined #lisp 2018-01-28T21:47:47Z hiroaki joined #lisp 2018-01-28T21:49:00Z eivarv quit (Quit: Sleep) 2018-01-28T21:50:43Z pilfink joined #lisp 2018-01-28T21:50:44Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-28T21:50:45Z damke quit (Ping timeout: 264 seconds) 2018-01-28T21:51:55Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-28T21:53:03Z mgsk quit (Ping timeout: 248 seconds) 2018-01-28T21:54:48Z minion quit (Remote host closed the connection) 2018-01-28T21:54:48Z specbot quit (Remote host closed the connection) 2018-01-28T21:54:48Z easye quit (Read error: Connection reset by peer) 2018-01-28T21:55:06Z pjb: This is why it's important to also write the tools that will interpret your custom declarations. 2018-01-28T21:55:30Z pjb: Then you can call them automatically in your build process, and fail when there are errors. 2018-01-28T21:56:07Z pjb: For example, those pre- and post-condition can be used to generate assertions and use them in tests or in the compiled code. 2018-01-28T22:00:59Z damke joined #lisp 2018-01-28T22:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T22:04:04Z markong joined #lisp 2018-01-28T22:05:24Z smasta joined #lisp 2018-01-28T22:05:48Z ebrasca: pjb: I don't know hot to make someting like this. 2018-01-28T22:07:54Z minion joined #lisp 2018-01-28T22:07:54Z specbot joined #lisp 2018-01-28T22:11:18Z ebrasca: pjb: Thanks for your tips. 2018-01-28T22:11:46Z shka quit (Ping timeout: 256 seconds) 2018-01-28T22:11:50Z papachan quit (Read error: Connection reset by peer) 2018-01-28T22:12:38Z pjb: ebrasca: for example, see common-lisp/lisp/stepper-functions.lisp:678 2018-01-28T22:13:08Z papachan joined #lisp 2018-01-28T22:13:11Z Murii quit (Quit: WeeChat 1.4) 2018-01-28T22:13:51Z pjb: I use the stepper declaration to disable the stepper in some functions that cannot be stepped (eg. the functions that are called from the stepper itself or that are too much of a bore to step into). 2018-01-28T22:14:56Z CrazyEddy quit (Ping timeout: 248 seconds) 2018-01-28T22:15:10Z zazzerino quit (Ping timeout: 256 seconds) 2018-01-28T22:15:34Z borei quit (Quit: Leaving.) 2018-01-28T22:15:45Z pjb: ebrasca: elsewhere, I've used declare to declare commands (interactive functions). In emacs lisp, (interactive) is a declaration. In CL You write (declare (interactive)). 2018-01-28T22:16:14Z pjb: ebrasca: (of course, you can also use a macro such as defcommand in those cases, sometimes it's easier than to process declarations). 2018-01-28T22:20:15Z damke_ joined #lisp 2018-01-28T22:20:46Z fluke` quit (Read error: Connection reset by peer) 2018-01-28T22:20:46Z smurfrobot joined #lisp 2018-01-28T22:23:09Z damke quit (Ping timeout: 264 seconds) 2018-01-28T22:23:53Z fluke` joined #lisp 2018-01-28T22:24:27Z mgsk joined #lisp 2018-01-28T22:26:30Z oleo quit (Ping timeout: 265 seconds) 2018-01-28T22:26:57Z caffe joined #lisp 2018-01-28T22:29:02Z damke joined #lisp 2018-01-28T22:30:09Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-28T22:30:33Z zazzerino joined #lisp 2018-01-28T22:31:23Z randomstrangerb joined #lisp 2018-01-28T22:31:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T22:32:43Z raynold joined #lisp 2018-01-28T22:37:32Z smurfrobot quit (Remote host closed the connection) 2018-01-28T22:40:48Z hel-io quit 2018-01-28T22:41:20Z stylewarning: hello friends 2018-01-28T22:43:02Z jmercouris: hello 2018-01-28T22:43:35Z stylewarning: jmercouris: how is nEXT going 2018-01-28T22:43:48Z jmercouris: stylewarning: Going pretty good, thank you for asking! 2018-01-28T22:43:57Z jmercouris: GTK release is out, working on a lot of internal stuff, and a new blog 2018-01-28T22:44:09Z stylewarning: neat, lmk when the blog is up 2018-01-28T22:44:15Z jmercouris: Will do! 2018-01-28T22:44:17Z warweasle quit (Quit: Leaving) 2018-01-28T22:45:19Z damke_ joined #lisp 2018-01-28T22:47:09Z damke quit (Ping timeout: 264 seconds) 2018-01-28T22:49:04Z nirved quit (Quit: Leaving) 2018-01-28T22:57:03Z isBEKaml joined #lisp 2018-01-28T23:01:31Z aeth: If someone was going to add a contract system to CL it would be nice for the type part of it to use type declarations in SBCL and any other CL that uses similar semantics and check-type for the majority of implementations. 2018-01-28T23:02:12Z pagnol quit (Ping timeout: 256 seconds) 2018-01-28T23:02:36Z mgsk: jmercouris: seeing weird behaviour of tabs in gtk. Sometimes C-x b doesn't show any tabs, and C-[ shows empty pages. Aware of that? 2018-01-28T23:02:48Z aeth: (I'm assuming a contract system in CL would do both runtime type checking and compile time type checking.) 2018-01-28T23:03:05Z jmercouris: mgsk: I'm aware the GTK port is a huge hack :D 2018-01-28T23:03:13Z mgsk: jmercouris: dang! 2018-01-28T23:03:18Z Karl_Dscc quit (Remote host closed the connection) 2018-01-28T23:03:18Z jmercouris: mgsk: That specific behavior I only knew parts of 2018-01-28T23:03:25Z jmercouris: I'm working on it, don't worry :) 2018-01-28T23:03:32Z jmercouris: Thank you for your report 2018-01-28T23:03:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T23:05:36Z damke_ joined #lisp 2018-01-28T23:05:58Z vaporatorius__ joined #lisp 2018-01-28T23:06:03Z mgsk: jmercouris: :) 2018-01-28T23:07:07Z jmercouris: mgsk: as a quick aside, if c-x b doesn't show any tabs, type space, and then backspace, it'll refresh the table view, usually :D 2018-01-28T23:08:21Z mgsk: jmercouris: omg it works! 2018-01-28T23:08:42Z jmercouris: Lol yeah, stupid listener functions not getting invoked 2018-01-28T23:09:00Z Ven`` joined #lisp 2018-01-28T23:09:06Z mgsk: jmercouris: after that, it goes the whole frame goes blank. No errors/warnings 2018-01-28T23:09:27Z jmercouris: Hmm, that is very mysterious 2018-01-28T23:09:27Z vap1 quit (Ping timeout: 240 seconds) 2018-01-28T23:09:36Z Ven`` quit (Read error: Connection reset by peer) 2018-01-28T23:09:55Z mgsk: I wonder if it is my window manager? I will try with something normal like gnome 2018-01-28T23:10:15Z jmercouris: I don't think that should have an effect, though the stupidity of GTK has surprised me quite a bit :D 2018-01-28T23:10:20Z isBEKaml: "normal like gnome" :D 2018-01-28T23:10:25Z jmercouris: I was testing in i3 WM 2018-01-28T23:10:40Z mgsk: jmercouris: ah, so that won't be it then 2018-01-28T23:11:45Z Ven`` joined #lisp 2018-01-28T23:11:48Z mgsk: Also C-x C-c isn't doing anything 2018-01-28T23:12:00Z jmercouris: Should be calling (gtk:leave-gtk-main) 2018-01-28T23:12:06Z jmercouris: maybe it is getting blocked by some other signal 2018-01-28T23:13:16Z jmercouris: it's too bad you don't have a mac, works like a dream on cocoa 2018-01-28T23:13:35Z mgsk: I do... with linux installed 2018-01-28T23:13:36Z jmercouris: except for using the legacy webkit wrappers on cocoa, hopefully with a new ffigen replacment that can be fixed 2018-01-28T23:13:37Z mgsk: :3 2018-01-28T23:13:50Z jmercouris: hahah nice :D 2018-01-28T23:14:34Z isBEKaml: "Hackinux" 2018-01-28T23:15:12Z jmercouris: I tried installing BSD on my macbook for dual boot, I ended up in tears from frustration 2018-01-28T23:15:32Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-28T23:16:01Z isBEKaml: Surely, you shouldn't have problems installing any BSD on a Mac? Because Mac is derived from BSD? 2018-01-28T23:16:17Z caffe: more likely bootloader problems 2018-01-28T23:16:31Z isBEKaml is currently reading through Loving Lisp online and is bored 2018-01-28T23:16:31Z jmercouris: caffe: Correct 2018-01-28T23:16:47Z jmercouris: Plus a whole slew of driver issues 2018-01-28T23:16:50Z isBEKaml: Ah, bootloader issues. Just use BSD straight up... :D 2018-01-28T23:17:11Z jmercouris: darwin has diverged quite a bit from straight bsd, at least apple isn't freely handing out kexts 2018-01-28T23:18:03Z isBEKaml: Probably - I have never used a mac, too poor to own one 2018-01-28T23:19:45Z p_l: isBEKaml: The "BSDs" that most people recall aren't MacOS ancestors 2018-01-28T23:20:47Z p_l: OSX is derived from OPENSTEP which was derived from NEXTSTEP which is most closely related to OSFMK which is related to original "Mach Unix" in turn related to BSD4 2018-01-28T23:21:25Z smurfrobot joined #lisp 2018-01-28T23:22:26Z gglitch` joined #lisp 2018-01-28T23:23:26Z damke joined #lisp 2018-01-28T23:24:11Z jmercouris: hence the NS prefix everywhere 2018-01-28T23:24:22Z wigust quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-28T23:24:37Z jmercouris: these days though, technically a Mach kernel, I believe they use shared memory for IPC, which technically disqualifies it 2018-01-28T23:24:45Z jmercouris: I guess it is a "hybrid" kernel, whatever that means 2018-01-28T23:24:53Z p_l: jmercouris: it's Mach 2018-01-28T23:25:05Z jmercouris: I've heard arguments that it is not "pure" enough 2018-01-28T23:25:10Z p_l: also, Mach used shared memory for IPC since the very start 2018-01-28T23:25:20Z p_l: it's part of how it got a bad rep 2018-01-28T23:25:27Z jmercouris: Did it? I thought there was a different mechanism 2018-01-28T23:25:38Z jmercouris: some sort of strange message passing buffer or something 2018-01-28T23:25:53Z caffe: 'hybrid' as in mach 2.5 vs mach 3 2018-01-28T23:26:02Z caffe: mach 3 is a true microkernel 2018-01-28T23:26:04Z p_l: jmercouris: message passing over bits of memory that were shared and unshared using MMU 2018-01-28T23:26:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-28T23:26:20Z p_l: caffe: Mach hybridized further in later versions 2018-01-28T23:26:55Z gglitch` quit (Ping timeout: 265 seconds) 2018-01-28T23:26:57Z caffe: i think you mean XNU 2018-01-28T23:27:09Z caffe: which is based on mach 2.5 2018-01-28T23:27:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-28T23:27:15Z p_l: OSFMK is sorta an amalgamation of Mach 3 and 4 by now, and that's the basis of XNU 2018-01-28T23:27:25Z caffe: no, 2.5 is 2018-01-28T23:27:48Z p_l: caffe: Apple seems to disagree 2018-01-28T23:28:09Z p_l: (they explicitly mention OSFMK 7.3 as basis) 2018-01-28T23:28:16Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-28T23:28:38Z p_l: and while osfmk might have started on mach 2.5, it didn't stay there 2018-01-28T23:28:53Z isBEKaml: p_l: I didn't really read much into the MacOS (X) divergence. I knew there was NextStep somewhere in its heritage, but NS was derived from BSD line. I don't recall reading about OSFMK -- I'll look that up, thanks 2018-01-28T23:29:31Z fikka joined #lisp 2018-01-28T23:29:35Z randomstrangerb joined #lisp 2018-01-28T23:29:40Z caffe: well 3 is certainly not hybrid 2018-01-28T23:29:43Z p_l: isBEKaml: NS was derived from Mach, and cross-pollinated with OSF/1 mostly, which was BSD-oriented "counter" to AT&T SysV 2018-01-28T23:30:21Z caffe: there is also no "mach 4" 2018-01-28T23:30:23Z caffe: so... 2018-01-28T23:30:40Z caffe: XNU still is a lot closer to 2.5 in design 2018-01-28T23:32:21Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-28T23:32:50Z p_l: there's actually a Mach 4, because development didn't end when CMU released 3.0. OSFMK which started on 2.5, continued to take code from 3.0 and later projects, including a lot of contribution of their own. Mach 4.0 created also official interface for "colocation" i.e. starting servers in kernel space 2018-01-28T23:33:16Z caffe: take code, sure 2018-01-28T23:33:51Z jfb4 quit (Ping timeout: 248 seconds) 2018-01-28T23:34:40Z zazzerino quit (Remote host closed the connection) 2018-01-28T23:34:40Z caffe: still, i can't help but see it as a fork of 2.5 2018-01-28T23:34:45Z p_l: after Mach 3, the research work turned towards more hybrid approaches, especially as Mach IPC security... was problematic for performance 2018-01-28T23:35:01Z damke_ joined #lisp 2018-01-28T23:35:05Z p_l: caffe: well, it did start out as one, and never went full retard^W3.0 2018-01-28T23:35:43Z jfb4 joined #lisp 2018-01-28T23:35:54Z p_l: anyway, the closest BSD relationship that OSX has is OSF/1 2018-01-28T23:36:12Z caffe: i'm not sure a drop-in microkernel was ever a good fit for unix to begin with 2018-01-28T23:36:19Z p_l: down to using common kernel codebase (though I believe Apple changed a lot since then) 2018-01-28T23:36:56Z jmercouris quit (Remote host closed the connection) 2018-01-28T23:36:56Z caffe: which is why 2.5 ended up being more influential than 3 2018-01-28T23:36:57Z damke quit (Ping timeout: 264 seconds) 2018-01-28T23:40:05Z pagnol joined #lisp 2018-01-28T23:40:12Z p_l: yes 2018-01-28T23:40:50Z p_l: I think nobody except for GNU went seriously about creating "pure" Mach 3 system 2018-01-28T23:41:45Z p_l: OSFMK was a "pragmatic" system that didn't discard syscalls etc. and incorporated things from newer research, while post-CMU Mach4 project reintroduced formal apis for colocation 2018-01-28T23:44:56Z p_l: lol 2018-01-28T23:45:02Z p_l: sorry, wrong window :D 2018-01-28T23:48:59Z eminhi quit (Quit: leaving) 2018-01-28T23:49:27Z Oladon joined #lisp 2018-01-28T23:49:37Z beach` joined #lisp 2018-01-28T23:51:59Z isBEKaml quit (Ping timeout: 248 seconds) 2018-01-28T23:52:36Z smurfrobot quit (Remote host closed the connection) 2018-01-28T23:53:39Z Pixel_Outlaw quit (Quit: Leaving) 2018-01-28T23:53:49Z gglitch` joined #lisp 2018-01-28T23:53:59Z beach quit (Ping timeout: 265 seconds) 2018-01-28T23:54:59Z smurfrobot joined #lisp 2018-01-28T23:55:11Z fikka quit (Ping timeout: 248 seconds) 2018-01-28T23:59:27Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-29T00:00:36Z gglitch` quit (Ping timeout: 246 seconds) 2018-01-29T00:02:22Z dieggsy quit (Remote host closed the connection) 2018-01-29T00:03:27Z dieggsy` joined #lisp 2018-01-29T00:03:34Z dieggsy joined #lisp 2018-01-29T00:03:44Z warweasle joined #lisp 2018-01-29T00:10:32Z sigjuice: is https://gitlab.common-lisp.net/ down? I get an HTTP response of 502. 2018-01-29T00:10:49Z dieggsy` quit (Quit: ERC (IRC client for Emacs 27.0.50)) 2018-01-29T00:11:19Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-29T00:12:16Z Xach: sigjuice: doesn't look good 2018-01-29T00:12:24Z dieggsy left #lisp 2018-01-29T00:12:27Z dieggsy joined #lisp 2018-01-29T00:13:28Z Amplituhedron joined #lisp 2018-01-29T00:13:59Z Rawriful quit (Quit: WeeChat 1.4) 2018-01-29T00:29:08Z FreeBirdLjj joined #lisp 2018-01-29T00:33:40Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-29T00:36:40Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-29T00:42:11Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-29T00:42:43Z milanj joined #lisp 2018-01-29T00:43:25Z randomstrangerb joined #lisp 2018-01-29T00:44:22Z turkja joined #lisp 2018-01-29T00:46:15Z rumbler31 quit (Remote host closed the connection) 2018-01-29T00:49:20Z rumbler31 joined #lisp 2018-01-29T00:54:03Z arescorpio joined #lisp 2018-01-29T00:55:03Z fikka joined #lisp 2018-01-29T00:57:32Z gglitch`` joined #lisp 2018-01-29T00:57:47Z rumbler31 quit (Remote host closed the connection) 2018-01-29T00:58:19Z Kaisyu joined #lisp 2018-01-29T01:02:38Z gglitch`` quit (Ping timeout: 252 seconds) 2018-01-29T01:05:10Z arbv quit (Ping timeout: 256 seconds) 2018-01-29T01:06:37Z arbv joined #lisp 2018-01-29T01:07:27Z EvW quit (Ping timeout: 246 seconds) 2018-01-29T01:16:45Z markong quit (Ping timeout: 256 seconds) 2018-01-29T01:18:02Z Myk267 quit (Ping timeout: 252 seconds) 2018-01-29T01:22:10Z pierpa joined #lisp 2018-01-29T01:23:31Z Arcaelyx joined #lisp 2018-01-29T01:24:53Z gilez joined #lisp 2018-01-29T01:26:02Z smurfrobot joined #lisp 2018-01-29T01:27:58Z shifty joined #lisp 2018-01-29T01:28:58Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T01:29:24Z Arcaelyx quit (Ping timeout: 252 seconds) 2018-01-29T01:30:10Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-29T01:30:57Z TMA quit (Ping timeout: 264 seconds) 2018-01-29T01:31:07Z TMA joined #lisp 2018-01-29T01:31:09Z Myk267 joined #lisp 2018-01-29T01:33:20Z Arcaelyx joined #lisp 2018-01-29T01:35:18Z fikka joined #lisp 2018-01-29T01:37:14Z fisxoj joined #lisp 2018-01-29T01:41:41Z smurfrobot joined #lisp 2018-01-29T01:43:40Z pagnol quit (Ping timeout: 240 seconds) 2018-01-29T01:58:23Z ebzzry quit (Ping timeout: 248 seconds) 2018-01-29T01:59:44Z trn quit (Excess Flood) 2018-01-29T01:59:53Z trn joined #lisp 2018-01-29T02:01:22Z nowhere_man joined #lisp 2018-01-29T02:02:00Z gglitch`` joined #lisp 2018-01-29T02:03:17Z quotation_ quit (Quit: Connection closed for inactivity) 2018-01-29T02:05:14Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-29T02:06:26Z gglitch`` quit (Ping timeout: 252 seconds) 2018-01-29T02:08:37Z damke joined #lisp 2018-01-29T02:10:22Z smurfrobot quit (Remote host closed the connection) 2018-01-29T02:10:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-29T02:12:54Z pagnol joined #lisp 2018-01-29T02:17:26Z deng_cn joined #lisp 2018-01-29T02:19:22Z openthesky joined #lisp 2018-01-29T02:19:56Z openthesky quit (Client Quit) 2018-01-29T02:30:05Z safe joined #lisp 2018-01-29T02:31:27Z pagnol quit (Ping timeout: 248 seconds) 2018-01-29T02:32:09Z damke quit (Ping timeout: 264 seconds) 2018-01-29T02:32:51Z damke joined #lisp 2018-01-29T02:38:28Z d4ryus1 joined #lisp 2018-01-29T02:38:50Z attila_lendvai quit (Quit: Leaving.) 2018-01-29T02:41:10Z d4ryus quit (Ping timeout: 240 seconds) 2018-01-29T02:41:35Z zazzerino joined #lisp 2018-01-29T02:43:40Z TMA quit (Ping timeout: 240 seconds) 2018-01-29T02:45:37Z TMA joined #lisp 2018-01-29T02:48:56Z adolf_stalin joined #lisp 2018-01-29T02:50:24Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-29T02:53:45Z damke quit (Ping timeout: 264 seconds) 2018-01-29T02:54:48Z damke joined #lisp 2018-01-29T02:56:56Z igemnace joined #lisp 2018-01-29T02:59:59Z damke_ joined #lisp 2018-01-29T03:00:39Z zazzerino left #lisp 2018-01-29T03:02:09Z damke quit (Ping timeout: 264 seconds) 2018-01-29T03:04:55Z smurfrobot joined #lisp 2018-01-29T03:05:29Z arescorpio quit (Excess Flood) 2018-01-29T03:07:50Z Oladon quit (Quit: Leaving.) 2018-01-29T03:09:35Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-29T03:12:06Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T03:12:10Z warweasle quit (Quit: Leaving) 2018-01-29T03:14:04Z krwq joined #lisp 2018-01-29T03:19:18Z fikka joined #lisp 2018-01-29T03:21:13Z dieggsy quit (Remote host closed the connection) 2018-01-29T03:25:53Z gglitch`` joined #lisp 2018-01-29T03:28:55Z jacking joined #lisp 2018-01-29T03:30:12Z aindilis joined #lisp 2018-01-29T03:37:59Z smurfrobot joined #lisp 2018-01-29T03:42:57Z gilez quit (Ping timeout: 256 seconds) 2018-01-29T03:43:14Z gglitch`` quit (Ping timeout: 252 seconds) 2018-01-29T03:45:10Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-29T03:45:49Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-29T03:46:06Z orivej quit (Ping timeout: 256 seconds) 2018-01-29T03:46:18Z terpri quit (Ping timeout: 268 seconds) 2018-01-29T03:46:26Z randomstrangerb joined #lisp 2018-01-29T03:46:32Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-29T03:47:51Z dented42 joined #lisp 2018-01-29T03:53:26Z dieggsy joined #lisp 2018-01-29T03:53:36Z jacking_ joined #lisp 2018-01-29T03:53:42Z fikka quit (Ping timeout: 268 seconds) 2018-01-29T03:55:01Z igemnace joined #lisp 2018-01-29T03:55:58Z fikka joined #lisp 2018-01-29T03:56:12Z dddddd quit (Remote host closed the connection) 2018-01-29T03:56:56Z igemnace left #lisp 2018-01-29T04:04:24Z marusich joined #lisp 2018-01-29T04:04:56Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-29T04:05:06Z beach` is now known as beach 2018-01-29T04:06:13Z mlf quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-29T04:06:51Z nika joined #lisp 2018-01-29T04:07:16Z beach: Good morning everyone! 2018-01-29T04:07:16Z Colleen: beach: drmeister said 2 hours, 5 minutes ago: In cstify.lisp it looks like there is a redundant (cstify (cdr list)) - is that the case? 2018-01-29T04:07:24Z gglitch`` joined #lisp 2018-01-29T04:08:31Z jacking quit (Quit: Ex-Chat) 2018-01-29T04:08:32Z dented42 joined #lisp 2018-01-29T04:08:45Z jacking_ quit (Quit: Leaving) 2018-01-29T04:09:33Z beach: ebrasca: You can avoid ugly docstrings in code by using #.(format nil "...") Then you can use the ~@ format directive that lets you indent the next line in the source code, but that indentation is not part of the string. 2018-01-29T04:11:09Z asarch joined #lisp 2018-01-29T04:11:22Z smurfrobot quit (Remote host closed the connection) 2018-01-29T04:11:40Z beach: ebrasca: I have said this before, but I'll say it again: docstrings are typically meant for the user and not for the maintainer, but they are in a place where the user does not look and the maintainer has to. Therefore they are noise in the source code. For that reason, I use (SETF DOCUMENTATION) intsead and I put the docstrings in a separate file. 2018-01-29T04:15:45Z voidlily quit (Remote host closed the connection) 2018-01-29T04:18:24Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-29T04:19:37Z randomstrangerb joined #lisp 2018-01-29T04:20:38Z saki quit (Quit: saki) 2018-01-29T04:21:08Z voidlily joined #lisp 2018-01-29T04:21:43Z beach: ebrasca: It is preferable to use signals other than simple errors so that client code can catch the errors by type. It is also great to provide restarts, so that client code can communicate with the library and invoke possible ways to continue. 2018-01-29T04:24:42Z beach: ebrasca: I'll still wait for the documentation of do-cluster and the functions. 2018-01-29T04:26:32Z smurfrobot joined #lisp 2018-01-29T04:27:43Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T04:28:46Z smurfrobot quit (Remote host closed the connection) 2018-01-29T04:29:04Z smurfrobot joined #lisp 2018-01-29T04:32:32Z CrazyEddy joined #lisp 2018-01-29T04:34:49Z fikka joined #lisp 2018-01-29T04:36:36Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-29T04:37:39Z Oladon joined #lisp 2018-01-29T04:44:50Z milanj quit (Quit: This computer has gone to sleep) 2018-01-29T04:48:06Z smurfrobot quit (Remote host closed the connection) 2018-01-29T04:49:12Z schoppenhauer quit (Ping timeout: 268 seconds) 2018-01-29T04:50:40Z schoppenhauer joined #lisp 2018-01-29T04:51:16Z fisxoj quit (Quit: fisxoj) 2018-01-29T05:00:50Z tokik joined #lisp 2018-01-29T05:01:39Z smurfrobot joined #lisp 2018-01-29T05:03:42Z milanj joined #lisp 2018-01-29T05:03:43Z wigust joined #lisp 2018-01-29T05:08:29Z Bike quit (Quit: Lost terminal) 2018-01-29T05:08:36Z fikka quit (Ping timeout: 246 seconds) 2018-01-29T05:09:01Z daniel-s joined #lisp 2018-01-29T05:10:53Z jacking joined #lisp 2018-01-29T05:11:05Z jacking is now known as oxo1o1o1o 2018-01-29T05:12:25Z fikka joined #lisp 2018-01-29T05:13:27Z smurfrobot quit (Remote host closed the connection) 2018-01-29T05:16:02Z swflint quit (Ping timeout: 276 seconds) 2018-01-29T05:17:13Z swflint joined #lisp 2018-01-29T05:21:22Z smurfrobot joined #lisp 2018-01-29T05:22:33Z gglitch`` quit (Remote host closed the connection) 2018-01-29T05:26:22Z smurfrobot quit (Remote host closed the connection) 2018-01-29T05:31:30Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T05:32:37Z red-dot joined #lisp 2018-01-29T05:41:59Z terpri joined #lisp 2018-01-29T05:42:51Z jacking_ joined #lisp 2018-01-29T05:44:36Z jacking_ quit (Client Quit) 2018-01-29T05:44:38Z fikka quit (Ping timeout: 276 seconds) 2018-01-29T05:45:56Z oxo1o1o1o quit (Ping timeout: 268 seconds) 2018-01-29T05:47:42Z smurfrobot joined #lisp 2018-01-29T05:49:04Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T05:50:09Z daniel-s quit (Ping timeout: 264 seconds) 2018-01-29T05:51:43Z adolf_stalin quit (Remote host closed the connection) 2018-01-29T05:52:09Z adolf_stalin joined #lisp 2018-01-29T05:54:26Z fikka joined #lisp 2018-01-29T05:55:17Z smurfrobot quit (Remote host closed the connection) 2018-01-29T05:56:23Z ebzzry joined #lisp 2018-01-29T05:56:42Z adolf_stalin quit (Ping timeout: 252 seconds) 2018-01-29T05:58:37Z oleo joined #lisp 2018-01-29T05:59:08Z acolarh joined #lisp 2018-01-29T05:59:59Z damke joined #lisp 2018-01-29T06:00:24Z asarch: clhs trivial-shell 2018-01-29T06:00:25Z specbot: Couldn't find anything for trivial-shell. 2018-01-29T06:00:38Z asarch: Thank you 2018-01-29T06:00:39Z beach: asarch: That is not part of the Common Lisp standard. 2018-01-29T06:01:04Z beach: asarch: And, because it isn't, it is not in the Common Lisp HyperSpec. 2018-01-29T06:01:15Z asarch: Using the standard, is it possible to execute a system command? 2018-01-29T06:01:22Z beach: No. 2018-01-29T06:01:31Z asarch: Oh :-( 2018-01-29T06:01:58Z beach: I am willing to bet that very few language standards would have such a function., 2018-01-29T06:02:03Z beach: s/,// 2018-01-29T06:02:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-29T06:04:12Z _cosmonaut_ joined #lisp 2018-01-29T06:04:36Z beach: asarch: What other language have you used that has such a function in the standard? 2018-01-29T06:07:07Z asarch: Well, most of them: C, C++, Perl, Python and even ECMAScript 2018-01-29T06:07:43Z beach: I doubt that you have even read the standard of the C or C++ languages. Perl and Python don't even have one. 2018-01-29T06:08:45Z asarch: perl -e "system('ls');" 2018-01-29T06:09:10Z beach: I get really annoyed when Common Lisp is held to a higher standard (no pun intended) than other languages. People willingly program in languages that have no standard, and that can change at the whim of a single person. But then, when they program in Common Lisp, IT HAS TO BE IN THE ANSI STANDARD, or else IT DOESN'T EXIST to them. 2018-01-29T06:09:21Z beach: asarch: Perl does not have a standard as far as I know. 2018-01-29T06:10:20Z beach: asarch: By "a standard", I mean a document published by an independent organization that is not the one that provides the code for the implementation, so that the document can not change at the whim of the people delivering the code. 2018-01-29T06:11:27Z beach: asarch: Now, you obviously don't seem to know whether such a document exists for the languages that you cited, so why on earth would you require it to even exist for Common Lisp? 2018-01-29T06:11:50Z stylewarning: beach: I think in a lot of cases people simply do not understand the value of having an accessible language standard. 2018-01-29T06:12:00Z beach: Exactly. 2018-01-29T06:12:10Z beach: And that's why I am trying to educate asarch here. 2018-01-29T06:12:54Z stylewarning: beach: A frequent complaint about Lisp that I hear is, "There isn't a lot of Stack Overflow posts about it!" I usually respond by saying, "Fortunately, many answers to your questions can actually be found in the freely available language standard itself." 2018-01-29T06:12:55Z asarch: Well, that's because the Perl/Python "standard" is dictated by a benevolent dictator of life, but I just was wondering. How can I read the arguments passed to a program? 2018-01-29T06:13:06Z stylewarning: Unfortunately, from there, they're expecting some truly opaque standard, like the C++ standard. :) 2018-01-29T06:13:47Z beach: asarch: That is a very different question from the one you asked. 2018-01-29T06:14:28Z beach: asarch: I don't know the answer to it, but I believe UIOP has a function like that. 2018-01-29T06:14:30Z stylewarning: asarch: Arguments passed to a program is a Lisp-dependent thing. But the library that comes with ASDF, called UIOP, provides this. 2018-01-29T06:14:38Z asarch: Don't get excited, this is my first day at France and all I want is: "Excusez-moi monsieur, comment puis-je me rendre à la boulangerie?" 2018-01-29T06:14:45Z oleo quit (Ping timeout: 246 seconds) 2018-01-29T06:14:49Z live__ joined #lisp 2018-01-29T06:14:49Z stylewarning: asarch: UIOP:*COMMAND-LINE-ARGUMENTS* 2018-01-29T06:15:11Z asarch: :'-( 2018-01-29T06:16:08Z beach: asarch: I do get upset, but I have nothing against you personally. I get upset because, like I said, for some reason, people hold Common Lisp to a higher standard than other languages. And I am sure the reason is what stylewarning is saying, namely that people don't understand the value of an independent standard. 2018-01-29T06:16:19Z smurfrobot joined #lisp 2018-01-29T06:16:45Z beach: asarch: So you should see my remarks as directed not to you personally, but to all the people who come here and complain about things that are not in the standard. 2018-01-29T06:17:51Z stylewarning: I've been toying with the idea of having a sort of de facto Common Lisp standards committee, to conservatively adopt already tried-and-true de facto standards in the form of CDR's. 2018-01-29T06:18:12Z asarch: Then, cheers! For this great and very exciting programming language o/ :-) 2018-01-29T06:18:45Z smurfrobot quit (Remote host closed the connection) 2018-01-29T06:18:56Z beach: stylewarning: I have a project with similar goals. It is called WSCL (which stands for Well-Specified Common Lisp, and is pronounced like "whistle"). Have you seen it? 2018-01-29T06:19:10Z stylewarning: beach: No. Where is it? 2018-01-29T06:19:48Z beach: https://github.com/robert-strandh/Well-Specified-Common-Lisp 2018-01-29T06:20:00Z beach: Not much work has been done, but the goals are clearly specified. 2018-01-29T06:20:15Z deng_cn1 joined #lisp 2018-01-29T06:20:28Z deng_cn quit (Ping timeout: 268 seconds) 2018-01-29T06:20:29Z deng_cn1 is now known as deng_cn 2018-01-29T06:20:34Z wigust quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-29T06:21:20Z shka joined #lisp 2018-01-29T06:21:55Z stylewarning: beach: this sounds interesting, like a first-order improvement of the standard 2018-01-29T06:23:09Z smurfrobot joined #lisp 2018-01-29T06:26:19Z Oladon quit (Quit: Leaving.) 2018-01-29T06:26:29Z beach: Thanks. 2018-01-29T06:26:43Z pierpa quit (Quit: Page closed) 2018-01-29T06:27:39Z smasta joined #lisp 2018-01-29T06:30:22Z adolf_stalin joined #lisp 2018-01-29T06:30:34Z solyd joined #lisp 2018-01-29T06:31:59Z smasta quit (Ping timeout: 248 seconds) 2018-01-29T06:32:41Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T06:33:25Z red-dot joined #lisp 2018-01-29T06:34:00Z acolarh quit (Ping timeout: 246 seconds) 2018-01-29T06:39:53Z stylewarning: Does anybody have a copy of the ASDF best practices document? 2018-01-29T06:40:42Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-29T06:43:26Z oxo1o1o1o joined #lisp 2018-01-29T06:45:34Z live__ quit (Quit: Leaving) 2018-01-29T06:47:14Z Karl_Dscc joined #lisp 2018-01-29T06:48:36Z shrdlu68 joined #lisp 2018-01-29T06:55:20Z phoe: stylewarning: https://github.com/fare/asdf/blob/master/doc/best_practices.md 2018-01-29T06:57:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-29T07:01:20Z stylewarning: phoe: ah, thanks! 2018-01-29T07:04:51Z fikka joined #lisp 2018-01-29T07:06:42Z oxo1o1o1o quit (Read error: Connection reset by peer) 2018-01-29T07:08:45Z adolf_stalin quit (Remote host closed the connection) 2018-01-29T07:09:06Z asarch quit (Quit: Leaving) 2018-01-29T07:09:11Z adolf_stalin joined #lisp 2018-01-29T07:12:59Z dec0n joined #lisp 2018-01-29T07:14:20Z adolf_stalin quit (Ping timeout: 276 seconds) 2018-01-29T07:14:45Z damke quit (Ping timeout: 264 seconds) 2018-01-29T07:15:24Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T07:15:39Z Karl_Dscc quit (Remote host closed the connection) 2018-01-29T07:17:28Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-29T07:17:37Z deng_cn joined #lisp 2018-01-29T07:18:17Z nika quit 2018-01-29T07:18:57Z solyd quit (Ping timeout: 240 seconds) 2018-01-29T07:20:46Z smurfrobot quit (Remote host closed the connection) 2018-01-29T07:21:40Z smasta joined #lisp 2018-01-29T07:23:34Z ninegrid quit (Quit: leaving) 2018-01-29T07:25:43Z visof joined #lisp 2018-01-29T07:25:45Z hiroaki joined #lisp 2018-01-29T07:26:23Z smasta quit (Ping timeout: 265 seconds) 2018-01-29T07:26:39Z acolarh joined #lisp 2018-01-29T07:27:21Z shka quit (Ping timeout: 264 seconds) 2018-01-29T07:27:47Z smurfrobot joined #lisp 2018-01-29T07:27:59Z scymtym quit (Ping timeout: 248 seconds) 2018-01-29T07:31:19Z pagnol joined #lisp 2018-01-29T07:32:04Z mishoo joined #lisp 2018-01-29T07:32:27Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-29T07:33:06Z ninegrid joined #lisp 2018-01-29T07:37:28Z pagnol quit (Quit: Ex-Chat) 2018-01-29T07:37:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T07:44:55Z turkja quit (Ping timeout: 256 seconds) 2018-01-29T07:45:25Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T07:45:38Z zooey quit (Remote host closed the connection) 2018-01-29T07:45:39Z vlatkoB joined #lisp 2018-01-29T07:46:27Z zooey joined #lisp 2018-01-29T07:46:34Z damke joined #lisp 2018-01-29T07:47:23Z fikka joined #lisp 2018-01-29T07:47:31Z deng_cn joined #lisp 2018-01-29T08:12:38Z oxo1o1o1o joined #lisp 2018-01-29T08:13:49Z makomo: morning 2018-01-29T08:14:14Z makomo: how did megachombass compiler thing end? did he do it in time? 2018-01-29T08:14:51Z makomo: i also had a deadline until 23:59 yesterday, writing a codegen for a c-like language (given the parsing tree) 2018-01-29T08:15:19Z makomo: my teammate was supposed to do it, but he choked so i had to jump in (same thing happen in his previous exercise too) 2018-01-29T08:15:35Z solene left #lisp 2018-01-29T08:15:53Z smasta joined #lisp 2018-01-29T08:16:22Z makomo: what a ride it was. completely rewrote what he did (which wasn't much anyway) and managed to pull it off. in total ~9 hours of coding 2018-01-29T08:18:05Z makomo: (this probably should have been for #lispcafe, but i forgot :( ) 2018-01-29T08:20:37Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T08:21:30Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T08:23:10Z fikka joined #lisp 2018-01-29T08:26:20Z makomo: beach: WSCL seems interesting. found a typo in the README: "and is\ndesign so that each chapter" 2018-01-29T08:26:43Z turkja joined #lisp 2018-01-29T08:27:16Z pjb: makomo: no, in a very classic way, the requirements increased tenfold as the deadline came closer. 2018-01-29T08:27:43Z pjb: makomo: the requirement was for the VM to be able to run the toy compiler. 2018-01-29T08:28:06Z pjb: makomo: it's not clear if it was "the" toy compiler, or "a" toy compiler compiling the same language. 2018-01-29T08:28:24Z makomo: and the vm was implemented by whom? 2018-01-29T08:28:28Z pjb: makomo: in any case, the existing VM was largely isufficient. 2018-01-29T08:29:49Z pjb: there was one guy who had fun implementing a toy compiler and a toy VM on github (I had same fun at least twice on usenet). Then his teacher took that toy compiler as an example in his compilation lecture. 2018-01-29T08:30:19Z pjb: makomo: all is base on this guy work : https://github.com/thibaudcolas/clisp-compiler-vm 2018-01-29T08:31:05Z turkja quit (Ping timeout: 240 seconds) 2018-01-29T08:31:35Z pjb: makomo: last code: https://codeshare.io/GkwJYA 2018-01-29T08:31:54Z turkja joined #lisp 2018-01-29T08:32:10Z makomo: oh i see, pretty neat 2018-01-29T08:33:22Z makomo: actually, the thing i was doing is pretty similar. the code generation was done for an imaginary processor for which a simulator exists which is used to actually run the code and test the output of the programs 2018-01-29T08:33:31Z pjb: Either he keeps the compiler which is written in CL and uses sexps as is, and he needs a lisp VM with operations such as CONS, CAR, CDR, etc. Or he rewrites his compiler to use only integers, since the current VM only deals with integers. What's more, the current VM is not a Von Neuman architecture! 2018-01-29T08:33:47Z scymtym joined #lisp 2018-01-29T08:34:02Z pjb: Namely, the program stored in memory cannot be written by a program in the VM, since as said, the VM only has integers, and the programs contain sexps! 2018-01-29T08:34:24Z safe quit (Read error: Connection reset by peer) 2018-01-29T08:34:40Z makomo: ohh i see 2018-01-29T08:35:39Z pjb: So, in 22 hours, and being tired, I don't think many people would be able to do it from scratch. 2018-01-29T08:35:50Z makomo: but if the compiler is supposed to compile from Lisp into VM bytecode, couldn't he just compile the compile? 2018-01-29T08:36:05Z makomo: i suppose the compiler isn't powerful enough to handle all of the lisp constructs he had used in his compiler? 2018-01-29T08:36:27Z makomo: the compiler* 2018-01-29T08:36:36Z beach: makomo: Thanks. 2018-01-29T08:37:37Z beach: makomo: Fixed. 2018-01-29T08:37:40Z pjb: makomo: sure, but for this the VM must be able to run it! 2018-01-29T08:37:51Z pjb: makomo: the current compiler generates a sexp. 2018-01-29T08:38:20Z pjb: but the current VM cannot manipulate sexps. Only integers. 2018-01-29T08:38:21Z makomo: pjb: ohh so the output isn't real VM bytecode but a different representation 2018-01-29T08:38:24Z makomo: right 2018-01-29T08:38:28Z pjb: yes. 2018-01-29T08:38:30Z makomo: beach: :-) 2018-01-29T08:39:49Z pjb: It's funny, because we knew from the start it would be a failure… So many in the same situation… 2018-01-29T08:39:50Z zooey quit (Ping timeout: 255 seconds) 2018-01-29T08:44:56Z Cymew joined #lisp 2018-01-29T08:45:00Z zooey joined #lisp 2018-01-29T08:54:49Z makomo: mhm. especially if the person is inexperienced and doesn't know what "to do next" or anticipate problems that might come up and avoid them before they occur 2018-01-29T08:58:20Z pjb quit (Ping timeout: 256 seconds) 2018-01-29T09:01:21Z marusich quit (Ping timeout: 246 seconds) 2018-01-29T09:01:34Z shrdlu68 joined #lisp 2018-01-29T09:01:53Z damke_ joined #lisp 2018-01-29T09:01:59Z oxo1o1o1o quit (Ping timeout: 256 seconds) 2018-01-29T09:03:48Z hhdave joined #lisp 2018-01-29T09:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-29T09:04:34Z marusich joined #lisp 2018-01-29T09:05:56Z zooey quit (Ping timeout: 255 seconds) 2018-01-29T09:07:35Z zooey joined #lisp 2018-01-29T09:07:52Z dddddd joined #lisp 2018-01-29T09:08:17Z Cymew quit 2018-01-29T09:10:00Z smasta joined #lisp 2018-01-29T09:14:03Z chens joined #lisp 2018-01-29T09:14:27Z chens is now known as Guest41304 2018-01-29T09:14:27Z smasta quit (Ping timeout: 240 seconds) 2018-01-29T09:15:14Z lima4 joined #lisp 2018-01-29T09:15:16Z Cymew joined #lisp 2018-01-29T09:16:39Z murii joined #lisp 2018-01-29T09:16:54Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T09:18:59Z deng_cn joined #lisp 2018-01-29T09:21:35Z varjag joined #lisp 2018-01-29T09:22:08Z zooey quit (Ping timeout: 255 seconds) 2018-01-29T09:23:03Z zooey joined #lisp 2018-01-29T09:24:00Z marusich quit (Quit: Leaving) 2018-01-29T09:28:58Z pjb` joined #lisp 2018-01-29T09:31:04Z lima4 left #lisp 2018-01-29T09:35:17Z scymtym_ joined #lisp 2018-01-29T09:37:22Z scymtym quit (Ping timeout: 265 seconds) 2018-01-29T09:38:49Z shrdlu68 quit (Ping timeout: 265 seconds) 2018-01-29T09:40:09Z solyd joined #lisp 2018-01-29T09:41:45Z smurfrobot joined #lisp 2018-01-29T09:45:48Z shrdlu68 joined #lisp 2018-01-29T09:46:10Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-29T09:50:10Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T09:52:27Z deng_cn joined #lisp 2018-01-29T09:52:36Z manualcrank quit (Quit: WeeChat 2.0.1) 2018-01-29T09:52:38Z nirved joined #lisp 2018-01-29T10:01:40Z pjb` quit (Ping timeout: 240 seconds) 2018-01-29T10:01:43Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-29T10:02:06Z phoe: Does CL have any kind of operator that applies FN consecutively to ARG N times and returns the last result? 2018-01-29T10:02:30Z phoe: like, (apply-n-times 4 #'cdr '(1 2 3 4 5)) ;=> (5) 2018-01-29T10:02:39Z Guest41304 quit (Remote host closed the connection) 2018-01-29T10:02:55Z phoe: I'm thinking of utility libraries here since I don't think it's in the standard. 2018-01-29T10:04:10Z smasta joined #lisp 2018-01-29T10:04:14Z Shinmera: (loop repeat n for x = foo then (fun x) finally (return x)) 2018-01-29T10:04:28Z beach: You beat me to it by seconds. 2018-01-29T10:04:40Z phoe: Shinmera: I want to avoid NIH by writing that loop. 2018-01-29T10:04:51Z Shinmera: It's so tiny you're going to increase maintenance by using a library. 2018-01-29T10:04:59Z fe[nl]ix: a one-liner hardly counts as NIH 2018-01-29T10:05:30Z beach: phoe: Sometimes, it is easier to understand code if it doesn't refer to some external function that has to be looked up in the documentation. Especially short snippets like this. 2018-01-29T10:06:20Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-29T10:08:50Z shrdlu68 joined #lisp 2018-01-29T10:09:10Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T10:11:16Z raynold quit (Quit: Connection closed for inactivity) 2018-01-29T10:13:28Z milanj quit (Quit: This computer has gone to sleep) 2018-01-29T10:17:15Z krwq quit (Remote host closed the connection) 2018-01-29T10:18:31Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T10:20:25Z pradam joined #lisp 2018-01-29T10:21:44Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T10:24:00Z deng_cn joined #lisp 2018-01-29T10:28:58Z pjb` joined #lisp 2018-01-29T10:33:58Z Amplituhedron joined #lisp 2018-01-29T10:36:52Z red-dot joined #lisp 2018-01-29T10:37:17Z zooey quit (Ping timeout: 255 seconds) 2018-01-29T10:37:38Z wxie joined #lisp 2018-01-29T10:38:39Z zooey joined #lisp 2018-01-29T10:42:55Z markong joined #lisp 2018-01-29T10:47:08Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T10:47:39Z fikka joined #lisp 2018-01-29T10:48:21Z wxie quit (Ping timeout: 263 seconds) 2018-01-29T10:49:58Z oxo1o1o1o joined #lisp 2018-01-29T10:52:32Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T10:54:36Z deng_cn joined #lisp 2018-01-29T10:55:41Z Cymew: Everything can be done with LOOP ;) 2018-01-29T10:56:03Z whoman quit (Remote host closed the connection) 2018-01-29T10:58:21Z smasta joined #lisp 2018-01-29T10:58:39Z loke: Yes! 2018-01-29T10:58:41Z loke: LOOP 2018-01-29T10:58:50Z Shinmera: Cymew: Except legible code 2018-01-29T10:59:26Z Cymew: Shinmera: Well, I'm not going to defend it with much empahsis. :) 2018-01-29T10:59:36Z Shinmera: I'm joking anyway. 2018-01-29T10:59:50Z Shinmera: The opportunity for the burn was irresistible 2018-01-29T11:00:14Z makomo: lol 2018-01-29T11:00:17Z Cymew: I repeatedly tear my hair out over LOOP syntax, and smile like a fool when I get it right and it's just so clever. 2018-01-29T11:00:30Z damke joined #lisp 2018-01-29T11:00:54Z Cymew: I still think it's a joke MOON played upon us all... 2018-01-29T11:01:52Z pjb` quit (Ping timeout: 256 seconds) 2018-01-29T11:02:40Z smasta quit (Ping timeout: 240 seconds) 2018-01-29T11:02:48Z damke_ quit (Ping timeout: 246 seconds) 2018-01-29T11:03:31Z loke: Cymew: LOOP syntax isn't very complicated. 2018-01-29T11:03:47Z Cymew: I still manage so mess it up 2018-01-29T11:03:50Z loke: I do remember feeling confused by it the first time I used it, but these days it's second nature. 2018-01-29T11:04:05Z loke: Cymew: Any particular aspects that are tricky? 2018-01-29T11:04:41Z Cymew: Nah, I just type what feels sensible and sometimes it never makes sense. 2018-01-29T11:05:01Z Cymew: I guess if. I did not dabble in DO it would become more natural. 2018-01-29T11:07:10Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-29T11:07:33Z shrdlu68 joined #lisp 2018-01-29T11:08:33Z beach: loke: (loop for x = y then ... for y ...) can be kind of tricky. 2018-01-29T11:08:58Z beach: Not the syntax. The semantics. 2018-01-29T11:09:35Z beach: Or perhaps I mean (loop for x = bla then (f y) for y ...) I can't remember the details. 2018-01-29T11:10:32Z makomo: beach: i think that example is from ANSI Common Lisp, right? :-) 2018-01-29T11:11:18Z makomo: actually there were 2 but extermely similar, differing only in the ordering of 2 lines or something like that 2018-01-29T11:12:24Z loke: beach: ah, you mean when you have (loop for x = (something y something) for y = (something x something) ...)? 2018-01-29T11:16:08Z turkja quit (Ping timeout: 276 seconds) 2018-01-29T11:18:56Z fikka quit (Ping timeout: 268 seconds) 2018-01-29T11:20:37Z milanj joined #lisp 2018-01-29T11:25:36Z syssiphus joined #lisp 2018-01-29T11:29:01Z pjb` joined #lisp 2018-01-29T11:29:46Z milanj quit (Read error: Connection reset by peer) 2018-01-29T11:31:41Z zaquest quit (Read error: Connection reset by peer) 2018-01-29T11:31:44Z fikka joined #lisp 2018-01-29T11:32:10Z turkja joined #lisp 2018-01-29T11:32:28Z milanj joined #lisp 2018-01-29T11:36:56Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T11:37:00Z kamog joined #lisp 2018-01-29T11:38:09Z red-dot joined #lisp 2018-01-29T11:38:29Z fe[nl]ix: phoe: you can even use Series if you're adventurous 2018-01-29T11:38:46Z phoe: fe[nl]ix: not *that* adventurous 2018-01-29T11:39:41Z flamebeard joined #lisp 2018-01-29T11:40:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T11:42:00Z fikka joined #lisp 2018-01-29T11:46:38Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T11:51:28Z zaquest joined #lisp 2018-01-29T11:52:31Z smasta joined #lisp 2018-01-29T11:54:05Z fikka joined #lisp 2018-01-29T11:55:33Z ghard` quit (Remote host closed the connection) 2018-01-29T11:56:54Z beach: loke: Yes, a variable is used before it is introduced. 2018-01-29T11:57:21Z beach: makomo: I don't know. I have a few of those in code of my projects. 2018-01-29T11:57:47Z smasta quit (Ping timeout: 268 seconds) 2018-01-29T11:59:06Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T11:59:14Z milanj quit (Read error: Connection reset by peer) 2018-01-29T12:00:15Z igemnace joined #lisp 2018-01-29T12:00:42Z milanj joined #lisp 2018-01-29T12:01:54Z fikka joined #lisp 2018-01-29T12:02:30Z pjb` quit (Ping timeout: 256 seconds) 2018-01-29T12:03:07Z orivej joined #lisp 2018-01-29T12:04:03Z murii is now known as Murii 2018-01-29T12:08:17Z m00natic joined #lisp 2018-01-29T12:14:53Z scymtym__ joined #lisp 2018-01-29T12:19:50Z scymtym_ quit (Ping timeout: 276 seconds) 2018-01-29T12:20:04Z Tobbi joined #lisp 2018-01-29T12:20:35Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T12:22:00Z smurfrobot joined #lisp 2018-01-29T12:22:39Z deng_cn joined #lisp 2018-01-29T12:25:14Z stylewarning: phoe: show off your leet hacking skills with this code: http://codepad.org/1zalcTgI 2018-01-29T12:25:31Z stylewarning: A way to repeat a function N times, sure to impress family and friends 2018-01-29T12:26:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-29T12:28:41Z milanj quit (Read error: Connection reset by peer) 2018-01-29T12:28:46Z HDurer quit (Remote host closed the connection) 2018-01-29T12:29:01Z pjb` joined #lisp 2018-01-29T12:29:17Z zazzerino joined #lisp 2018-01-29T12:29:43Z puchacz joined #lisp 2018-01-29T12:30:27Z milanj joined #lisp 2018-01-29T12:32:41Z nowhereman_ joined #lisp 2018-01-29T12:35:34Z windblow joined #lisp 2018-01-29T12:36:00Z nowhere_man quit (Ping timeout: 260 seconds) 2018-01-29T12:36:28Z lima4 joined #lisp 2018-01-29T12:36:47Z fikka quit (Ping timeout: 248 seconds) 2018-01-29T12:37:33Z HDurer joined #lisp 2018-01-29T12:37:33Z HDurer quit (Changing host) 2018-01-29T12:37:33Z HDurer joined #lisp 2018-01-29T12:38:46Z fikka joined #lisp 2018-01-29T12:39:22Z shelvick joined #lisp 2018-01-29T12:42:16Z kedorlaomer joined #lisp 2018-01-29T12:43:32Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-29T12:44:58Z zazzerino quit (Remote host closed the connection) 2018-01-29T12:45:14Z attila_lendvai joined #lisp 2018-01-29T12:45:14Z attila_lendvai quit (Changing host) 2018-01-29T12:45:14Z attila_lendvai joined #lisp 2018-01-29T12:45:14Z windblow quit (Quit: windblow) 2018-01-29T12:53:49Z shelvick quit (Quit: EliteBNC 1.6.5 - http://elitebnc.org) 2018-01-29T12:53:59Z shelvick joined #lisp 2018-01-29T12:55:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T12:56:05Z solyd quit (Ping timeout: 240 seconds) 2018-01-29T13:00:06Z milanj quit (Read error: Connection reset by peer) 2018-01-29T13:01:40Z pjb` quit (Ping timeout: 240 seconds) 2018-01-29T13:02:11Z puchacz_ joined #lisp 2018-01-29T13:02:46Z puchacz quit (Ping timeout: 252 seconds) 2018-01-29T13:05:13Z fikka joined #lisp 2018-01-29T13:06:12Z milanj joined #lisp 2018-01-29T13:11:32Z shrdlu68 quit (Ping timeout: 255 seconds) 2018-01-29T13:14:33Z schweers joined #lisp 2018-01-29T13:14:35Z Ellusionist joined #lisp 2018-01-29T13:15:10Z shrdlu68 joined #lisp 2018-01-29T13:17:53Z arbv quit (Read error: Connection reset by peer) 2018-01-29T13:18:03Z arbv joined #lisp 2018-01-29T13:19:54Z ebrasca: beach: I am making new abstraction for my fat32. 2018-01-29T13:20:08Z beach: Great! 2018-01-29T13:20:26Z beach: Let me find an example of what I mean by the documentation part... 2018-01-29T13:20:42Z ebrasca: beach: And i think I don't understand what docomentation mean. 2018-01-29T13:22:58Z arbv quit (Ping timeout: 256 seconds) 2018-01-29T13:24:40Z terpri quit (Ping timeout: 240 seconds) 2018-01-29T13:28:23Z lima4 quit (Quit: ZZZzzz…) 2018-01-29T13:29:01Z pjb` joined #lisp 2018-01-29T13:29:59Z beach: ebrasca: Take the documentation of the macro with-preserved-top-level-ness in this file: https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/CST-to-AST/variables.lisp 2018-01-29T13:30:33Z EvW joined #lisp 2018-01-29T13:31:23Z kami joined #lisp 2018-01-29T13:31:28Z kami: Hello #lisp 2018-01-29T13:31:47Z beach: Hello kami. 2018-01-29T13:32:04Z CrazyEddy quit (Remote host closed the connection) 2018-01-29T13:33:15Z rumbler31 joined #lisp 2018-01-29T13:33:35Z beach: ebrasca: It would be something that the user of the macro could read, and then he or she could use the macro without knowing how it is implemented. For example, in your case, it would document what variables the macro intentionally captures in the bodies that you pass it, and it would mention things like the fact that the code of the bodies is repeatedly invoked, how many times they are invoked, and how each invocation is different. 2018-01-29T13:34:23Z shrdlu68 quit (Remote host closed the connection) 2018-01-29T13:38:12Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T13:39:41Z red-dot joined #lisp 2018-01-29T13:40:45Z smasta joined #lisp 2018-01-29T13:49:36Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T13:50:48Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T13:51:29Z Bike joined #lisp 2018-01-29T13:52:23Z Cymew quit (Remote host closed the connection) 2018-01-29T13:52:54Z EvW quit (Ping timeout: 246 seconds) 2018-01-29T13:52:57Z Cymew joined #lisp 2018-01-29T13:53:00Z kedorlaomer quit (Ping timeout: 256 seconds) 2018-01-29T13:53:12Z deng_cn joined #lisp 2018-01-29T13:54:41Z beach: ebrasca: For more documentation ideas, here is an example: http://metamodular.com/cluffer-documentation.pdf 2018-01-29T13:55:42Z dieggsy joined #lisp 2018-01-29T13:56:02Z shrdlu68 joined #lisp 2018-01-29T13:57:10Z Cymew quit (Ping timeout: 240 seconds) 2018-01-29T13:57:28Z attila_lendvai: did anyone see issues recently with cxml getting repeatedly reloaded by asdf? 2018-01-29T13:58:11Z EvW joined #lisp 2018-01-29T13:59:04Z Cymew joined #lisp 2018-01-29T14:00:01Z Xach: attila_lendvai: i saw them 2018-01-29T14:00:14Z attila_lendvai: cxml.asd is scary... 2018-01-29T14:00:27Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-29T14:00:49Z Xach: I think there is a situation where multiple defsystems in a single .asd will cause unexpected reloads. Not just in cxml's complicated case. 2018-01-29T14:01:00Z Xach: multiple defsystems that do not use the slash convention, that is 2018-01-29T14:01:33Z attila_lendvai: Xach: do you have by any chance a simple way to reproduce it? 2018-01-29T14:01:46Z Xach: attila_lendvai: I haven't looked into it further, sorry. 2018-01-29T14:02:02Z attila_lendvai: no worries, thanks for the feedback! 2018-01-29T14:02:04Z pjb` quit (Ping timeout: 256 seconds) 2018-01-29T14:02:19Z Xach: https://github.com/mrossini-ethz/physical-quantities/blob/master/physical-quantities.asd triggers it, though 2018-01-29T14:02:47Z Xach: https://github.com/mmaul/cl-influxdb/blob/master/cl-influxdb.asd too 2018-01-29T14:03:43Z Cymew quit (Ping timeout: 248 seconds) 2018-01-29T14:05:12Z Cymew joined #lisp 2018-01-29T14:05:34Z attila_lendvai has a simple way to reproduce and writes a mail to asdf-devel 2018-01-29T14:10:20Z Cymew quit (Ping timeout: 276 seconds) 2018-01-29T14:11:28Z Cymew joined #lisp 2018-01-29T14:11:32Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-29T14:12:50Z Murii quit (Ping timeout: 256 seconds) 2018-01-29T14:13:01Z shrdlu68 joined #lisp 2018-01-29T14:15:59Z Cymew quit (Ping timeout: 248 seconds) 2018-01-29T14:16:22Z ebzzry: Do we have a list of implementations that currently ship with ASDF 3.3(.1)? 2018-01-29T14:17:45Z Cymew joined #lisp 2018-01-29T14:20:05Z shrdlu68 quit (Ping timeout: 276 seconds) 2018-01-29T14:20:29Z shrdlu68 joined #lisp 2018-01-29T14:20:48Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T14:21:25Z milanj quit (Read error: Connection reset by peer) 2018-01-29T14:22:12Z LiamH joined #lisp 2018-01-29T14:22:42Z Cymew quit (Ping timeout: 252 seconds) 2018-01-29T14:23:25Z deng_cn joined #lisp 2018-01-29T14:24:02Z Cymew joined #lisp 2018-01-29T14:24:02Z trocado joined #lisp 2018-01-29T14:25:35Z ebzzry: Is clbuild inaccessible at http://gitorious.org/clbuild2? 2018-01-29T14:25:38Z kamog quit (Ping timeout: 252 seconds) 2018-01-29T14:26:42Z milanj joined #lisp 2018-01-29T14:27:06Z shrdlu68 quit (Ping timeout: 252 seconds) 2018-01-29T14:28:42Z Cymew quit (Ping timeout: 256 seconds) 2018-01-29T14:29:01Z pjb` joined #lisp 2018-01-29T14:30:17Z Cymew joined #lisp 2018-01-29T14:31:05Z warweasle joined #lisp 2018-01-29T14:33:51Z Kyo91 quit (Remote host closed the connection) 2018-01-29T14:34:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-29T14:35:08Z oleo joined #lisp 2018-01-29T14:35:59Z milanj quit (Read error: Connection reset by peer) 2018-01-29T14:36:25Z milanj joined #lisp 2018-01-29T14:36:36Z Cymew joined #lisp 2018-01-29T14:37:30Z shrdlu68 joined #lisp 2018-01-29T14:37:51Z smurfrobot joined #lisp 2018-01-29T14:39:25Z jackdaniel: only sbcl and they regret it 2018-01-29T14:39:47Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T14:40:29Z red-dot joined #lisp 2018-01-29T14:40:34Z Murii joined #lisp 2018-01-29T14:41:12Z Cymew quit (Ping timeout: 246 seconds) 2018-01-29T14:41:57Z nullman quit (Ping timeout: 240 seconds) 2018-01-29T14:42:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-29T14:42:45Z nullman joined #lisp 2018-01-29T14:42:51Z Cymew joined #lisp 2018-01-29T14:44:39Z makomo: beach: since your documentation always looks solid, what's your opinion on literate programming? 2018-01-29T14:45:43Z asarch joined #lisp 2018-01-29T14:47:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-29T14:48:31Z Ellusionist quit (Quit: Leaving) 2018-01-29T14:49:20Z Cymew joined #lisp 2018-01-29T14:50:21Z pjb` is now known as pjb 2018-01-29T14:51:20Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T14:51:20Z milanj quit (Read error: Connection reset by peer) 2018-01-29T14:51:54Z pjb: makomo: just start your programs with #| and end them with |# Parenthesize the code parts with |# (code) #| 2018-01-29T14:51:55Z shifty quit (Ping timeout: 260 seconds) 2018-01-29T14:52:14Z pjb: Instant literate programming in lisp. 2018-01-29T14:52:29Z milanj joined #lisp 2018-01-29T14:52:42Z smasta joined #lisp 2018-01-29T14:54:55Z Cymew quit (Ping timeout: 248 seconds) 2018-01-29T14:57:01Z FreeBirdLjj joined #lisp 2018-01-29T14:57:19Z whyNOP joined #lisp 2018-01-29T14:57:26Z beach: makomo: I think the original idea is completely bogus. It was necessary because Pascal requires a very strict order between definitions and instructions, and that order is contrary to how Knuth wanted to present it to the human reader. The language we use does not have that restriction. 2018-01-29T14:58:42Z Cymew joined #lisp 2018-01-29T14:58:44Z makomo: pjb: hah 2018-01-29T14:58:54Z beach: makomo: So I guess my opinion about it will depend on how it is defined for a language such as Common Lisp. 2018-01-29T14:59:57Z dlowe: I kind of like the idea of an essay with code embedded in it that can be executed as a whole. But that's as a learning device, not as a programming practice. 2018-01-29T15:00:02Z makomo: beach: hmm. well if we put aside the fact that it was partly necessary because of Pascal's restrictions, what do you think about the general idea of literate programming: writing a book first and foremost and only then code 2018-01-29T15:00:14Z dlowe: I'm thinking of the forth compiler done in a literate style. 2018-01-29T15:00:44Z makomo: dlowe: yeah, i'm not sure how practical something like literate programming is when a program continues to evolve 2018-01-29T15:00:46Z makomo: i don't know though 2018-01-29T15:00:47Z dlowe: Otherwise it sounds like a gigantic error-prone waste of time 2018-01-29T15:01:30Z makomo: for example, the Axiom CAS system uses literate programming (and it's written in Common Lisp + a language built on top of CL called SPAD) 2018-01-29T15:01:33Z beach: makomo: Well, I don't think there is a temporal order like that. But I do agree that the communication with the maintainer of the code is more important than communication with the compiler, if that is what you mean. 2018-01-29T15:01:33Z smasta quit (Ping timeout: 268 seconds) 2018-01-29T15:02:01Z f32ff joined #lisp 2018-01-29T15:02:03Z makomo: and there's also a book called "Understanding MP3" that uses literate programming with C to implement a full-blown mp3 parser and player 2018-01-29T15:02:50Z dlowe: Right. a learning device. 2018-01-29T15:02:52Z pjb: makomo: beach's right, see this article that passed on hackernews yesterday: http://lightsonsoftware.com/writing-code-that-reads-like-a-story/ 2018-01-29T15:02:54Z beach: And, yes, I agree that the way literate programming is typically used, makes it totally impossible to have the code evolve. 2018-01-29T15:03:00Z makomo: oh, also the book "Physically Based Rendering" uses literate programming 2018-01-29T15:03:11Z makomo: dlowe: yeah, i agree with that i guess 2018-01-29T15:03:18Z pjb: beach: however, literate programming has the advantage that it stress on the human reader and documentation first. 2018-01-29T15:03:26Z pjb: the code is only a side effect of that process. 2018-01-29T15:03:27Z beach: Absolutely. 2018-01-29T15:03:27Z trocado quit (Ping timeout: 248 seconds) 2018-01-29T15:03:35Z asarch: beach, require('child_process').exec('ls', function(err, stdout, stderr) {if (err) {console.log("\n", stderr);} else {console.log(stdout);}}); in http://www.ecma-international.org/publications/standards/Ecma-262.htm 2018-01-29T15:03:41Z asarch: JFYI :-) 2018-01-29T15:03:42Z pjb: But we're coders! :-) 2018-01-29T15:03:43Z Cymew quit (Ping timeout: 256 seconds) 2018-01-29T15:03:47Z phoe: I suddenly wished for a counterpart to REMOVE. 2018-01-29T15:03:56Z pjb: I mean, lispers even write books using sexps! 2018-01-29T15:04:10Z beach: pjb: So the challenge is to emphasize the communication with the person reading the code, while keeping the possibility of evolving the code. 2018-01-29T15:04:11Z phoe: Like, so it would keep things instead of removing it. 2018-01-29T15:04:12Z dlowe: I like to follow a practice of writing documentation first. 2018-01-29T15:04:23Z phoe: Is such a thing implemented in one of the portability libraries? 2018-01-29T15:04:27Z pjb: Yep. And do that with meta- or meta-meta- code! :-) 2018-01-29T15:04:27Z phoe: s/portability/utility/ 2018-01-29T15:05:00Z Cymew joined #lisp 2018-01-29T15:05:05Z makomo: pjb: something like Scribble? 2018-01-29T15:05:09Z randomstrangerb quit (Ping timeout: 264 seconds) 2018-01-29T15:05:16Z sjl joined #lisp 2018-01-29T15:05:19Z makomo: i've seen fare use it extensively 2018-01-29T15:06:07Z pjb: Yes, there are several such tools. 2018-01-29T15:06:21Z randomstrangerb joined #lisp 2018-01-29T15:06:30Z pjb: ccldoc, the script I use to write my resume, etc. 2018-01-29T15:07:01Z makomo: that's very intriguing! :D 2018-01-29T15:07:54Z pjb: It's the SGML idea, only using sexps instead of SGML tags. 2018-01-29T15:09:29Z fikka quit (Ping timeout: 276 seconds) 2018-01-29T15:09:45Z Cymew quit (Ping timeout: 256 seconds) 2018-01-29T15:10:29Z Shinmera: makomo: Generally I think the documentation and the code should be separate. The code is an implementation detail, and requires a different level of description than documentation. Mixing the two together (as with literate programming) thus seems like a bad idea. 2018-01-29T15:11:16Z Cymew joined #lisp 2018-01-29T15:11:36Z Xach: Who was it who, when paul graham said that arc code was its documentation, asked him if "inverts a matrix" was clearer than the code for inverting a matrix? 2018-01-29T15:11:37Z beach: Shinmera: I think that depends on which type of documentation we are talking about. 2018-01-29T15:11:43Z deng_cn joined #lisp 2018-01-29T15:11:56Z Xach: McCarthy? Norvig? Someone not as famous? I remember it as someone famous. 2018-01-29T15:12:28Z beach: Shinmera: Take a library for instance. The documentation for how client code should use it should be separate from the code. 2018-01-29T15:12:37Z rippa joined #lisp 2018-01-29T15:13:11Z beach: Shinmera: But the documentation explaining why the code is written in a particular way should definitely by next to the code, i.e. the maintainer documentation. 2018-01-29T15:13:17Z Shinmera: beach: When I say documentation I generally mean the user-facing one. Documentation about the internals would be comments. 2018-01-29T15:13:40Z beach: Shinmera: That convention might not be shared by everyone. 2018-01-29T15:13:44Z Xach: mccarthy 2018-01-29T15:13:46Z Shinmera: Sure. 2018-01-29T15:15:13Z makomo: Xach: any references for that? would be interesting to read 2018-01-29T15:15:38Z dlowe: there should be at least three parts to documentation: a tutorial, a playbook, and a reference. The tutorial eases a user into what it possible, the playbook helps the user solve the most common problems, the reference has details for use once the interface elements have been selected. 2018-01-29T15:15:56Z pjb: Shinmera: agreed. But I would want tools to link the different parts and track the dependencies. Specifications <-> Analysis <-> Design <-> Code <-> Tests. So if you navigate to some place in the code, you get a window with all the relevant sections of the Specifications, the Analysis, the Design and the Tests. If you modify the Specifications, you get a list of all the places impacted in the Analysis the Design, the Code, the 2018-01-29T15:15:56Z pjb: etc. 2018-01-29T15:15:59Z Cymew quit (Ping timeout: 256 seconds) 2018-01-29T15:16:15Z mfiano: Xach: The matrix inversion slow path for non-orthonormal matrices is a sight to see ;) 2018-01-29T15:16:35Z makomo: Shinmera: beach: yeah, my opinion is pretty much the same 2018-01-29T15:16:42Z Shinmera: pjb: That would certainly be welcome 2018-01-29T15:17:19Z Xach: mfiano: http://www.paulgraham.com/ilc03.html 2018-01-29T15:17:27Z Xach: mfiano: 2nd footnote 2018-01-29T15:17:33Z Cymew joined #lisp 2018-01-29T15:17:40Z makomo: wow, that's hidden! 2018-01-29T15:18:06Z pjb: Shinmera: That was the idea behind the OO CASE tool Objecteering/Modelio; but it would probably involve more integrated tools, more like InterLisp… 2018-01-29T15:18:22Z mfiano: Xach: haha. and here is a macroized version which uses symbol macros to hide all the arefs: https://github.com/mfiano/gamebox-math/blob/master/src/matrix/matrix4.lisp#L465-L518 2018-01-29T15:18:42Z Xach: self-documenting 2018-01-29T15:19:10Z arbv joined #lisp 2018-01-29T15:19:24Z makomo: damn :D 2018-01-29T15:19:48Z Shinmera snorts 2018-01-29T15:19:54Z Shinmera: Weak! Check this out. https://github.com/Shinmera/3d-matrices/blob/master/ops.lisp#L470 2018-01-29T15:19:54Z pjb: I wouldn't write it like this… 2018-01-29T15:20:21Z dlowe: seems like something generateable via macro 2018-01-29T15:20:41Z Xach: that is a thing of beauty 2018-01-29T15:20:45Z makomo: my. god. :-) 2018-01-29T15:20:46Z mfiano: Well yeah, I said it was macroized :) 2018-01-29T15:20:55Z pjb: I would write the source code as: {\displaystyle \mathbf {A} ^{-1}={\frac {1}{\det \mathbf {A} }}\left[\left(\operatorname {tr} \mathbf {A} \right)\mathbf {I} -\mathbf {A} \right].} 2018-01-29T15:21:06Z makomo: ";; Lots of juicy inlined crap." 2018-01-29T15:21:07Z pjb: and write the macros and function to compile that to efficient lisp code. 2018-01-29T15:21:07Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T15:21:08Z makomo: :') 2018-01-29T15:21:10Z Xach: i like how the parens are like a rotated waveform 2018-01-29T15:22:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-29T15:22:47Z mfiano: But there is a fast path inversion for when a matrix is orthonormal, which is pretty short. luckily this is usually the case in graphics programming 2018-01-29T15:23:06Z terpri joined #lisp 2018-01-29T15:23:11Z mfiano: one which is very short/cheap 2018-01-29T15:23:12Z Murii quit (Quit: WeeChat 1.4) 2018-01-29T15:23:45Z deng_cn joined #lisp 2018-01-29T15:23:55Z Cymew joined #lisp 2018-01-29T15:24:20Z Shinmera: dlowe: https://github.com/Shinmera/3d-matrices/blob/master/ops.lisp#L20-L26 2018-01-29T15:24:35Z vyzo quit (Ping timeout: 260 seconds) 2018-01-29T15:24:47Z dlowe: Shinmera: hah. okay. 2018-01-29T15:24:50Z Cymew quit (Remote host closed the connection) 2018-01-29T15:24:55Z Cymew joined #lisp 2018-01-29T15:25:10Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-01-29T15:26:05Z syssiphus quit (Quit: Leaving) 2018-01-29T15:26:22Z Cymew quit (Remote host closed the connection) 2018-01-29T15:26:27Z makomo: and there's a nested backquote right below that comment 2018-01-29T15:26:51Z Cymew joined #lisp 2018-01-29T15:27:17Z pjb: On the other hand, maths and physics code is a little different, in that 1- it's "well" specified and documented in maths and physics books ;-), and 2- we often want optimized code to implement those algorithms. 2018-01-29T15:27:31Z pjb: So basically readability doesn't import much; only to ensure that it's bug free. 2018-01-29T15:28:00Z pjb: If you can generate fast code, the better, but if not, just write it by hand as ugly as it is… 2018-01-29T15:28:02Z Murii joined #lisp 2018-01-29T15:28:13Z mfiano: Xach: Do we have a rough eta for the next dist? Wondering if I have time during the busy work week to sneak in one last fix/feature to a library 2018-01-29T15:29:09Z terpri quit (Ping timeout: 264 seconds) 2018-01-29T15:29:19Z Xach: mfiano: probably tomorrow. 2018-01-29T15:29:41Z Shinmera didn't get any libraries done this month 2018-01-29T15:29:43Z Shinmera feels sad 2018-01-29T15:29:44Z mfiano: Ok, so overwork myself and probably introduce more problems than it solves :) 2018-01-29T15:30:39Z Xach: Think of it as an RSS test 2018-01-29T15:31:33Z Cymew quit (Ping timeout: 264 seconds) 2018-01-29T15:31:46Z wigust joined #lisp 2018-01-29T15:32:17Z attila_lendvai quit (Quit: Leaving.) 2018-01-29T15:32:53Z Cymew joined #lisp 2018-01-29T15:35:00Z smasta joined #lisp 2018-01-29T15:35:15Z ebzzry: jackdaniel: why? 2018-01-29T15:35:29Z Shinmera: ebzzry: Because it broke some systems. 2018-01-29T15:35:35Z jackdaniel: a lot of libraries broken 2018-01-29T15:36:08Z Xach: I don't know about a lot - there are some that are broken, and some loaded too often, and many more warnings that I think are not very useful. 2018-01-29T15:37:16Z Cymew quit (Ping timeout: 256 seconds) 2018-01-29T15:38:39Z m00natic quit (Ping timeout: 256 seconds) 2018-01-29T15:38:52Z dlowe: The road from a permissive reader to a strict reader is one filled with sharp edges and tears. 2018-01-29T15:38:58Z dieggsy quit (Ping timeout: 252 seconds) 2018-01-29T15:39:04Z oxo1o1o1o quit (Quit: Leaving) 2018-01-29T15:39:14Z phoe: sharp signs* 2018-01-29T15:40:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T15:41:21Z red-dot joined #lisp 2018-01-29T15:41:32Z gilez joined #lisp 2018-01-29T15:41:46Z Shinmera: So, who here is planning to attend ELS'18? 2018-01-29T15:42:02Z Xach: I am interested but not yet planning! 2018-01-29T15:43:48Z saki joined #lisp 2018-01-29T15:44:15Z Shinmera: Would love to meet you in person again. 2018-01-29T15:44:47Z beach: Me and my (admittedly small) family are going to be there. I booked travel and hotel(s) a few days ago. 2018-01-29T15:44:51Z jackdaniel: I have already tickets and an apartment 2018-01-29T15:44:59Z Cymew joined #lisp 2018-01-29T15:45:01Z jackdaniel: booked 2018-01-29T15:45:05Z solyd joined #lisp 2018-01-29T15:45:37Z Shinmera: jackdaniel: beach: Where are you staying? 2018-01-29T15:45:46Z beach: jackdaniel: You and your wife may have to come to Malaga for dinner one of the days we are there. We are going to be in Marbella only from Sunday to Wednesday. 2018-01-29T15:45:58Z beach: Shinmera: La Villa I think it's called. 2018-01-29T15:46:43Z beach: https://www.google.co.uk/maps/@36.5117552,-4.8847067,19z 2018-01-29T15:46:58Z jackdaniel: Shinmera: we have a flat booked from airnb in Marbella 2018-01-29T15:47:00Z ioa left #lisp 2018-01-29T15:47:10Z jackdaniel: with a view at an ocean 2018-01-29T15:47:16Z jackdaniel: sea* 2018-01-29T15:47:17Z blackwolf joined #lisp 2018-01-29T15:47:20Z beach: Nice! 2018-01-29T15:47:53Z jackdaniel: we'll be there 14-21, so if anyone stays longer (or comes earlier) it will be nice to meet you 2018-01-29T15:48:05Z jackdaniel: beach: we'd love to :) 2018-01-29T15:48:10Z shrdlu68 joined #lisp 2018-01-29T15:48:12Z beach: jackdaniel: But we arrive in Malaga the Friday before and we leave the Friday after. 2018-01-29T15:48:14Z Shinmera: I'll be staying here: http://www.booking.com/Share-HVvtDE 2018-01-29T15:48:25Z beach: jackdaniel: So we have several nights in Malaga. 2018-01-29T15:48:29Z Shinmera: It's within walking distance from the conference 2018-01-29T15:49:29Z Cymew quit (Ping timeout: 255 seconds) 2018-01-29T15:49:48Z Shinmera: It's a bit of a shame that there was no good big hotel offer this time around. Having a party of lispers at the same place was really nice the previous two years. 2018-01-29T15:50:47Z AeroNotix: It's Spain, sleep on the beach 2018-01-29T15:51:02Z Cymew joined #lisp 2018-01-29T15:51:18Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T15:51:46Z fikka joined #lisp 2018-01-29T15:52:43Z dec0n quit (Read error: Connection reset by peer) 2018-01-29T15:52:46Z milanj_ joined #lisp 2018-01-29T15:53:54Z deng_cn joined #lisp 2018-01-29T15:54:00Z nowhereman_ quit (Ping timeout: 252 seconds) 2018-01-29T15:55:27Z Cymew quit (Ping timeout: 240 seconds) 2018-01-29T15:56:05Z Chream_ quit (Read error: Connection reset by peer) 2018-01-29T15:56:28Z flamebeard quit (Quit: Leaving) 2018-01-29T15:56:45Z milanj quit (Ping timeout: 264 seconds) 2018-01-29T15:56:47Z solyd quit (Quit: solyd) 2018-01-29T15:57:21Z Chream_ joined #lisp 2018-01-29T15:57:32Z jstypo joined #lisp 2018-01-29T15:57:51Z shrdlu68 quit (Ping timeout: 248 seconds) 2018-01-29T15:58:17Z nowhereman_ joined #lisp 2018-01-29T15:58:59Z nowhere_man joined #lisp 2018-01-29T15:59:36Z z3t0 joined #lisp 2018-01-29T15:59:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T16:00:08Z hiroaki quit (Ping timeout: 268 seconds) 2018-01-29T16:00:22Z z3t0 quit (Remote host closed the connection) 2018-01-29T16:00:51Z z3t0 joined #lisp 2018-01-29T16:01:08Z papachan joined #lisp 2018-01-29T16:02:21Z z3t0_ joined #lisp 2018-01-29T16:02:30Z _cosmonaut_ quit (Ping timeout: 260 seconds) 2018-01-29T16:02:40Z z3t0 quit (Read error: Connection reset by peer) 2018-01-29T16:02:41Z fikka joined #lisp 2018-01-29T16:03:11Z nowhereman_ quit (Ping timeout: 248 seconds) 2018-01-29T16:04:25Z z3t0_ quit (Remote host closed the connection) 2018-01-29T16:04:46Z z3t0 joined #lisp 2018-01-29T16:04:53Z zaquest quit (Quit: Leaving) 2018-01-29T16:05:06Z Chream_ quit (Read error: Connection reset by peer) 2018-01-29T16:05:13Z zaquest joined #lisp 2018-01-29T16:05:21Z acolarh_ joined #lisp 2018-01-29T16:05:32Z lima4 joined #lisp 2018-01-29T16:06:11Z acolarh_ quit (Client Quit) 2018-01-29T16:06:22Z Chream_ joined #lisp 2018-01-29T16:06:40Z sjl: mfiano: sorry to rain on your parade, but defstar is GPLv3 2018-01-29T16:07:07Z sjl: so depending on it in an MIT licensed lib is probably impossible 2018-01-29T16:07:20Z EvW quit (Ping timeout: 276 seconds) 2018-01-29T16:07:48Z sjl: if it's any consolation, I was surprised by the same thing, and regretfully spent a good hour tearing it out of all my stuff 2018-01-29T16:08:40Z mfiano: Yeah I want to eventually replace that, but I wonder how legal it is considering I'm not distributing it, but Quicklisp is pulling everything down on a user's machine. 2018-01-29T16:09:47Z sjl: I would think a court would consider that distributing. "The user's web browser requested foo.tgz from my server, I didn't push it to them" is similar. 2018-01-29T16:10:18Z mfiano: Would a court consider Quicklisp itself infringing on the GPLv3, having everything together in the quicklisp dir? 2018-01-29T16:10:30Z oleo quit (Quit: Leaving) 2018-01-29T16:10:41Z EvW joined #lisp 2018-01-29T16:10:55Z dlowe: the license interpretation depends heavily on what is considered a dependency of a program 2018-01-29T16:11:07Z oleo joined #lisp 2018-01-29T16:11:09Z dlowe: so quicklisp doesn't depend on the programs it manipulates 2018-01-29T16:11:12Z sjl: Since quicklisp doesn't actually rely on the code, it just treats it as data, I doubt it would be a derivative work. 2018-01-29T16:11:18Z hhdave quit (Quit: hhdave) 2018-01-29T16:12:26Z oleo: dam, clicked too fast and closed my irc client too...lol 2018-01-29T16:12:29Z jackdaniel: mfiano: there is a clear distinction between "derivative work" and a "mere aggregation" 2018-01-29T16:12:53Z mfiano: Ok then, I'll have to fix that 2018-01-29T16:13:01Z sjl: Someone should do a clean-room reimplementation of defstar (or something like it). It's a useful idea that more people would use if it were more permissively licensed. 2018-01-29T16:13:21Z sjl: Or maybe we should all just switch to Shen. Meh. 2018-01-29T16:13:24Z jackdaniel: https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.en.html#MereAggregation (from faq) 2018-01-29T16:13:29Z mfiano: Pushed high up on my priority list. Thanks for bringing that to my attention. I recently went through my software and culled GPL dependencies, but apparently didn't look hard enough :/ 2018-01-29T16:13:34Z jackdaniel: what is defstar? 2018-01-29T16:13:48Z jackdaniel: nvm, I'll look myself 2018-01-29T16:13:50Z sjl: jackdaniel: https://bitbucket.org/eeeickythump/defstar/ 2018-01-29T16:13:51Z jackdaniel: sorry for being lazy ;) 2018-01-29T16:14:05Z jackdaniel: thx 2018-01-29T16:14:13Z ebrasca: beach: I have change my do-cluster for : http://termbin.com/tjeb 2018-01-29T16:14:14Z oleo: marbella seems nice 2018-01-29T16:14:16Z oleo: eheh 2018-01-29T16:15:10Z sjl: (declaim (ftype (function (fixnum fixnum) fixnum) foo)) (defun foo (x y) ...) => (defun* (foo -> fixnum) ((x fixnum) (y fixnum)) ...) 2018-01-29T16:15:47Z jackdaniel: syntactic sugar is a death of parenthesis ;-) 2018-01-29T16:16:12Z beach: ebrasca: That is WAY better than it was. 2018-01-29T16:16:25Z solyd joined #lisp 2018-01-29T16:16:58Z jackdaniel: but looks useful indeed 2018-01-29T16:17:32Z ebrasca: beach: But now I need to rewrite allmost all my code. 2018-01-29T16:17:40Z mfiano: sjl: I appreciate that you brought that to my attention. This is a huge deal as that library is a foundation for pretty much everything I write. 2018-01-29T16:17:41Z shrdlu68 joined #lisp 2018-01-29T16:17:47Z jackdaniel: on the other hand I'm not sure if it can work as desired (that is – declamation being part of macroexpansion – does spec guarantee that it will be processed by a compiler?) 2018-01-29T16:17:57Z beach: ebrasca: That's part of the job description. 2018-01-29T16:17:58Z sjl: mfiano: yeah, better to discover it earlier rather than later 2018-01-29T16:18:43Z Bike: jackdaniel: i would assume the defun* expands into a progn of declaim and then defun? 2018-01-29T16:18:50Z beach: ebrasca: Just as the author of a book writes several versions before being content with the result, programmers often have to do the same. 2018-01-29T16:19:35Z karswell quit (Remote host closed the connection) 2018-01-29T16:19:39Z dlowe: it looks like it would be pretty trivial to duplicate under a more forgiving license. 2018-01-29T16:19:41Z mfiano: Oh books. I should have a few arriving today, yours included sjl 2018-01-29T16:20:13Z beach: I just realized, there must be some excellent flamenco restaurants in Malaga. 2018-01-29T16:20:37Z karswell joined #lisp 2018-01-29T16:20:45Z sjl: Bike: it does expand into a declaim+defun, though there's more functionality than just the bare expansion 2018-01-29T16:20:48Z fikka quit (Read error: Connection reset by peer) 2018-01-29T16:21:03Z mfiano: dlowe: Indeed. I only used it for brevity/laziness. I usually stay away from those sorts of libraries. 2018-01-29T16:21:22Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T16:21:35Z beach: jackdaniel: That sounds like something we should do, i.e. take our wives to a flamenco restaurant in Malaga. 2018-01-29T16:21:44Z z3t0 quit (Remote host closed the connection) 2018-01-29T16:21:45Z BitPuffin joined #lisp 2018-01-29T16:21:50Z sjl: it can insert check-type forms, handles optional/keyword/rest args, has pre/post-condition features 2018-01-29T16:21:56Z milanj_ quit (Read error: Connection reset by peer) 2018-01-29T16:22:00Z AeroNotix: Does defstar allow for any optimizations? I.e. will the type hints tell the compiler to do anything different? 2018-01-29T16:22:02Z jackdaniel: beach: sounds like a plan :) 2018-01-29T16:22:25Z sjl: It would probably be not too tough to reimplement the basic typechecking api 2018-01-29T16:22:29Z milanj_ joined #lisp 2018-01-29T16:22:41Z sjl: AeroNotix: depends on the compiler and the optimization settings. All it does it the declarations. 2018-01-29T16:22:43Z fikka joined #lisp 2018-01-29T16:23:05Z MetaYan quit (Ping timeout: 240 seconds) 2018-01-29T16:23:17Z AeroNotix: Purposefully not looking at the code 2018-01-29T16:23:30Z AeroNotix: seems like something relatively simple to implement when reading the README 2018-01-29T16:23:42Z visof quit (Ping timeout: 252 seconds) 2018-01-29T16:23:59Z MetaYan joined #lisp 2018-01-29T16:24:00Z deng_cn joined #lisp 2018-01-29T16:24:05Z sjl: "seems simple to implement" is the programmer family crest 2018-01-29T16:24:31Z AeroNotix: yeah at first it seems simple. Not saying IS DEFINITELY simple. 2018-01-29T16:24:38Z sjl: I'll tell you that it's 1.3k lines of code 2018-01-29T16:24:51Z shrdlu68 quit (Remote host closed the connection) 2018-01-29T16:24:52Z sjl: (I've already looked at the source when trying to track down a bug, so I'm spoiled) 2018-01-29T16:25:10Z shrdlu68 joined #lisp 2018-01-29T16:25:30Z AeroNotix: unclean 2018-01-29T16:25:53Z hiroaki joined #lisp 2018-01-29T16:27:43Z turkja quit (Ping timeout: 248 seconds) 2018-01-29T16:28:07Z sjl: I think if you limit yourself to "make some macros that make type declaration less tedious" and ignore all the pre/post condition stuff you could do it in far fewer lines. 2018-01-29T16:28:28Z sjl: But still, handling rest/optional/key args and defmethod/defgeneric args is nontrivial. 2018-01-29T16:28:28Z EvW quit (Ping timeout: 252 seconds) 2018-01-29T16:29:11Z AeroNotix: yeah I just thought to make a toy which just dealt with positional args and basic declair/declaim expansion 2018-01-29T16:29:12Z jackdaniel: Bike: right, it've got confused a little 2018-01-29T16:29:20Z AeroNotix: seems like it would cover the majority of use-cases. 2018-01-29T16:29:24Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-29T16:29:35Z sjl: That sounds like a good start. 2018-01-29T16:30:18Z AeroNotix: Anyone familiar with dialyzer in Erlang? 2018-01-29T16:30:27Z AeroNotix: Has anything like that appeared for CL? 2018-01-29T16:30:47Z mfiano: Speaking of licenses being a problem, cffi pulls in babel which is MIT but admits to stealing LLGPL code: https://github.com/cl-babel/babel/blob/cd4183b5767e65a718d199e4dfa5bd5f61370d4d/NOTES#L4-L6 2018-01-29T16:30:52Z CrazyEddy joined #lisp 2018-01-29T16:30:52Z mfiano: How much of a problem is this? 2018-01-29T16:31:33Z jackdaniel: if you use it as a library, then this is not a problem at all 2018-01-29T16:32:28Z AeroNotix: jackdaniel: how does it work if you used something as a library and then at runtime modified some functions? 2018-01-29T16:32:42Z AeroNotix: or if, for example, a library exposed a dynamic variable to override 2018-01-29T16:33:05Z jackdaniel: AeroNotix: I describe licensing implications here: https://common-lisp.net/project/ecl/posts/ECL-license.html 2018-01-29T16:33:28Z jackdaniel: (don't get discouraged by "ECL" in post name, I talk about other licensing models as well) 2018-01-29T16:33:50Z mfiano: LLGPL is sort of a custom license. It has never been tested in a court, so I don't think even a lawyer can answer that 2018-01-29T16:33:58Z hiroaki quit (Ping timeout: 252 seconds) 2018-01-29T16:34:21Z jackdaniel: here is LLGPL preamble: http://opensource.franz.com/preamble.html 2018-01-29T16:34:49Z AeroNotix: Is code written by an AI derivative work? If I write an AI capable of writing code, who owns the code? 2018-01-29T16:34:53Z vyzo joined #lisp 2018-01-29T16:35:08Z AeroNotix: or would that fit under the normal "compiler output is not covered" 2018-01-29T16:35:22Z jackdaniel: mfiano: llgpl is lgpl + preamble. also testing in court isn't a good argument – license is what it is - you have many countries and ruling may be different etc 2018-01-29T16:35:51Z shrdlu68 joined #lisp 2018-01-29T16:35:54Z smasta quit (Ping timeout: 268 seconds) 2018-01-29T16:36:01Z jackdaniel: AeroNotix: depends on the license. in case of GPL result of your code is not covered by the license 2018-01-29T16:36:10Z schweers quit (Ping timeout: 252 seconds) 2018-01-29T16:36:22Z AeroNotix: jackdaniel: yes, I assumed AI authored code would be covered in a similar way 2018-01-29T16:37:02Z beach: jackdaniel: This looks like the best bet so far: http://www.restaurantevinomio.es/en/ 2018-01-29T16:37:14Z oleo: are there any descriptions of libraries of quicklisp you can get at with quicklisp ? 2018-01-29T16:37:23Z Xach: oleo: no 2018-01-29T16:37:32Z oleo: ok 2018-01-29T16:37:58Z mfiano: I wonder how many MIT libraries actually steal code from incompatibly-licensed software without mention. babel makes me worried, especially since they never even fixed the problem they identified. 2018-01-29T16:38:07Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-29T16:39:32Z jackdaniel: beach: promotinal video doesn't make it clear if it is a flamenco restaurant ;) 2018-01-29T16:39:49Z beach: Look further down. There is a video of a performance. 2018-01-29T16:40:10Z kolko quit (Ping timeout: 256 seconds) 2018-01-29T16:40:43Z jackdaniel: ah, much better 2018-01-29T16:40:44Z beach: And the menu looks great! 2018-01-29T16:40:44Z smasta joined #lisp 2018-01-29T16:41:23Z jackdaniel: heh 2018-01-29T16:41:26Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T16:42:04Z jackdaniel: I'm getting back to my cl-charms tutorial, see you \o 2018-01-29T16:42:07Z red-dot joined #lisp 2018-01-29T16:42:16Z beach: So long jackdaniel. 2018-01-29T16:42:45Z sjl: jackdaniel: are you writing a tutorial for it? that would be welcome, it could use some additional docs. 2018-01-29T16:42:59Z jackdaniel: sjl: I'm also fixing some problems along the way 2018-01-29T16:43:05Z sjl: cool 2018-01-29T16:43:16Z sjl: I have some half-baked PRs for it I've been meaning to send. 2018-01-29T16:51:08Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T16:51:34Z milanj_ quit (Read error: Connection reset by peer) 2018-01-29T16:53:47Z deng_cn joined #lisp 2018-01-29T16:54:16Z milanj joined #lisp 2018-01-29T16:55:11Z phoe: Just to be sure: in GF dispatch, are EQL specializers more specific than class-based dispatch? 2018-01-29T16:55:13Z jackdaniel: hm, repository seems to be not very responsive 2018-01-29T16:55:30Z ebrasca: beach: Some hard probles in old abstration are easy to do now. 2018-01-29T16:55:42Z Bike: phoe: yah. 2018-01-29T16:55:51Z phoe: Bike: thanks. 2018-01-29T16:56:00Z phoe: That was my intuition but I wanted to be sure. 2018-01-29T16:56:15Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-29T16:56:25Z Bike: that's uh.... 7.6.6.1.2 2018-01-29T16:56:57Z FreeBirdLjj joined #lisp 2018-01-29T16:57:57Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-01-29T16:58:10Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-29T17:01:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-29T17:02:30Z beach: ebrasca: Excellent! 2018-01-29T17:04:40Z shrdlu68 joined #lisp 2018-01-29T17:04:43Z fluke`` joined #lisp 2018-01-29T17:08:04Z fluke` quit (Ping timeout: 252 seconds) 2018-01-29T17:08:09Z nowhereman_ joined #lisp 2018-01-29T17:08:54Z lima4 left #lisp 2018-01-29T17:09:10Z varjag joined #lisp 2018-01-29T17:09:20Z lima4_ joined #lisp 2018-01-29T17:09:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T17:11:27Z nowhere_man quit (Ping timeout: 248 seconds) 2018-01-29T17:12:03Z nullman quit (Ping timeout: 246 seconds) 2018-01-29T17:13:00Z nullman joined #lisp 2018-01-29T17:13:06Z Chream joined #lisp 2018-01-29T17:13:50Z fikka joined #lisp 2018-01-29T17:15:05Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-01-29T17:16:12Z shrdlu68 joined #lisp 2018-01-29T17:17:15Z kami quit (Ping timeout: 256 seconds) 2018-01-29T17:19:38Z lima4_ quit 2018-01-29T17:22:08Z milanj quit (Read error: Connection reset by peer) 2018-01-29T17:22:58Z milanj joined #lisp 2018-01-29T17:23:56Z Jesin joined #lisp 2018-01-29T17:25:25Z terpri joined #lisp 2018-01-29T17:25:41Z raynold joined #lisp 2018-01-29T17:26:23Z Chream quit (Read error: Connection reset by peer) 2018-01-29T17:27:28Z whoman joined #lisp 2018-01-29T17:32:59Z visof joined #lisp 2018-01-29T17:34:08Z Karl_Dscc joined #lisp 2018-01-29T17:34:37Z Tobbi joined #lisp 2018-01-29T17:34:57Z orivej quit (Ping timeout: 240 seconds) 2018-01-29T17:34:58Z jsambrook quit 2018-01-29T17:36:54Z smasta quit (Ping timeout: 246 seconds) 2018-01-29T17:40:30Z smasta joined #lisp 2018-01-29T17:42:14Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T17:42:57Z red-dot joined #lisp 2018-01-29T17:43:05Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-29T17:44:15Z Chream joined #lisp 2018-01-29T17:46:10Z Myk267 quit (Quit: Leaving) 2018-01-29T17:49:08Z _mjl joined #lisp 2018-01-29T17:50:07Z shka joined #lisp 2018-01-29T17:51:41Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T17:52:05Z nullman quit (Remote host closed the connection) 2018-01-29T17:52:21Z nullman joined #lisp 2018-01-29T17:52:28Z milanj quit (Read error: Connection reset by peer) 2018-01-29T17:52:56Z Arcaelyx joined #lisp 2018-01-29T17:54:06Z orivej joined #lisp 2018-01-29T17:54:14Z deng_cn joined #lisp 2018-01-29T17:56:10Z krwq joined #lisp 2018-01-29T17:59:41Z milanj joined #lisp 2018-01-29T18:00:26Z terpri quit (Ping timeout: 276 seconds) 2018-01-29T18:02:17Z nowhereman_ quit (Remote host closed the connection) 2018-01-29T18:02:44Z nowhereman_ joined #lisp 2018-01-29T18:04:22Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-29T18:05:10Z solyd quit (Quit: solyd) 2018-01-29T18:06:06Z Chream_ joined #lisp 2018-01-29T18:09:42Z eivarv joined #lisp 2018-01-29T18:09:42Z nullman quit (Ping timeout: 256 seconds) 2018-01-29T18:09:55Z nullman joined #lisp 2018-01-29T18:12:57Z damke quit (Ping timeout: 264 seconds) 2018-01-29T18:14:10Z damke joined #lisp 2018-01-29T18:17:27Z White_Flame quit (Remote host closed the connection) 2018-01-29T18:19:15Z White_Flame joined #lisp 2018-01-29T18:22:08Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T18:23:40Z visof quit (Ping timeout: 240 seconds) 2018-01-29T18:24:04Z White_Flame quit (Read error: Connection reset by peer) 2018-01-29T18:24:56Z deng_cn joined #lisp 2018-01-29T18:25:29Z White_Flame joined #lisp 2018-01-29T18:28:05Z brendyn quit (Ping timeout: 256 seconds) 2018-01-29T18:28:20Z heurist`_ quit (Ping timeout: 260 seconds) 2018-01-29T18:28:34Z heurist_ joined #lisp 2018-01-29T18:29:50Z mason joined #lisp 2018-01-29T18:40:33Z fikka quit (Ping timeout: 256 seconds) 2018-01-29T18:41:20Z fikka joined #lisp 2018-01-29T18:43:32Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T18:44:16Z red-dot joined #lisp 2018-01-29T18:46:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T18:49:56Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T18:51:29Z karswell quit (Read error: Connection reset by peer) 2018-01-29T18:52:05Z karswell joined #lisp 2018-01-29T18:54:21Z smurfrobot joined #lisp 2018-01-29T18:55:08Z smasta joined #lisp 2018-01-29T18:58:41Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-29T18:58:57Z jstypo quit (Ping timeout: 240 seconds) 2018-01-29T19:00:33Z Chream quit (Ping timeout: 246 seconds) 2018-01-29T19:00:45Z jstypo joined #lisp 2018-01-29T19:01:32Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-29T19:04:10Z vaporatorius__ quit (Ping timeout: 240 seconds) 2018-01-29T19:06:00Z drewc_ joined #lisp 2018-01-29T19:06:14Z drewc quit (Disconnected by services) 2018-01-29T19:06:16Z drewc_ is now known as drewc 2018-01-29T19:06:41Z smasta quit (Ping timeout: 248 seconds) 2018-01-29T19:09:57Z smurfrobot joined #lisp 2018-01-29T19:10:28Z pjb: https://www.hillelwayne.com/post/the-best-se-paper/ -> Fixing Faults in C and Java Source Code: Abbreviated vs. Full-Word Identifier Names 2018-01-29T19:11:34Z visof joined #lisp 2018-01-29T19:16:21Z mfiano: sjl: defstar does more than (declaim (ftype (function (fixnum fixnum) fixnum) foo)) (defun foo (x y) ...) => (defun* (foo -> fixnum) ((x fixnum) (y fixnum)) ...) 2018-01-29T19:16:41Z sjl: I'm aware of that 2018-01-29T19:16:56Z mfiano: Ok, just going off of your previous message 2018-01-29T19:17:18Z smasta joined #lisp 2018-01-29T19:17:48Z sjl: 2018-01-29 16:20:45 Bike: it does expand into a declaim+defun, though there's more functionality than just the bare expansion 2018-01-29T19:17:49Z sjl: 2018-01-29 16:21:50 it can insert check-type forms, handles optional/keyword/rest args, has pre/post-condition features 2018-01-29T19:18:01Z Bike: ? 2018-01-29T19:18:10Z mfiano: also inserts the corresponding DECLARE/THE/BLOCK/etc forms 2018-01-29T19:18:29Z sjl: yes 2018-01-29T19:21:44Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T19:23:33Z Chream joined #lisp 2018-01-29T19:23:58Z krwq: hey does anyone know if slime has any hook which is being triggered after repl is fully usable? 2018-01-29T19:25:15Z EvW joined #lisp 2018-01-29T19:25:30Z jstypo quit (Remote host closed the connection) 2018-01-29T19:26:09Z pjb: krwq: probably, the easiest way would be to write something in ~/.swank.lisp 2018-01-29T19:26:27Z pjb: You can send messages from swank to slime using the swank/slime rpc. 2018-01-29T19:26:35Z smurfrobot quit (Remote host closed the connection) 2018-01-29T19:26:48Z visof quit (Ping timeout: 240 seconds) 2018-01-29T19:27:14Z pjb: krwq: http://paste.lisp.org/display/22414 2018-01-29T19:27:21Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-01-29T19:27:38Z smurfrobot joined #lisp 2018-01-29T19:28:43Z Sauvin quit (Ping timeout: 256 seconds) 2018-01-29T19:29:37Z krwq: Thanks pjb! I didn't know about .swank.lisp but was planning to call something in emacs by myself :) 2018-01-29T19:32:00Z fikka joined #lisp 2018-01-29T19:32:21Z wigust quit (Ping timeout: 265 seconds) 2018-01-29T19:33:16Z smurfrobot quit (Remote host closed the connection) 2018-01-29T19:33:37Z smurfrobot joined #lisp 2018-01-29T19:35:54Z Amplituhedron joined #lisp 2018-01-29T19:40:41Z dented42 joined #lisp 2018-01-29T19:42:21Z dented42 quit (Client Quit) 2018-01-29T19:42:32Z deng_cn joined #lisp 2018-01-29T19:44:52Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-29T19:45:43Z BitPuffin quit (Remote host closed the connection) 2018-01-29T19:46:17Z jmercouris joined #lisp 2018-01-29T19:51:36Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T19:54:10Z deng_cn joined #lisp 2018-01-29T19:54:30Z eivarv quit (Quit: Sleep) 2018-01-29T19:56:09Z terpri joined #lisp 2018-01-29T19:58:05Z Folkol joined #lisp 2018-01-29T19:58:55Z blackwolf quit (Ping timeout: 248 seconds) 2018-01-29T19:59:44Z smurfrobot quit (Remote host closed the connection) 2018-01-29T20:00:24Z damke_ joined #lisp 2018-01-29T20:02:08Z Chream quit (Remote host closed the connection) 2018-01-29T20:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-29T20:02:46Z spoken-tales joined #lisp 2018-01-29T20:04:58Z d4ryus1 is now known as d4ryus 2018-01-29T20:05:43Z karswell quit (Remote host closed the connection) 2018-01-29T20:05:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T20:05:52Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T20:07:05Z dieggsy joined #lisp 2018-01-29T20:08:59Z smasta joined #lisp 2018-01-29T20:11:54Z fikka joined #lisp 2018-01-29T20:18:51Z Rawriful joined #lisp 2018-01-29T20:20:17Z _mjl quit (Ping timeout: 248 seconds) 2018-01-29T20:28:05Z Chream joined #lisp 2018-01-29T20:31:10Z smurfrobot joined #lisp 2018-01-29T20:39:18Z whoman quit (Quit: Leaving) 2018-01-29T20:40:05Z JonSmith joined #lisp 2018-01-29T20:40:07Z JonSmith quit (Remote host closed the connection) 2018-01-29T20:40:23Z JonSmith joined #lisp 2018-01-29T20:42:16Z Hamps joined #lisp 2018-01-29T20:42:20Z JonSmith quit (Read error: Connection reset by peer) 2018-01-29T20:43:25Z Hamps in this video you will see how to become an administrator on which network you want http://j.gs/ANj8 2018-01-29T20:43:31Z Hamps in this video you will see how to become an administrator on which network you want http://j.gs/ANj8 2018-01-29T20:43:37Z Hamps in this video you will see how to become an administrator on which network you want http://j.gs/ANj8 2018-01-29T20:43:43Z Hamps in this video you will see how to become an administrator on which network you want http://j.gs/ANj8 2018-01-29T20:43:43Z Hamps quit (Killed (Sigyn (Spam is off topic on freenode.))) 2018-01-29T20:45:40Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T20:46:11Z fikka joined #lisp 2018-01-29T20:52:13Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T20:52:47Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-29T20:52:54Z scymtym__ quit (Ping timeout: 246 seconds) 2018-01-29T20:53:18Z smasta quit (Ping timeout: 240 seconds) 2018-01-29T20:54:20Z deng_cn joined #lisp 2018-01-29T20:56:31Z smurfrobot quit (Remote host closed the connection) 2018-01-29T21:02:59Z nowhereman_ quit (Quit: Konversation terminated!) 2018-01-29T21:03:17Z nowhereman_ joined #lisp 2018-01-29T21:06:51Z nowhere_man joined #lisp 2018-01-29T21:08:18Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-29T21:08:45Z Rawriful quit (Quit: WeeChat 1.4) 2018-01-29T21:09:05Z Rawriful joined #lisp 2018-01-29T21:09:13Z Chream_ quit (Read error: Connection reset by peer) 2018-01-29T21:11:29Z Rawriful quit (Client Quit) 2018-01-29T21:12:00Z Rawriful joined #lisp 2018-01-29T21:14:48Z spoken-tales quit (Ping timeout: 240 seconds) 2018-01-29T21:15:00Z shka quit (Ping timeout: 256 seconds) 2018-01-29T21:19:16Z eivarv joined #lisp 2018-01-29T21:19:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-29T21:20:06Z mishoo quit (Ping timeout: 256 seconds) 2018-01-29T21:21:29Z quazimodo joined #lisp 2018-01-29T21:24:19Z fikka joined #lisp 2018-01-29T21:25:03Z JuanDaugherty joined #lisp 2018-01-29T21:29:10Z fikka quit (Ping timeout: 260 seconds) 2018-01-29T21:29:51Z scymtym joined #lisp 2018-01-29T21:30:22Z warweasle1 joined #lisp 2018-01-29T21:33:08Z warweasle quit (Quit: part) 2018-01-29T21:33:16Z warweasle1 is now known as warweasle 2018-01-29T21:35:14Z smurfrobot joined #lisp 2018-01-29T21:37:56Z randomstrangerb quit (Ping timeout: 252 seconds) 2018-01-29T21:38:02Z z3t0 joined #lisp 2018-01-29T21:39:09Z randomstrangerb joined #lisp 2018-01-29T21:39:10Z arbv quit (Ping timeout: 240 seconds) 2018-01-29T21:40:29Z kupad joined #lisp 2018-01-29T21:43:35Z rumbler31 quit (Ping timeout: 256 seconds) 2018-01-29T21:44:04Z raynold quit (Quit: Connection closed for inactivity) 2018-01-29T21:44:58Z vlatkoB quit (Remote host closed the connection) 2018-01-29T21:47:24Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-29T21:47:49Z stylewarning: Hello friends. 2018-01-29T21:47:57Z jmercouris: hello! 2018-01-29T21:50:06Z arbv joined #lisp 2018-01-29T21:50:14Z nox2 joined #lisp 2018-01-29T21:50:45Z papachan: hello 2018-01-29T21:50:56Z stylewarning: What are y'all hacking on? 2018-01-29T21:51:39Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T21:51:40Z Xach: I am hacking on building quicklisp dists from within a fresh vm, to shake out issues of lingering state 2018-01-29T21:51:48Z Xach: So much lingering state! 2018-01-29T21:52:01Z Xach: I am having an issue with cl+ssl not initializing properly for some reason. 2018-01-29T21:52:12Z Xach: this is my first try with debian 9. 2018-01-29T21:52:14Z Chream quit (Ping timeout: 252 seconds) 2018-01-29T21:52:18Z jmercouris: Can anyone remind me of the OS where every program runs as a standalone VM? 2018-01-29T21:52:22Z Xach: works fine on my debian 8 system 2018-01-29T21:54:22Z Murii quit (Quit: WeeChat 1.4) 2018-01-29T21:54:52Z jmercouris: Xach: same packages installed in both systems? 2018-01-29T21:55:10Z mason: jmercouris: Qubes? 2018-01-29T21:55:55Z drewbert quit (Quit: Leaving...) 2018-01-29T21:56:08Z Xach: jmercouris: Not entirely sure. 2018-01-29T21:56:37Z fikka joined #lisp 2018-01-29T21:56:48Z arbv quit (Ping timeout: 240 seconds) 2018-01-29T21:57:15Z nox2 quit (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org) 2018-01-29T21:57:32Z jmercouris: mason: Yes! Thank you 2018-01-29T21:57:52Z nox2 joined #lisp 2018-01-29T21:58:06Z mason: jmercouris: It was on the edge of my memory but I couldn't recall, so I read down the DistroWatch list until it popped into focus. 2018-01-29T21:58:42Z arbv joined #lisp 2018-01-29T21:59:36Z mason: Hey, a general question... Is there a CL library that will let me do line-oriented socket IO without threading or having to resort to manually buffering input until I see a valid line ending show up? 2018-01-29T21:59:42Z jmercouris: mason: I kept thinking "Balloons" was the name for some reason, all my queries involving balloons of course came up short :D 2018-01-29T21:59:47Z mason: TCP socket I/O I mean. 2018-01-29T21:59:57Z mason: jmercouris: Heh. But you had the right idea - simple shapes. 2018-01-29T22:00:52Z mason: jmercouris: Imagine the project developers' glumness when the recent kernel side-channel vulnerabilities were announced, obviating the security afforded by heavyweight VMs. :P 2018-01-29T22:01:22Z mason: So, no one's leaping up with an answer, and I have to wonder if I'm thinking about this wrong somehow. I'd think a line-oriented library would be the first thing anyone would want. 2018-01-29T22:01:32Z Shinmera: mason: You can use read-line on any stream. 2018-01-29T22:01:35Z hiroaki joined #lisp 2018-01-29T22:02:08Z mason: Shinmera: But, won't that block? I want multiple sockets and I want a line returned when one's ready, but without explicit threading. So, implemented with select or similar. 2018-01-29T22:02:18Z nox2 quit (Remote host closed the connection) 2018-01-29T22:02:38Z mason: So: "Anyone have a line ready?" "Yes, here's a list of sockets and their lines." 2018-01-29T22:02:46Z Shinmera: That's completely different from what you first described 2018-01-29T22:02:49Z pmc_ joined #lisp 2018-01-29T22:03:10Z nox2 joined #lisp 2018-01-29T22:03:16Z Shinmera: And also I'd think that's too application specific to be "the first thing anyone would want" 2018-01-29T22:03:20Z mason: It's not entirely different. I didn't note the desire to not block, but it was implied by the "without threading". 2018-01-29T22:03:34Z mason: Shinmera: Line-oriented organization? 2018-01-29T22:03:49Z Shinmera: non-blocking line-oriented multi-sockets 2018-01-29T22:03:58Z mason: Like, the IRC we're using now, or email, or HTTP, or almost everything else we use...? 2018-01-29T22:04:23Z mason: Ah, well. Yeah. But it seems like large classes of software would want it, and yet, it exists almost nowhere. Erlang maybe. 2018-01-29T22:04:34Z smurfrobot quit (Remote host closed the connection) 2018-01-29T22:04:48Z Shinmera: Because people just write a standard blocking algorithm and then use a thread per socket 2018-01-29T22:04:59Z Shinmera: Works just fine. 2018-01-29T22:05:00Z mason: Ignore the "line oriented" part and think of it as structured data where line-oriented is just one example of it. 2018-01-29T22:05:10Z mason: A thread per socket doesn't scale. 2018-01-29T22:05:24Z Shinmera: Well now you're introducing yet another non-standard constraint. 2018-01-29T22:05:36Z Xach: mason: For what it's worth, when I did that, I treated everything from the network initially as binary and used epoll. 2018-01-29T22:05:39Z _death: Go has https://golang.org/pkg/net/textproto/ suppose a lispy design of it may work 2018-01-29T22:06:08Z Xach: I did that for communicating with DNS and http servers to set hard timeouts. 2018-01-29T22:06:16Z mason: I wrote one for Perl but now I want one for Lisp, and I don't see why I have to solve this each time. :P 2018-01-29T22:06:18Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-29T22:06:33Z Xach: mason: basic-binary-ipc might help? i think it has some multiplexing things in it. 2018-01-29T22:06:38Z Shinmera: mason: Because you have constraints outside the norm? 2018-01-29T22:06:44Z mason: Xach: But yeah, that's what I've done thus far. It's all binary, I parse it and figure out when I've got a usable chunk to peel off. 2018-01-29T22:06:47Z Xach: Shinmera: Not really. 2018-01-29T22:06:51Z mason: Shinmera: I don't, actually. 2018-01-29T22:07:03Z Xach: mason: Sorry to suggest something I haven't personally tried - I've been meaning to. It might not suit. 2018-01-29T22:07:07Z Ellusionist joined #lisp 2018-01-29T22:07:20Z mason: Shinmera: As I explained to you, I want something that damned near every network service does, only they all have to implement it independently, which strikes me as weird. 2018-01-29T22:07:31Z mason: Xach: Ah, will look. 2018-01-29T22:07:48Z Shinmera: mason: I'm just saying I'm not surprised it doesn't exist. 2018-01-29T22:08:05Z mason: I'll look at basic-binary-ipc 2018-01-29T22:08:24Z mason: and textproto and if all else fails I'll just write it myself and share. 2018-01-29T22:09:27Z Xach: mason: I go the binary route because I find it harder to handle trying to customize encoding error handling, line ending conventions, etc. for character streams, and I haven't had much luck with bivalent streams, but I can predict binary streams pretty well. 2018-01-29T22:09:38Z mason: Xach: You may have a winner there. I want to see how they implement it, but it initially looks right. 2018-01-29T22:09:52Z eivarv quit (Quit: Sleep) 2018-01-29T22:09:56Z mason: Thank you all. 2018-01-29T22:10:39Z smasta joined #lisp 2018-01-29T22:11:28Z Shinmera: mason: More libraries, even smaller wrappers to make things trivial to get going with, are always welcome. 2018-01-29T22:11:50Z z3t0 quit (Remote host closed the connection) 2018-01-29T22:11:53Z raynold joined #lisp 2018-01-29T22:11:59Z z3t0 joined #lisp 2018-01-29T22:12:41Z mason: Shinmera: I want to spend a little time with Xach's basic-binary-ipc suggestion, but if it doesn't quite fit I'll plan on contributing something. 2018-01-29T22:13:29Z Shinmera: Well, even if b-b-i does do the trick, it might need a bit of work out of which making a library might be useful. 2018-01-29T22:17:35Z thallia quit (Ping timeout: 260 seconds) 2018-01-29T22:18:46Z Jesin quit (Quit: Leaving) 2018-01-29T22:18:57Z thallia joined #lisp 2018-01-29T22:20:44Z nox2 quit (Ping timeout: 256 seconds) 2018-01-29T22:21:02Z hiroaki joined #lisp 2018-01-29T22:21:48Z lima4_ joined #lisp 2018-01-29T22:22:23Z smurfrobot joined #lisp 2018-01-29T22:26:58Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-29T22:28:11Z randomstrangerb joined #lisp 2018-01-29T22:28:36Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-29T22:31:59Z Bike quit (Ping timeout: 260 seconds) 2018-01-29T22:32:09Z nullman quit (Ping timeout: 264 seconds) 2018-01-29T22:32:25Z nullman joined #lisp 2018-01-29T22:33:56Z deng_cn joined #lisp 2018-01-29T22:34:49Z lima4_ quit 2018-01-29T22:37:15Z Ellusionist quit (Remote host closed the connection) 2018-01-29T22:37:24Z Ellusionist joined #lisp 2018-01-29T22:39:26Z nullman quit (Ping timeout: 256 seconds) 2018-01-29T22:39:42Z nullman joined #lisp 2018-01-29T22:41:15Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-29T22:41:56Z nox2 joined #lisp 2018-01-29T22:44:32Z sjl quit (Ping timeout: 256 seconds) 2018-01-29T22:44:49Z z3t0 quit (Remote host closed the connection) 2018-01-29T22:45:15Z z3t0 joined #lisp 2018-01-29T22:46:07Z cpape quit (Ping timeout: 256 seconds) 2018-01-29T22:46:33Z smurfrobot quit (Remote host closed the connection) 2018-01-29T22:47:35Z LiamH quit (Quit: Leaving.) 2018-01-29T22:47:39Z puchacz_ quit (Quit: Konversation terminated!) 2018-01-29T22:48:01Z Ellusionist quit (Quit: Leaving) 2018-01-29T22:49:27Z z3t0 quit (Ping timeout: 246 seconds) 2018-01-29T22:50:46Z Karl_Dscc quit (Remote host closed the connection) 2018-01-29T22:50:46Z nox2 quit (Ping timeout: 256 seconds) 2018-01-29T22:51:10Z rumbler31 joined #lisp 2018-01-29T22:51:15Z z3t0 joined #lisp 2018-01-29T22:51:55Z deng_cn quit (Read error: Connection reset by peer) 2018-01-29T22:52:08Z karswell joined #lisp 2018-01-29T22:54:10Z jmercouris quit (Ping timeout: 256 seconds) 2018-01-29T22:55:29Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-29T22:57:31Z z3t0 quit (Remote host closed the connection) 2018-01-29T22:57:37Z norserob: Hi, I am trying to use libdrm on linux from lisp. Looked at cl-drm on github, and it works ok for some sthings. But I want to access framebuffers, and it looks like I need to do some ioctl calls. So far this fails, not sure why. I put an example in a gist: https://gist.github.com/rfolland/6f0aba4171519881f938040d9d0f237b 2018-01-29T22:58:00Z zooey quit (Ping timeout: 255 seconds) 2018-01-29T22:58:05Z z3t0 joined #lisp 2018-01-29T23:01:10Z quazimodo quit (Ping timeout: 252 seconds) 2018-01-29T23:01:52Z moei quit (Quit: Leaving...) 2018-01-29T23:02:18Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-29T23:02:24Z damke joined #lisp 2018-01-29T23:03:57Z Arcaelyx joined #lisp 2018-01-29T23:04:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-29T23:04:35Z pilfink joined #lisp 2018-01-29T23:05:58Z sz0 joined #lisp 2018-01-29T23:10:24Z Bike joined #lisp 2018-01-29T23:10:40Z Xach: norserob: where does the constant come from 2018-01-29T23:10:41Z Xach: ? 2018-01-29T23:11:03Z Chream joined #lisp 2018-01-29T23:14:06Z zooey joined #lisp 2018-01-29T23:15:57Z nullman quit (Ping timeout: 240 seconds) 2018-01-29T23:16:46Z smurfrobot joined #lisp 2018-01-29T23:19:35Z nullman joined #lisp 2018-01-29T23:21:54Z wigust joined #lisp 2018-01-29T23:23:35Z shifty joined #lisp 2018-01-29T23:24:06Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-29T23:25:26Z zooey quit (Ping timeout: 255 seconds) 2018-01-29T23:25:54Z smasta quit (Ping timeout: 256 seconds) 2018-01-29T23:26:40Z zooey joined #lisp 2018-01-29T23:26:57Z hiroaki quit (Ping timeout: 248 seconds) 2018-01-29T23:27:15Z wxie joined #lisp 2018-01-29T23:30:07Z karswell quit (Remote host closed the connection) 2018-01-29T23:30:16Z smurfrobot quit (Remote host closed the connection) 2018-01-29T23:30:38Z dieggsy quit (Ping timeout: 276 seconds) 2018-01-29T23:30:59Z karswell joined #lisp 2018-01-29T23:31:57Z wxie quit (Client Quit) 2018-01-29T23:33:33Z norserob: Xach: I got it from a very instructive C program by D.Herrmann at https://github.com/dvdhrm/docs/tree/master/drm-howto. I printed the value from there. It is calculated by a macro, I'll need to look into that. But it looks like I'm getting there anyway now, I got a better result after setting some of the values on the struct before doing the ioctl call. Forgot to do that in the small example in the gist. I 2018-01-29T23:33:38Z norserob: think I might be ok now... 2018-01-29T23:34:31Z norserob: I want to get the examples by Herrmann working in ccl before moving on with my own stuff. 2018-01-29T23:35:52Z fikka quit (Read error: Connection reset by peer) 2018-01-29T23:36:13Z fikka joined #lisp 2018-01-29T23:40:13Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-29T23:40:48Z snits_ joined #lisp 2018-01-29T23:41:40Z ericmath1son joined #lisp 2018-01-29T23:43:50Z ninegrid quit (Quit: leaving) 2018-01-29T23:45:40Z jasom quit (*.net *.split) 2018-01-29T23:45:40Z sebastien_ quit (*.net *.split) 2018-01-29T23:45:41Z michalisko quit (*.net *.split) 2018-01-29T23:45:41Z paule32 quit (*.net *.split) 2018-01-29T23:45:41Z argoneus quit (*.net *.split) 2018-01-29T23:45:42Z shenghi quit (*.net *.split) 2018-01-29T23:45:42Z ericmathison quit (*.net *.split) 2018-01-29T23:45:42Z sukaeto quit (*.net *.split) 2018-01-29T23:45:43Z PyroLagus quit (*.net *.split) 2018-01-29T23:45:45Z esthlos quit (*.net *.split) 2018-01-29T23:45:45Z gabot quit (*.net *.split) 2018-01-29T23:45:45Z guaqua quit (*.net *.split) 2018-01-29T23:45:46Z ski quit (*.net *.split) 2018-01-29T23:45:46Z eli quit (*.net *.split) 2018-01-29T23:45:47Z snits quit (*.net *.split) 2018-01-29T23:45:48Z smasta joined #lisp 2018-01-29T23:48:26Z pagnol joined #lisp 2018-01-29T23:48:27Z anaumov quit (Ping timeout: 240 seconds) 2018-01-29T23:49:02Z whoman joined #lisp 2018-01-29T23:49:16Z hooman joined #lisp 2018-01-29T23:51:09Z paule32 joined #lisp 2018-01-29T23:51:09Z jasom joined #lisp 2018-01-29T23:51:09Z sebastien_ joined #lisp 2018-01-29T23:51:09Z michalisko joined #lisp 2018-01-29T23:51:09Z argoneus joined #lisp 2018-01-29T23:51:09Z shenghi joined #lisp 2018-01-29T23:51:09Z sukaeto joined #lisp 2018-01-29T23:51:09Z PyroLagus joined #lisp 2018-01-29T23:51:09Z esthlos joined #lisp 2018-01-29T23:51:09Z gabot joined #lisp 2018-01-29T23:51:09Z guaqua joined #lisp 2018-01-29T23:51:09Z ski joined #lisp 2018-01-29T23:53:50Z jurov quit (Ping timeout: 260 seconds) 2018-01-29T23:55:00Z thallia quit (Ping timeout: 260 seconds) 2018-01-29T23:56:03Z thallia joined #lisp 2018-01-29T23:56:15Z jurov joined #lisp 2018-01-29T23:57:14Z hooman quit (Quit: Leaving) 2018-01-30T00:03:36Z Chream_ joined #lisp 2018-01-30T00:04:23Z wigust- joined #lisp 2018-01-30T00:05:05Z oleo quit (Ping timeout: 276 seconds) 2018-01-30T00:07:16Z wigust quit (Ping timeout: 256 seconds) 2018-01-30T00:10:23Z quazimodo joined #lisp 2018-01-30T00:11:59Z Kaisyu joined #lisp 2018-01-30T00:12:39Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-30T00:16:10Z fisxoj joined #lisp 2018-01-30T00:21:05Z markong quit (Ping timeout: 240 seconds) 2018-01-30T00:22:21Z spoken-tales joined #lisp 2018-01-30T00:28:47Z asarch quit (Ping timeout: 248 seconds) 2018-01-30T00:32:16Z deng_cn joined #lisp 2018-01-30T00:35:03Z nirved quit (Quit: Leaving) 2018-01-30T00:42:13Z jasom: mason: b-b-i provides the primitives that you can build your library off of, but you'll have to create a buffer for each socket and fill them in as you go, then add the logic for detecting newlines 2018-01-30T00:42:33Z mason: jasom: Yeah, that seems reasonable. 2018-01-30T00:44:47Z jibanes quit (Ping timeout: 248 seconds) 2018-01-30T00:45:10Z enzuru joined #lisp 2018-01-30T00:45:29Z enzuru quit (Client Quit) 2018-01-30T00:46:35Z FreeBirdLjj joined #lisp 2018-01-30T00:46:54Z jibanes joined #lisp 2018-01-30T00:47:08Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-01-30T00:48:38Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-30T00:52:38Z spoken-tales left #lisp 2018-01-30T00:54:44Z papachan joined #lisp 2018-01-30T00:55:48Z EvW quit (Ping timeout: 240 seconds) 2018-01-30T01:02:59Z safe joined #lisp 2018-01-30T01:03:28Z Rawriful quit (Quit: WeeChat 1.4) 2018-01-30T01:06:53Z turkja joined #lisp 2018-01-30T01:07:42Z brendyn joined #lisp 2018-01-30T01:09:20Z scymtym quit (Remote host closed the connection) 2018-01-30T01:16:57Z scymtym joined #lisp 2018-01-30T01:17:51Z warweasle quit (Quit: Leaving) 2018-01-30T01:20:56Z nullman quit (Ping timeout: 256 seconds) 2018-01-30T01:21:56Z nullman joined #lisp 2018-01-30T01:25:37Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-30T01:26:50Z randomstrangerb joined #lisp 2018-01-30T01:27:28Z fikka quit (Ping timeout: 268 seconds) 2018-01-30T01:29:28Z dieggsy joined #lisp 2018-01-30T01:40:18Z raynold quit (Quit: Connection closed for inactivity) 2018-01-30T01:42:16Z arescorpio joined #lisp 2018-01-30T01:47:13Z safe quit (Read error: Connection reset by peer) 2018-01-30T01:48:14Z pmc_ quit (Quit: Leaving) 2018-01-30T01:48:59Z anaumov joined #lisp 2018-01-30T01:49:50Z pagnol quit (Ping timeout: 256 seconds) 2018-01-30T01:52:06Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-30T01:53:19Z randomstrangerb joined #lisp 2018-01-30T01:58:11Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-30T02:00:32Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-30T02:01:23Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-30T02:03:55Z fikka joined #lisp 2018-01-30T02:05:18Z Chream quit (Ping timeout: 240 seconds) 2018-01-30T02:15:54Z impulse joined #lisp 2018-01-30T02:20:47Z pierpa joined #lisp 2018-01-30T02:21:26Z pagnol joined #lisp 2018-01-30T02:21:35Z adolf_stalin joined #lisp 2018-01-30T02:32:16Z pillton quit (Ping timeout: 248 seconds) 2018-01-30T02:36:15Z pagnol quit (Ping timeout: 248 seconds) 2018-01-30T02:37:10Z heurist_ quit (Ping timeout: 240 seconds) 2018-01-30T02:37:22Z heurist`_` joined #lisp 2018-01-30T02:37:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T02:37:40Z d4ryus1 joined #lisp 2018-01-30T02:40:50Z d4ryus quit (Ping timeout: 256 seconds) 2018-01-30T02:41:00Z asarch joined #lisp 2018-01-30T02:41:46Z dddddd quit (Remote host closed the connection) 2018-01-30T02:43:03Z fikka joined #lisp 2018-01-30T02:52:22Z epony quit (Read error: Connection reset by peer) 2018-01-30T02:52:45Z epony joined #lisp 2018-01-30T02:53:53Z SamSkulls joined #lisp 2018-01-30T02:54:38Z Oladon joined #lisp 2018-01-30T02:58:05Z terpri quit (Ping timeout: 256 seconds) 2018-01-30T02:59:49Z damke_ joined #lisp 2018-01-30T03:02:09Z damke quit (Ping timeout: 264 seconds) 2018-01-30T03:03:30Z asarch: In: (with-open-file (a #p"/etc/passwd") (read-line a)), what is #p? 2018-01-30T03:05:32Z pjb: asarch: it's a dispatching reader macro. 2018-01-30T03:05:41Z pjb: asarch: read chapter 2. 2018-01-30T03:06:05Z asarch: What is the equivalent for while (feof(fp) != NULL) {...} from C? 2018-01-30T03:06:07Z pjb: asarch: also, consider: com.informatimago.common-lisp.unix.passwd 2018-01-30T03:06:29Z asarch: From what book? 2018-01-30T03:06:43Z pjb: asarch: the Hyperspec! 2018-01-30T03:07:26Z asarch: Thank you 2018-01-30T03:07:32Z asarch: Thank you very much pjb :-) 2018-01-30T03:07:43Z pjb: asarch: there's no equivalent, because it is silly. 2018-01-30T03:07:56Z pjb: asarch: feof checks it too late, the file might have grown since! 2018-01-30T03:08:15Z asarch: How would you do that? 2018-01-30T03:08:18Z pjb: asarch: instead, eof is tested at the time you try to read past the end of file. 2018-01-30T03:08:26Z asarch: ... 2018-01-30T03:08:40Z asarch: What?... 2018-01-30T03:08:43Z pjb: asarch: you have two ways of detecting it: returning a value, or signaling a end-of-file condition. 2018-01-30T03:08:46Z pjb: clhs read 2018-01-30T03:08:46Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_rd_rd.htm 2018-01-30T03:09:21Z asarch: Thank you very much once again :-) 2018-01-30T03:09:28Z asarch: I owe you a couple of beers 2018-01-30T03:10:12Z pjb: Note, you can always save the detection of eof into some hash-table and write a feof function to get it, if you want to reproduce the bugs of C… 2018-01-30T03:10:37Z pjb: asarch: alternatively, in the case of file-stream, you can test (= (file-position stream) (file-length stream)). 2018-01-30T03:12:06Z asarch: Ok 2018-01-30T03:12:11Z asarch takes notes... 2018-01-30T03:13:20Z phadthai quit (Ping timeout: 260 seconds) 2018-01-30T03:17:20Z pjb: asarch: but similarly after this test of file-length, it may change, so if the test is false, it doesn't mean you will be able to read anything. If it returns true, it doesn't mean you won't be able to read something. 2018-01-30T03:27:10Z phadthai joined #lisp 2018-01-30T03:28:53Z sjl joined #lisp 2018-01-30T03:31:52Z Chream_ joined #lisp 2018-01-30T03:32:45Z FreeBirdLjj joined #lisp 2018-01-30T03:33:57Z sjl quit (Ping timeout: 264 seconds) 2018-01-30T03:37:35Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-30T03:38:28Z Chream_2 joined #lisp 2018-01-30T03:38:28Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T03:38:53Z Chream_ joined #lisp 2018-01-30T03:38:53Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T03:39:26Z arescorpio quit (Quit: Leaving.) 2018-01-30T03:40:15Z Chream_2 joined #lisp 2018-01-30T03:40:16Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T03:40:42Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T03:40:48Z Chream_ joined #lisp 2018-01-30T03:50:40Z fikka quit (Ping timeout: 260 seconds) 2018-01-30T03:53:56Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T03:56:30Z deng_cn joined #lisp 2018-01-30T04:00:36Z fikka joined #lisp 2018-01-30T04:01:22Z pillton joined #lisp 2018-01-30T04:01:27Z pierpa: just tell him what he probably is looking for? asarch, probably you want: (loop for line = (read-line in nil nil) while line do ...) 2018-01-30T04:03:42Z pjb: pierpa: fish 2018-01-30T04:04:02Z pierpa: yeah, but up until a certain point :) 2018-01-30T04:04:22Z zooey quit (Remote host closed the connection) 2018-01-30T04:06:07Z zooey joined #lisp 2018-01-30T04:07:46Z asarch: Wow! That is fascinating :-) 2018-01-30T04:08:25Z pierpa: most input functions can either signal a condition OR return nil on end of file 2018-01-30T04:08:57Z pierpa: that's what the extra arguments to read-line are doing 2018-01-30T04:11:57Z pjb: asarch: so read-line returns usually a string, so returning NIL when eof is discriminating. 2018-01-30T04:12:09Z pjb: asarch: however, read can read nil and return it too. 2018-01-30T04:12:21Z pjb: asarch: there's one object at hand that read cannot read: the stream itself! 2018-01-30T04:12:39Z pjb: (loop for object = (read stream nil stream) until (eql stream object) do …) 2018-01-30T04:13:22Z Chream_2 joined #lisp 2018-01-30T04:13:23Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T04:13:51Z Chream_ joined #lisp 2018-01-30T04:13:51Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T04:13:55Z pierpa: right. Thanks pjb. I must correct myself: most input functions can either signal a condition or return a value you choose on end of file. 2018-01-30T04:18:27Z Oladon quit (Read error: Connection reset by peer) 2018-01-30T04:20:12Z Oladon joined #lisp 2018-01-30T04:22:18Z asarch: Question: if Common Lisp is not a multi-threating environment per se, why the "feof checks it too late, the file might have grown since!" condition? 2018-01-30T04:23:06Z pillton: You are assuming that there is only one process running at any given moment. 2018-01-30T04:23:13Z pjb: asarch: the operating system is a multi-task, multi-user operating system. 2018-01-30T04:23:48Z ckonstanski quit (Read error: Connection reset by peer) 2018-01-30T04:24:28Z Kyo91 joined #lisp 2018-01-30T04:24:31Z asarch: But OS and CL are two different entities, right? 2018-01-30T04:24:39Z ckonstanski joined #lisp 2018-01-30T04:24:48Z pjb: Yes, and files are common entities. 2018-01-30T04:25:11Z pjb: This is because the OS and CL are different entities that you cannot know when the file will grow (or shrink). 2018-01-30T04:26:00Z asarch: pierpa, I just looking for something a la C: while (feof(fp) != NULL) {fscanf(fp, "%s", buffer); printf("%s", buffer);} 2018-01-30T04:26:23Z pjb: asarch: this C code is wrong! It's buggy! 2018-01-30T04:26:49Z asarch: I know, I know 2018-01-30T04:27:17Z pjb: It should be written: while(EOF!=fscanf(fp,"%s",buffer)){printf("%s",buffer);} 2018-01-30T04:27:26Z pjb: which is the equivalent of the above LOOP. 2018-01-30T04:27:42Z asarch: Yeah! \o/ 2018-01-30T04:28:15Z pjb: asarch: reproducing C bugs in CL will require more work; as I explained above, you can define a feof function, by memorizing the result of the last read operation for each stream! 2018-01-30T04:28:44Z pjb: asarch: read man feof and try to understand what that means! 2018-01-30T04:31:11Z pjb: Notice that C doesn't have multiple values, conditions, or types associated to objects. This is so defectuous! This is why the function fread() cannot distinguish between end-of-file and error! Hence the need to store the eof status in the stream record, and retrieve or clear it with feof and clearerr. 2018-01-30T04:31:27Z asarch: :'-( 2018-01-30T04:31:28Z asarch: Ok 2018-01-30T04:31:29Z terpri joined #lisp 2018-01-30T04:31:46Z pjb: asarch: but this let you forget that those are not synchronous operations! You're just accessing a memorized flag in a structure. 2018-01-30T04:32:22Z pjb: The main problem of lispers, is that C programmers don't know the first thing about C… 2018-01-30T04:32:41Z pjb: After that, there will be people who don't believe in God… 2018-01-30T04:33:16Z asarch: The first thing of C? What is that? 2018-01-30T04:33:47Z pjb: C programmers don't know anything about C. They're full of wrong ideas about C. 2018-01-30T04:34:35Z pjb: asarch: for example, that you don't write a while(!feof(fp)) loop. You're a lame C programmer. 2018-01-30T04:35:08Z Chream_2 joined #lisp 2018-01-30T04:35:08Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T04:35:35Z Chream_ joined #lisp 2018-01-30T04:35:35Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T04:37:24Z marusich joined #lisp 2018-01-30T04:38:24Z asarch: I AM!!! 2018-01-30T04:38:28Z asarch: Of course I am 2018-01-30T04:38:33Z asarch: That's why I am here 2018-01-30T04:39:12Z asarch: When I was learning JavaScript, I asked if there was a shell who could understand JavaScript commands directly 2018-01-30T04:40:09Z oleo joined #lisp 2018-01-30T04:40:19Z asarch: However, they told me that it was not possible because the common and useful shell constructs like piping and redirection would conflict with JavaScript constructs 2018-01-30T04:41:06Z pjb: Like eshell, it would be perfectly possible. 2018-01-30T04:41:20Z asarch: That's great 2018-01-30T04:41:50Z asarch: The language defines what we can and what we cannot to think 2018-01-30T04:42:00Z asarch: Just like Paul Graham says in his book 2018-01-30T04:42:54Z adolf_stalin quit (Quit: Leaving...) 2018-01-30T04:45:45Z orivej quit (Ping timeout: 256 seconds) 2018-01-30T04:47:04Z asarch: BRB I need to change the LAN connection 2018-01-30T04:47:08Z asarch quit (Quit: Leaving) 2018-01-30T04:47:16Z k000 joined #lisp 2018-01-30T04:48:12Z k000 quit (Remote host closed the connection) 2018-01-30T04:48:24Z schoppenhauer quit (Ping timeout: 252 seconds) 2018-01-30T04:48:40Z asarch joined #lisp 2018-01-30T04:48:51Z krwq left #lisp 2018-01-30T04:49:27Z Chream_2 joined #lisp 2018-01-30T04:49:27Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T04:49:28Z asarch: BTW What is "com.informatimago.common-lisp.unix.passwd"? A news site? 2018-01-30T04:49:54Z Chream_ joined #lisp 2018-01-30T04:49:54Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T04:50:13Z pjb: asarch: this is #lisp, it's a package! 2018-01-30T04:50:25Z schoppenhauer joined #lisp 2018-01-30T04:54:08Z safe joined #lisp 2018-01-30T04:54:10Z fisxoj quit (Quit: fisxoj) 2018-01-30T04:56:20Z Oladon quit (Quit: Leaving.) 2018-01-30T04:57:47Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T04:58:18Z pjb: asarch: cd ~/quicklisp/local-projects ; git clone https://gitlab.com/com-informatimago/com-informatimago.git # Then (ql:quickload :com.informatimago.common-lisp.cesarum) 2018-01-30T04:59:04Z pjb: (documentation (find-package :com.informatimago.common-lisp.unix.passwd) t) 2018-01-30T04:59:29Z pjb: (com.informatimago.common-lisp.interactive.interactive:lspack :com.informatimago.common-lisp.unix.passwd t) 2018-01-30T05:00:18Z deng_cn joined #lisp 2018-01-30T05:00:29Z oleo quit (Remote host closed the connection) 2018-01-30T05:02:37Z shka joined #lisp 2018-01-30T05:05:10Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T05:08:48Z dieggsy quit (Ping timeout: 240 seconds) 2018-01-30T05:09:13Z nowhereman_ joined #lisp 2018-01-30T05:10:19Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T05:10:25Z Chream_2 joined #lisp 2018-01-30T05:10:51Z Chream_ joined #lisp 2018-01-30T05:10:52Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T05:11:49Z fikka joined #lisp 2018-01-30T05:13:16Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-30T05:14:09Z whoman quit (Read error: Connection reset by peer) 2018-01-30T05:14:44Z Chream_2 joined #lisp 2018-01-30T05:14:45Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T05:15:10Z Chream_ joined #lisp 2018-01-30T05:15:10Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T05:15:30Z whoman joined #lisp 2018-01-30T05:15:51Z Chream_2 joined #lisp 2018-01-30T05:15:51Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T05:16:28Z Chream_ joined #lisp 2018-01-30T05:16:28Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T05:18:49Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T05:19:21Z Chream_ joined #lisp 2018-01-30T05:25:20Z pierpa quit (Quit: Page closed) 2018-01-30T05:29:17Z safe quit (Read error: Connection reset by peer) 2018-01-30T05:29:33Z Chream_2 joined #lisp 2018-01-30T05:32:24Z Chream_ quit (Ping timeout: 252 seconds) 2018-01-30T05:33:36Z asarch: D'oh! 2018-01-30T05:33:39Z asarch: Thank you pjb 2018-01-30T05:33:48Z asarch: Thank you very much once again :-) 2018-01-30T05:35:10Z pjb: then of course: (com.informatimago.common-lisp.unix.passwd:read-passwd) 2018-01-30T05:35:45Z mlf joined #lisp 2018-01-30T05:35:45Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T05:35:51Z Chream_ joined #lisp 2018-01-30T05:36:31Z ebzzry quit (Ping timeout: 248 seconds) 2018-01-30T05:37:04Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T05:37:06Z Chream_2 joined #lisp 2018-01-30T05:37:33Z Chream_ joined #lisp 2018-01-30T05:37:33Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T05:37:47Z raynold joined #lisp 2018-01-30T05:40:15Z jibanes quit (Ping timeout: 248 seconds) 2018-01-30T05:42:14Z jibanes joined #lisp 2018-01-30T05:45:35Z fikka quit (Ping timeout: 248 seconds) 2018-01-30T05:47:03Z fikka joined #lisp 2018-01-30T05:51:53Z dieggsy` joined #lisp 2018-01-30T05:53:11Z dieggsy` is now known as dieggsy 2018-01-30T05:53:28Z dieggsy quit (Changing host) 2018-01-30T05:53:28Z dieggsy joined #lisp 2018-01-30T05:57:43Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T05:59:19Z Chream_2 joined #lisp 2018-01-30T05:59:19Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T05:59:36Z khisanth__ quit (Quit: Leaving) 2018-01-30T05:59:37Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T05:59:43Z Chream_ joined #lisp 2018-01-30T06:00:10Z Khisanth joined #lisp 2018-01-30T06:00:20Z deng_cn joined #lisp 2018-01-30T06:00:31Z damke joined #lisp 2018-01-30T06:02:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-30T06:07:57Z Chream_2 joined #lisp 2018-01-30T06:07:57Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T06:08:26Z Chream_ joined #lisp 2018-01-30T06:08:26Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T06:17:30Z marusich quit (Ping timeout: 252 seconds) 2018-01-30T06:19:05Z marusich joined #lisp 2018-01-30T06:20:19Z beach: Good morning everyone! 2018-01-30T06:20:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T06:24:28Z fikka joined #lisp 2018-01-30T06:27:13Z LocaMocha joined #lisp 2018-01-30T06:27:14Z LocaMocha quit (Max SendQ exceeded) 2018-01-30T06:27:32Z stylewarning: Is coleslaw maintained? 2018-01-30T06:29:20Z fikka quit (Ping timeout: 260 seconds) 2018-01-30T06:31:02Z mishoo joined #lisp 2018-01-30T06:31:04Z marusich quit (Ping timeout: 252 seconds) 2018-01-30T06:31:25Z smurfrobot joined #lisp 2018-01-30T06:33:25Z solyd joined #lisp 2018-01-30T06:35:45Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-30T06:36:23Z makomo: beach: morning! 2018-01-30T06:36:37Z makomo: exam in an hour or so :-) 2018-01-30T06:37:08Z solyd quit (Client Quit) 2018-01-30T06:37:39Z solyd joined #lisp 2018-01-30T06:37:47Z beach: Good luck. 2018-01-30T06:38:05Z jackdaniel: stylewarning: it is (at least it was around 2 months ago I last checked) 2018-01-30T06:38:16Z makomo: beach: thanks :-D. it's the most horrible subject ever though -- UML & co. 2018-01-30T06:38:21Z Karl_Dscc joined #lisp 2018-01-30T06:39:07Z stylewarning: jackdaniel: why are there like 15 open PRs? 2018-01-30T06:39:12Z makomo: no proper learning materials, only slides. the whole organization sucks. 2018-01-30T06:39:26Z makomo: and everything is so buzzwordy and enterprisey 2018-01-30T06:39:30Z jackdaniel: at least part of them were in a middle of discussing changes 2018-01-30T06:39:42Z makomo: and all of the examples are in java of course 2018-01-30T06:39:47Z jackdaniel: (what is a good thing - when maintainer hestitates to merge everything) 2018-01-30T06:40:49Z visof joined #lisp 2018-01-30T06:40:49Z visof quit (Changing host) 2018-01-30T06:40:49Z visof joined #lisp 2018-01-30T06:42:02Z jackdaniel: but looking at PRs it seems it is not *actively* maintained. but it is not abandoned either 2018-01-30T06:44:56Z aeth quit (Ping timeout: 276 seconds) 2018-01-30T06:48:14Z LocaMocha joined #lisp 2018-01-30T06:48:15Z LocaMocha quit (Max SendQ exceeded) 2018-01-30T06:49:16Z karswell quit (Read error: Connection reset by peer) 2018-01-30T06:49:31Z karswell_ joined #lisp 2018-01-30T06:51:27Z LocaMocha joined #lisp 2018-01-30T06:52:55Z fikka joined #lisp 2018-01-30T06:54:22Z solyd quit (Quit: solyd) 2018-01-30T06:54:25Z quazimodo quit (Ping timeout: 248 seconds) 2018-01-30T06:57:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T06:58:13Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T07:00:10Z deng_cn joined #lisp 2018-01-30T07:02:04Z flamebeard joined #lisp 2018-01-30T07:02:24Z ebzzry joined #lisp 2018-01-30T07:03:33Z fikka joined #lisp 2018-01-30T07:05:07Z sjl joined #lisp 2018-01-30T07:06:38Z Murii joined #lisp 2018-01-30T07:07:38Z asarch quit (Quit: Leaving) 2018-01-30T07:09:19Z zkat quit (Ping timeout: 265 seconds) 2018-01-30T07:09:34Z dec0n joined #lisp 2018-01-30T07:09:34Z sjl quit (Ping timeout: 252 seconds) 2018-01-30T07:10:43Z zkat joined #lisp 2018-01-30T07:10:44Z Karl_Dscc quit (Remote host closed the connection) 2018-01-30T07:12:37Z nox2 joined #lisp 2018-01-30T07:15:53Z makomo quit (Ping timeout: 268 seconds) 2018-01-30T07:16:49Z impulse quit (Ping timeout: 248 seconds) 2018-01-30T07:17:37Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-30T07:23:08Z BigSafari joined #lisp 2018-01-30T07:25:24Z vlatkoB joined #lisp 2018-01-30T07:28:48Z dieggsy quit (Ping timeout: 240 seconds) 2018-01-30T07:33:27Z Chream_2 joined #lisp 2018-01-30T07:34:02Z aeth joined #lisp 2018-01-30T07:34:22Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-30T07:34:22Z arbv quit (Ping timeout: 256 seconds) 2018-01-30T07:35:01Z arbv joined #lisp 2018-01-30T07:37:33Z fittestbits quit (Ping timeout: 264 seconds) 2018-01-30T07:37:49Z fittestbits joined #lisp 2018-01-30T07:40:33Z hiroaki joined #lisp 2018-01-30T07:43:18Z scymtym quit (Ping timeout: 240 seconds) 2018-01-30T07:45:18Z smasta quit (Ping timeout: 240 seconds) 2018-01-30T07:49:47Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T07:51:30Z Chream_ joined #lisp 2018-01-30T08:01:48Z nox2 quit (Ping timeout: 240 seconds) 2018-01-30T08:03:23Z Cymew joined #lisp 2018-01-30T08:04:29Z solyd joined #lisp 2018-01-30T08:06:15Z Cymew quit (Read error: Connection reset by peer) 2018-01-30T08:06:16Z peterhil` joined #lisp 2018-01-30T08:06:48Z Cymew joined #lisp 2018-01-30T08:07:35Z peterhil quit (Ping timeout: 240 seconds) 2018-01-30T08:07:46Z nox2 joined #lisp 2018-01-30T08:08:59Z Cymew_ joined #lisp 2018-01-30T08:09:08Z Cymew quit (Read error: Connection reset by peer) 2018-01-30T08:09:25Z quazimodo joined #lisp 2018-01-30T08:09:35Z solyd quit (Quit: solyd) 2018-01-30T08:11:22Z varjag joined #lisp 2018-01-30T08:18:07Z Cymew_ quit (Read error: Connection reset by peer) 2018-01-30T08:18:33Z Cymew joined #lisp 2018-01-30T08:20:07Z Cymew quit (Client Quit) 2018-01-30T08:22:40Z shka quit (Ping timeout: 240 seconds) 2018-01-30T08:23:42Z Cymew joined #lisp 2018-01-30T08:24:41Z nowhere_man joined #lisp 2018-01-30T08:25:09Z Cymew quit (Read error: Connection reset by peer) 2018-01-30T08:26:13Z Cymew joined #lisp 2018-01-30T08:27:13Z Devon joined #lisp 2018-01-30T08:28:24Z nowhereman_ quit (Ping timeout: 252 seconds) 2018-01-30T08:29:17Z chens joined #lisp 2018-01-30T08:31:14Z BigSafari quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-30T08:33:02Z Cymew_ joined #lisp 2018-01-30T08:33:49Z Cymew__ joined #lisp 2018-01-30T08:33:50Z Cymew quit (Read error: Connection reset by peer) 2018-01-30T08:37:21Z Cymew_ quit (Ping timeout: 248 seconds) 2018-01-30T08:37:39Z schweers joined #lisp 2018-01-30T08:39:23Z scymtym joined #lisp 2018-01-30T08:43:45Z quazimodo quit (Ping timeout: 246 seconds) 2018-01-30T08:47:40Z solyd joined #lisp 2018-01-30T08:49:27Z mlf quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-30T08:51:05Z milanj quit (Quit: This computer has gone to sleep) 2018-01-30T08:52:14Z solyd quit (Client Quit) 2018-01-30T08:53:44Z Cymew__ quit (Remote host closed the connection) 2018-01-30T08:54:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T08:57:24Z abeaumont joined #lisp 2018-01-30T08:58:36Z phoe: What is the CL way of telling emacs how to highlight syntax? 2018-01-30T08:59:07Z phoe: I have a DEFINE-FOO macro that has a &body as its last argument. I need to tell it that the first string of that &body is a docstring and should be highlighted as such, not as an usual string. 2018-01-30T08:59:20Z fikka joined #lisp 2018-01-30T08:59:39Z Cymew joined #lisp 2018-01-30T09:00:23Z damke_ joined #lisp 2018-01-30T09:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-30T09:02:45Z nullman quit (Ping timeout: 264 seconds) 2018-01-30T09:02:58Z nullman joined #lisp 2018-01-30T09:04:04Z Cymew quit (Read error: Connection reset by peer) 2018-01-30T09:04:22Z Cymew joined #lisp 2018-01-30T09:04:44Z Devon: phoe: Good question - I only know the EL way. 2018-01-30T09:05:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T09:08:16Z schweers: phoe: you have a separate face for docstrings? 2018-01-30T09:09:48Z Cymew quit (Read error: Connection reset by peer) 2018-01-30T09:10:19Z dmiles: lets say my lisp reader is reader a symbol had just read.. "#:A" . Are these the only characters that will stop reading the symbol? #\; #\, #\( #\) #\' #\` #\" #\: ? 2018-01-30T09:10:21Z Cymew joined #lisp 2018-01-30T09:10:51Z solyd joined #lisp 2018-01-30T09:11:13Z schweers: dmiles: if I understand your question correctly, every terminating macro character will terminate (hence the name) reading the symbol (or number) 2018-01-30T09:12:25Z dmiles: schweers: can you give my an example of a terminating macro character? 2018-01-30T09:12:48Z schweers: they are listed somewhere in the hyperspec, I’m looking for the page right now, give me a sec 2018-01-30T09:13:04Z schweers: http://www.lispworks.com/documentation/lw70/CLHS/Body/02_d.htm 2018-01-30T09:14:11Z dmiles: sharpsign is surprising there 2018-01-30T09:14:21Z fikka joined #lisp 2018-01-30T09:14:43Z schweers: um … sorry, then I didn’t give you the correct link 2018-01-30T09:14:59Z schweers: the sharpsign is a macrocharacter, but a non-terminating one 2018-01-30T09:15:22Z schweers: so foo#bar will be read as one token, not as "foo", leaving "#bar" unread 2018-01-30T09:15:27Z dmiles: 'A31#PA -> |A31#PA| 2018-01-30T09:15:31Z scymtym_ joined #lisp 2018-01-30T09:15:57Z schweers: not quite as nice, but figure 2-7 does the job: http://www.lispworks.com/documentation/lw70/CLHS/Body/02_ad.htm 2018-01-30T09:16:03Z dmiles: hrm |FOO#BAR| 2018-01-30T09:16:11Z schweers: look for characters which are terminating macro characters 2018-01-30T09:16:20Z dmiles: thank you 2018-01-30T09:16:40Z schweers: keep in mind that we are talking about standard syntax, you may change the readtable to include other terminating macro characters 2018-01-30T09:16:47Z schweers: you’re welcome 2018-01-30T09:19:33Z dmiles: also next is there a lisp reader written in lisp somewhere.. the reader i implemented is too permissive .. for example I dont keep count of backquote level when reading commas 2018-01-30T09:19:38Z dmiles: + ? 2018-01-30T09:19:48Z scymtym quit (Ping timeout: 240 seconds) 2018-01-30T09:20:05Z schweers: if I recall correctly, the sbcl has a reader written in lisp 2018-01-30T09:20:18Z schweers: yep, it is 2018-01-30T09:20:43Z dmiles: nice, thank you.. i am surprised 2018-01-30T09:20:51Z Shinmera: beach has a portable reader, if I remember correctly. 2018-01-30T09:20:59Z solyd quit (Read error: Connection reset by peer) 2018-01-30T09:21:14Z schweers: I was too, I still don’t really understand how that works 2018-01-30T09:21:14Z schweers: 2018-01-30T09:21:28Z schweers: although … I have a faint idea 2018-01-30T09:21:36Z Shinmera: https://github.com/robert-strandh/Eclector 2018-01-30T09:22:43Z Shinmera: schweers: What do you mean? The reader is just an algorithm. You can implement it in any language. 2018-01-30T09:22:45Z dmiles: awesome to even 2018-01-30T09:23:14Z deng_cn quit (Remote host closed the connection) 2018-01-30T09:23:33Z deng_cn joined #lisp 2018-01-30T09:23:35Z schweers: Shinmera: I don’t know a lot about bootstrapping, but then I remembered that one needs a working CL environment to build sbcl, so it doesn’t seem that unusual anymore. 2018-01-30T09:25:12Z dmiles: i i was suprised at sbcl is that impls end up doing a minimalistic reader in their lnaugage (say C) then if they start to writ e alisp reader in Lisp.. their C code gets jealous and starts to take over until the lisp becomes busywork 2018-01-30T09:25:23Z saki quit (Ping timeout: 268 seconds) 2018-01-30T09:25:35Z dmiles: why i* 2018-01-30T09:26:20Z raynold quit (Quit: Connection closed for inactivity) 2018-01-30T09:27:23Z lemoinem quit (Ping timeout: 256 seconds) 2018-01-30T09:27:34Z dmiles: so they weight the cost benefits of having two codebases.. one lame one in C they cant delete (and they forever have to improve) .. vs a *overly* fantastic one im Lisp 2018-01-30T09:28:45Z schweers: if I recall correctly in sbcl only parts of the runtime are written in C. 2018-01-30T09:28:46Z dmiles: so glad beach made a fantastic one :) 2018-01-30T09:29:21Z terpri quit (Remote host closed the connection) 2018-01-30T09:34:19Z smurfrobot joined #lisp 2018-01-30T09:35:12Z _cosmonaut_ joined #lisp 2018-01-30T09:35:49Z dmiles: hrrm sbcl might work to if i locate all the +...+ constants 2018-01-30T09:36:44Z dmiles: well most are in readtable.lisp .. ok .. thjis will work to 2018-01-30T09:37:48Z saki joined #lisp 2018-01-30T09:40:05Z solyd joined #lisp 2018-01-30T09:40:16Z visof quit (Ping timeout: 248 seconds) 2018-01-30T09:40:24Z _sjs joined #lisp 2018-01-30T09:44:07Z _sjs quit (Client Quit) 2018-01-30T09:45:52Z cpape joined #lisp 2018-01-30T09:46:56Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-30T09:50:56Z Chream joined #lisp 2018-01-30T09:51:58Z quazimodo joined #lisp 2018-01-30T09:53:46Z pjb quit (Ping timeout: 256 seconds) 2018-01-30T09:56:25Z Devon quit (Ping timeout: 260 seconds) 2018-01-30T09:57:47Z smurfrobot quit (Remote host closed the connection) 2018-01-30T10:03:06Z Devon joined #lisp 2018-01-30T10:03:45Z fikka quit (Ping timeout: 248 seconds) 2018-01-30T10:04:47Z wigust- quit (Ping timeout: 248 seconds) 2018-01-30T10:04:55Z fikka joined #lisp 2018-01-30T10:05:41Z pagnol joined #lisp 2018-01-30T10:12:44Z smurfrobot joined #lisp 2018-01-30T10:15:42Z dddddd joined #lisp 2018-01-30T10:16:05Z visof joined #lisp 2018-01-30T10:17:39Z scymtym_: Shinmera: the eclector thing is very much work-in-progress, though 2018-01-30T10:18:17Z Shinmera: scymtym_: You're working with him on it, right? 2018-01-30T10:18:41Z Devon quit (Ping timeout: 248 seconds) 2018-01-30T10:18:48Z scymtym_: yes 2018-01-30T10:19:20Z Amplituhedron joined #lisp 2018-01-30T10:20:23Z pjb joined #lisp 2018-01-30T10:20:49Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T10:23:11Z deng_cn joined #lisp 2018-01-30T10:24:22Z dmiles: well my current reader is doing pretty well... it will probly be a week to two months before i really need to borrow a reader in lisp 2018-01-30T10:26:47Z ebzzry quit (Quit: WeeChat 1.9.1) 2018-01-30T10:28:25Z Devon joined #lisp 2018-01-30T10:29:32Z BitPuffin joined #lisp 2018-01-30T10:30:35Z quazimodo quit (Ping timeout: 240 seconds) 2018-01-30T10:36:48Z blahblahblah joined #lisp 2018-01-30T10:36:50Z blahblahblah left #lisp 2018-01-30T10:37:02Z milanj joined #lisp 2018-01-30T10:38:55Z smurfrobot quit (Remote host closed the connection) 2018-01-30T10:41:10Z sjl joined #lisp 2018-01-30T10:42:12Z foom joined #lisp 2018-01-30T10:43:48Z foom2 quit (Ping timeout: 246 seconds) 2018-01-30T10:44:30Z antismap quit (Ping timeout: 246 seconds) 2018-01-30T10:44:50Z aindilis quit (Ping timeout: 260 seconds) 2018-01-30T10:45:35Z sjl quit (Ping timeout: 240 seconds) 2018-01-30T10:46:43Z eminhi joined #lisp 2018-01-30T10:47:35Z lonjil quit (Read error: Connection reset by peer) 2018-01-30T10:47:59Z damke joined #lisp 2018-01-30T10:48:57Z solyd quit (Ping timeout: 264 seconds) 2018-01-30T10:49:10Z nirved joined #lisp 2018-01-30T10:50:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-30T10:53:10Z lonjil joined #lisp 2018-01-30T10:53:50Z pjb quit (Ping timeout: 256 seconds) 2018-01-30T10:55:56Z smurfrobot joined #lisp 2018-01-30T10:56:21Z ebrasca quit (Ping timeout: 256 seconds) 2018-01-30T10:58:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T10:59:13Z fikka joined #lisp 2018-01-30T11:00:16Z saki quit (Remote host closed the connection) 2018-01-30T11:00:33Z saki joined #lisp 2018-01-30T11:01:00Z nowhereman_ joined #lisp 2018-01-30T11:01:12Z nirved quit (Ping timeout: 256 seconds) 2018-01-30T11:01:16Z damke_ joined #lisp 2018-01-30T11:02:25Z smurfrobot quit (Remote host closed the connection) 2018-01-30T11:03:18Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-30T11:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-30T11:05:58Z beach: scymtym_: It looks like it is close to being usable. I certainly intend to start using it for reading SICL code. 2018-01-30T11:13:31Z eminhi quit (Quit: leaving) 2018-01-30T11:14:27Z Devon quit (Read error: Connection reset by peer) 2018-01-30T11:17:10Z Tobbi joined #lisp 2018-01-30T11:20:19Z Devon joined #lisp 2018-01-30T11:24:00Z nirved joined #lisp 2018-01-30T11:29:30Z scymtym_: beach: it should definitely be fine (strictly speaking "no worse than") for that particular case since it still mostly identical to the code it is replacing. i was referring to FIXMEs for not-yet-defined condition types, recently discovered (small) bugs and the like with that statement 2018-01-30T11:31:13Z nox2 quit (Ping timeout: 248 seconds) 2018-01-30T11:33:28Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T11:33:57Z nox2 joined #lisp 2018-01-30T11:35:47Z deng_cn joined #lisp 2018-01-30T11:37:27Z solyd joined #lisp 2018-01-30T11:38:04Z makomo joined #lisp 2018-01-30T11:38:09Z nox2 quit (Ping timeout: 248 seconds) 2018-01-30T11:43:37Z scymtym__ joined #lisp 2018-01-30T11:44:38Z markong joined #lisp 2018-01-30T11:47:48Z scymtym_ quit (Ping timeout: 240 seconds) 2018-01-30T11:48:23Z hhdave joined #lisp 2018-01-30T11:51:28Z m00natic joined #lisp 2018-01-30T11:56:55Z beach: scymtym__: Sure, I understand that it is not completely finished, but it is definitely getting there. 2018-01-30T12:01:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T12:01:46Z Cymew quit (Remote host closed the connection) 2018-01-30T12:02:14Z Cymew joined #lisp 2018-01-30T12:02:57Z scymtym__: beach: sure 2018-01-30T12:03:01Z Achylles joined #lisp 2018-01-30T12:03:16Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T12:05:11Z EvW1 joined #lisp 2018-01-30T12:05:46Z deng_cn joined #lisp 2018-01-30T12:06:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-30T12:08:17Z Cymew joined #lisp 2018-01-30T12:12:47Z Cymew quit (Ping timeout: 248 seconds) 2018-01-30T12:14:34Z Cymew joined #lisp 2018-01-30T12:14:57Z nox2 joined #lisp 2018-01-30T12:19:00Z chens quit (Remote host closed the connection) 2018-01-30T12:19:17Z Cymew quit (Ping timeout: 268 seconds) 2018-01-30T12:20:23Z Cymew joined #lisp 2018-01-30T12:24:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-30T12:26:13Z attila_lendvai joined #lisp 2018-01-30T12:26:29Z Cymew joined #lisp 2018-01-30T12:27:43Z nox2 quit (Ping timeout: 248 seconds) 2018-01-30T12:30:46Z Cymew quit (Ping timeout: 252 seconds) 2018-01-30T12:31:01Z Achylles quit (Quit: Leaving) 2018-01-30T12:32:41Z Cymew joined #lisp 2018-01-30T12:32:44Z nox2 joined #lisp 2018-01-30T12:33:09Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T12:33:56Z orivej joined #lisp 2018-01-30T12:34:39Z kamog joined #lisp 2018-01-30T12:35:37Z deng_cn joined #lisp 2018-01-30T12:36:39Z Devon quit (Ping timeout: 256 seconds) 2018-01-30T12:36:58Z Cymew quit (Ping timeout: 256 seconds) 2018-01-30T12:37:13Z nox2 quit (Ping timeout: 256 seconds) 2018-01-30T12:39:29Z Cymew joined #lisp 2018-01-30T12:41:45Z Achylles joined #lisp 2018-01-30T12:41:47Z pfdietz joined #lisp 2018-01-30T12:42:44Z nox2 joined #lisp 2018-01-30T12:43:11Z gilez quit (Ping timeout: 255 seconds) 2018-01-30T12:43:50Z pfdietz: dmiles: SBCL doesn't have to have a reader written in C, any more than a C compiler needs to have a lexer/parser written in assembler. 2018-01-30T12:44:20Z Cymew quit (Ping timeout: 256 seconds) 2018-01-30T12:44:54Z gilez joined #lisp 2018-01-30T12:44:57Z attila_lendvai quit (Quit: Leaving.) 2018-01-30T12:49:40Z nox2 quit (Ping timeout: 260 seconds) 2018-01-30T12:50:50Z Amplituhedron quit (Remote host closed the connection) 2018-01-30T12:51:41Z Cymew joined #lisp 2018-01-30T12:56:38Z Cymew quit (Ping timeout: 276 seconds) 2018-01-30T12:57:54Z Cymew joined #lisp 2018-01-30T12:59:58Z Amplituhedron joined #lisp 2018-01-30T13:03:08Z Cymew quit (Ping timeout: 276 seconds) 2018-01-30T13:06:44Z omilu joined #lisp 2018-01-30T13:06:47Z Cymew joined #lisp 2018-01-30T13:08:02Z fikka joined #lisp 2018-01-30T13:08:09Z Devon joined #lisp 2018-01-30T13:08:48Z pagnol quit (Ping timeout: 240 seconds) 2018-01-30T13:10:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-30T13:11:18Z pagnol joined #lisp 2018-01-30T13:11:46Z dmiles: pfdietz: to read SBCL's lisp reader into SBCL i was assuming there was a less functioning primordial reader 2018-01-30T13:12:30Z dmiles: (though I supposed another lisp impl can build SBCL in this case) 2018-01-30T13:13:00Z Cymew joined #lisp 2018-01-30T13:14:48Z EvW1 quit (Ping timeout: 240 seconds) 2018-01-30T13:16:11Z smurfrobot joined #lisp 2018-01-30T13:17:52Z Cymew quit (Ping timeout: 268 seconds) 2018-01-30T13:18:52Z Cymew joined #lisp 2018-01-30T13:20:14Z nox2 joined #lisp 2018-01-30T13:20:18Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-30T13:21:44Z Devon quit (Ping timeout: 256 seconds) 2018-01-30T13:21:44Z hiroaki quit (Ping timeout: 256 seconds) 2018-01-30T13:22:07Z shifty quit (Ping timeout: 248 seconds) 2018-01-30T13:23:25Z Cymew quit (Ping timeout: 268 seconds) 2018-01-30T13:25:04Z Cymew joined #lisp 2018-01-30T13:25:27Z Bike: sbcl is built using another lisp, yes. 2018-01-30T13:25:59Z rumbler31 joined #lisp 2018-01-30T13:27:58Z red-dot joined #lisp 2018-01-30T13:28:27Z pagnol quit (Ping timeout: 240 seconds) 2018-01-30T13:29:45Z Cymew quit (Ping timeout: 264 seconds) 2018-01-30T13:30:11Z JuanDaugherty joined #lisp 2018-01-30T13:30:57Z Cymew joined #lisp 2018-01-30T13:33:07Z Cymew quit (Remote host closed the connection) 2018-01-30T13:33:08Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T13:33:14Z Cymew joined #lisp 2018-01-30T13:34:33Z nox2 quit (Ping timeout: 264 seconds) 2018-01-30T13:45:37Z nox2 joined #lisp 2018-01-30T13:45:44Z pfdietz: And gcc is written in C and compiled with a C compiler. The first C compiler written by Dennis Ritchie was in PDP-11 assembler though. 2018-01-30T13:48:05Z Xal quit (Ping timeout: 268 seconds) 2018-01-30T13:48:42Z pradam quit (Remote host closed the connection) 2018-01-30T13:51:29Z visof quit (Ping timeout: 248 seconds) 2018-01-30T13:51:36Z beach: It is very strange to me that so many people assume that a Common Lisp system must be (at least partially) written in some other language. 2018-01-30T13:52:52Z heurist`_` is now known as heurist 2018-01-30T13:53:28Z deng_cn joined #lisp 2018-01-30T13:54:00Z Xal joined #lisp 2018-01-30T13:56:03Z crsc quit (Quit: leaving) 2018-01-30T13:57:36Z makomo: i would say that's just because self-hosting is a weird concept at first 2018-01-30T13:58:37Z beach: makomo: So you are saying that, if asked, these people don't think that C compilers are written in C? 2018-01-30T13:58:55Z makomo: well, not quite, because many of them never ask themselves that question 2018-01-30T13:59:13Z makomo: they often treat compilers as "a thing you download and use to make programs" 2018-01-30T13:59:22Z makomo: they don't see the "recursive" nature 2018-01-30T13:59:24Z beach: Yes, I see what you mean. 2018-01-30T13:59:34Z makomo: i always like to think about what would happen if you had the ability to destroy all compilers for high-level languages in an instant 2018-01-30T13:59:42Z makomo: we would all have to start all over again 2018-01-30T14:00:02Z makomo: the same would happen if you destroyed all of the robots in factories or something like that 2018-01-30T14:00:11Z makomo: like, destroying all of the tools we use today to make products 2018-01-30T14:00:17Z makomo: we would have to go back and redo everything 2018-01-30T14:00:52Z makomo: it's a very interesting concept, because if you go deep enough, *someone* had to make the first version from something that was more primitive 2018-01-30T14:01:21Z makomo: it's a long chain of people standing on the shoulders of others :-) 2018-01-30T14:03:16Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T14:03:30Z fikka quit (Ping timeout: 268 seconds) 2018-01-30T14:04:00Z visof joined #lisp 2018-01-30T14:05:34Z deng_cn joined #lisp 2018-01-30T14:08:37Z JuanDaugherty: the long standing preference is to write the compiler for x in x 2018-01-30T14:08:50Z Achylles quit (Remote host closed the connection) 2018-01-30T14:09:09Z beach: It is the standard way of showing that the language is expressive. 2018-01-30T14:09:26Z JuanDaugherty: maybe with a core bootstrap in something else, e.g. the vm in smalltalk being in machine lang 2018-01-30T14:09:36Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-30T14:10:22Z JuanDaugherty: long standing meaning dating to maybe the early 70s 2018-01-30T14:10:48Z randomstrangerb joined #lisp 2018-01-30T14:11:07Z Chream quit (Remote host closed the connection) 2018-01-30T14:11:13Z JuanDaugherty: (or sixties if you include burroughs) 2018-01-30T14:12:29Z lieven: including the Realia COBOL compiler written in COBOL :) 2018-01-30T14:12:42Z JuanDaugherty: expressiveness and monolothic confidence in function 2018-01-30T14:14:34Z vaporatorius joined #lisp 2018-01-30T14:15:36Z vap1 joined #lisp 2018-01-30T14:16:48Z JuanDaugherty: more COBOL use now than i would have thought 2018-01-30T14:17:58Z dmiles: do others think that makomo is correct.. we'd have to start from scratch with lisp if there was not already a lisp impl? 2018-01-30T14:18:47Z makomo: dmiles: well how else would you do it? the initial lisp compiler was surely written in something that was not lisp, because lisp didn't exist until that moment :-) 2018-01-30T14:18:57Z makomo: same with any other language 2018-01-30T14:19:08Z beach: What do you mean by "start from scratch"? You would obviously have to write the first Lisp system in some other language. 2018-01-30T14:19:36Z JuanDaugherty: unless you have lisp hardware 2018-01-30T14:19:37Z dmiles: yes i agree, i thought maybe beach say it differntly 2018-01-30T14:19:45Z jackdaniel: "starting from scratch" is a bold statement - you have all ideas around (even the standard) 2018-01-30T14:19:46Z dmiles: say/saw 2018-01-30T14:20:01Z jackdaniel: so it is a "mere" question of implementing it 2018-01-30T14:20:18Z wingodboleash joined #lisp 2018-01-30T14:20:22Z vaporatorius quit (Quit: Leaving) 2018-01-30T14:20:26Z makomo: when you get to the bottom of that thought, someone somewhere implemented the first program with a few electrodes :D 2018-01-30T14:20:27Z jackdaniel: while starting of scratch would be also thinking on how this should be specified 2018-01-30T14:20:27Z dmiles: well i just mean we have everything of all the lisp code and spec yet we didnt have lisp impl in any language other than lisp 2018-01-30T14:20:43Z makomo: just flipping bits on his own 2018-01-30T14:21:00Z JuanDaugherty: the first 'programs' were manual switch settings 2018-01-30T14:21:17Z makomo: yeah, true 2018-01-30T14:21:18Z JuanDaugherty: ftm so were the first pc 2018-01-30T14:21:22Z wingodboleash: metacircular interpretation huh .... 2018-01-30T14:21:31Z fikka joined #lisp 2018-01-30T14:21:37Z makomo: so if you destroyed everything we had now, we would have to redo that whole process again 2018-01-30T14:21:45Z makomo: idk, but that thought was also pretty "scary" to me 2018-01-30T14:21:48Z makomo: always* 2018-01-30T14:22:17Z jackdaniel: makomo: that's not as terrifying, since you have all the design all over the place, you may implement from scratch only n-1 step to bootstrap step n 2018-01-30T14:22:31Z jackdaniel: while in "history" it is more a process of development supporting ideas loop 2018-01-30T14:22:58Z lieven: let me give you an even better one. If the electricity grid over a big enough area goes down, getting it up again would be a major problem. 2018-01-30T14:23:15Z makomo: jackdaniel: well, i guess that would depend on how much you destroyed :-D 2018-01-30T14:23:34Z makomo: lieven: lol yeah, pretty much 2018-01-30T14:23:45Z dmiles: or like when the computer chip factory burned down in singapore iot took us 5 years before we could buy ram again 2018-01-30T14:23:46Z makomo: it goes for any human activity 2018-01-30T14:24:27Z schweers: chris wellons wrote about part of this problem: http://nullprogram.com/blog/2016/11/17/ 2018-01-30T14:25:23Z wingodboleash: actually, maybe in the process of reinventing the wheel somebody will find out that we've been doing it all wrong since the very beginning and so maybe it'll be for the better if everything gets destroyed... 2018-01-30T14:25:28Z wingodboleash: just sayin 2018-01-30T14:25:28Z JuanDaugherty: i.e. the first electronic ones were, the jackard looms were punched hole programs but not computers 2018-01-30T14:25:58Z JuanDaugherty: *jacquard 2018-01-30T14:26:20Z moei joined #lisp 2018-01-30T14:26:20Z solyd quit (Ping timeout: 256 seconds) 2018-01-30T14:26:30Z fikka quit (Ping timeout: 260 seconds) 2018-01-30T14:26:47Z nowhere_man joined #lisp 2018-01-30T14:28:46Z oleo joined #lisp 2018-01-30T14:29:38Z sz0 joined #lisp 2018-01-30T14:29:53Z nowhereman_ quit (Ping timeout: 248 seconds) 2018-01-30T14:30:41Z wingodboleash: on a sidenote, why does it seem to me that i'm gonna have to write my own custom implementation of lisp to be truly satisfied with the language ? Seems to me that there's a sort of a law for lisp where everyone feels this at some point, and those who actually come up with a new implementation just increase the entropy of the scheme universe ! And then it becomes harder for a beginner to choose which dialect to choose and the beginner gets the same 2018-01-30T14:30:41Z wingodboleash: feeling ! Its an infinite loop ! 2018-01-30T14:31:09Z wingodboleash: *lisp universe 2018-01-30T14:31:27Z JuanDaugherty doesn't feel that at all, prefers to build on what is 2018-01-30T14:31:34Z schweers: dunno, I’m pretty happy with SBCL 2018-01-30T14:31:51Z JuanDaugherty: although I do feel it at the systems/OS level 2018-01-30T14:31:53Z lieven: schweers: http://yarchive.net/comp/linux/extreme_system_recovery.html Al Viro once did that for real without docs 2018-01-30T14:32:15Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T14:32:21Z Chream_2 joined #lisp 2018-01-30T14:32:37Z dmiles: i am making my impl because i dont think anyone has ever built common lisp on prolog before 2018-01-30T14:32:41Z beach: wingodboleash: I take it you mean a new language as opposed to a new implementation of an existing language? That is not a problem, because new languages usually don't become widely used. 2018-01-30T14:33:00Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T14:33:16Z JuanDaugherty: is a thing not having been done in and of itself a reason to do it? 2018-01-30T14:33:16Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T14:33:38Z wingodboleash: yeah... like theres a feeling that i want to create a dialect of lisp that is taylored to my use... probably what lisp is most useful for ? 2018-01-30T14:33:39Z dmiles: JuanDaugherty: sometimes :P 2018-01-30T14:33:48Z JuanDaugherty: :) 2018-01-30T14:34:05Z wingodboleash: JuanDaugherty: Maybe :P 2018-01-30T14:34:46Z Chream_ joined #lisp 2018-01-30T14:34:52Z Shinmera: I'm a practical person, so I really don't see the use in creating yet another language for which you'll have to waste decades upon decades until you're at a point where you have enough libraries to be actually productive. 2018-01-30T14:35:20Z JuanDaugherty: well if ur implementing cl, once you have an impl ... . 2018-01-30T14:35:36Z Shinmera: We already have several implementations, why would you make another 2018-01-30T14:35:37Z fikka joined #lisp 2018-01-30T14:35:50Z deng_cn joined #lisp 2018-01-30T14:35:53Z wingodboleash: Im a newbie 2018-01-30T14:35:55Z JuanDaugherty: just because apparently 2018-01-30T14:36:04Z wingodboleash: i've been wanting to learn lisp for a long time 2018-01-30T14:36:05Z Shinmera: jackdaniel: That's where my practicality comes in 2018-01-30T14:36:13Z Shinmera: err, JuanDaugherty 2018-01-30T14:36:18Z wingodboleash: but i never get to it because of the huge lisp world 2018-01-30T14:36:23Z dmiles: JuanDaugherty: what Shinmera saiid is the reason I have to build my impl.. Imagine how many ytears it would take get all the lisp libraries for prolog? 2018-01-30T14:36:38Z Shinmera: wingodboleash: Well fortunately for you this channel is only about Common Lisp, and that world is just one language. 2018-01-30T14:36:46Z wingodboleash: i yeah 2018-01-30T14:36:48Z jackdaniel: dmiles: use (and probably first fix) poplog then 2018-01-30T14:36:51Z wingodboleash: but even then 2018-01-30T14:37:01Z wingodboleash: its confusing as he** 2018-01-30T14:37:34Z JuanDaugherty: dmiles, to me function is function, i'd rather think about ways to leave function as is and work on a means to leverage in a common system 2018-01-30T14:37:38Z papachan joined #lisp 2018-01-30T14:37:48Z dmiles: jackdaniel: the problem is there are 7 refernce impl of Prolog.. immagine me having to write all teh lisp libraries for all 7 ? 2018-01-30T14:38:01Z JuanDaugherty: js, php, lisp, hs, prolog, whatever 2018-01-30T14:38:09Z dieggsy joined #lisp 2018-01-30T14:38:34Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T14:38:38Z dmiles: jackdaniel: or as you said catch poplog up to the capabilities of the best of the 7 2018-01-30T14:39:11Z jackdaniel: what I mean is that poplog allows interoperability of languages supported by it 2018-01-30T14:39:21Z jackdaniel: so if you fix its cl implementation you have libraries already 2018-01-30T14:39:29Z jackdaniel: and you may use it in other poplog languages 2018-01-30T14:39:29Z lieven: pop11 was a nice language but isn't it mostly dead now? 2018-01-30T14:39:37Z JuanDaugherty: everything pretty much boils down to the same ol jacked up 8080 instruction set anywho these days 2018-01-30T14:39:45Z schweers: lieven: what the hell was that? 2018-01-30T14:39:46Z dmiles: but then the whoile prolog world would need to abandon their 7 impls and jsut use proplog.. the path i have now all 7 can run all the lisp libraries 2018-01-30T14:40:02Z schweers: how do you botch a system that badly that these steps are necessary? 2018-01-30T14:40:19Z solyd joined #lisp 2018-01-30T14:40:33Z dmiles: proplog/poplog 2018-01-30T14:41:06Z jackdaniel: dmiles: you coming up with your own incompatible implementation is like in this xkcd joke: we have 6 standard, that's unacceptable (and they make 7th standard) 2018-01-30T14:41:54Z beach: wingodboleash: What is confusing about it? 2018-01-30T14:41:55Z jackdaniel: s/6 standard/6 standards/ 2018-01-30T14:43:32Z dmiles: jackdaniel: though luckily i am *only* implemeting one standard that i did not create (common lisp). and having to write 3-5 shims to cover the differnces in the 7 impls of prolog 2018-01-30T14:45:39Z JuanDaugherty: well cl standard purposes leaves some decisions to impl 2018-01-30T14:45:45Z JuanDaugherty: *purposely 2018-01-30T14:46:05Z dmiles: the 3-5 shims (prolog-to-prolog compatibility libaries) already mostly exist . why i probly only have ot create 3-5 2018-01-30T14:46:16Z JuanDaugherty: from infinite diversity something something 2018-01-30T14:46:36Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T14:46:45Z dmiles: JuanDaugherty: i find hta tis the only hard part about the impl.. Do i act like SBCL or do i cat like Clisp or like ECL? 2018-01-30T14:47:08Z dmiles: (i dont want to act like my own) 2018-01-30T14:47:33Z Chream_ joined #lisp 2018-01-30T14:47:37Z JuanDaugherty: what's the point if you don't act like ur own (pl flavored i presume)? 2018-01-30T14:48:07Z dmiles: meaning i picking one #+ and making sure i conform to being really hte same 2018-01-30T14:48:24Z JuanDaugherty: ah 2018-01-30T14:48:43Z warweasle joined #lisp 2018-01-30T14:49:04Z JuanDaugherty: ur ignoring allegro and the other priced ones? 2018-01-30T14:49:32Z dmiles: i using some of Allegro yeah.. such as their jLinker library 2018-01-30T14:49:59Z dmiles: (which is what ABCL does) 2018-01-30T14:50:16Z rippa joined #lisp 2018-01-30T14:50:47Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T14:52:24Z dmiles: Also though I figure most users with be user of Sicstus and SWI.. using things like CLEWS 2018-01-30T14:53:06Z JuanDaugherty: swi is more dominant in pl than sbcl is in cl 2018-01-30T14:54:24Z Chream_ joined #lisp 2018-01-30T14:54:39Z sjl joined #lisp 2018-01-30T14:55:11Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T14:56:23Z JuanDaugherty: people are still using cmucl ftm judging from the list activity 2018-01-30T14:56:46Z JuanDaugherty: (and the complaint about recent breakage) 2018-01-30T14:56:56Z dmiles: *nod* though since SWI is the slowest, it hard not having some of its libs on sicstus.. which the common-lisp libs will more than make up for 2018-01-30T14:57:07Z FreeBirdLjj joined #lisp 2018-01-30T14:57:13Z JuanDaugherty: yeah i think of yap as the alt 2018-01-30T14:57:38Z Chream_ joined #lisp 2018-01-30T14:57:54Z JuanDaugherty: but swi does not seem slow to me 2018-01-30T14:58:28Z JuanDaugherty: it built attempto in like 2s 2018-01-30T14:59:12Z dmiles: and its fast on swi as well! 2018-01-30T14:59:13Z sjl__ joined #lisp 2018-01-30T14:59:30Z JuanDaugherty: (i meant swi) 2018-01-30T14:59:58Z JuanDaugherty: not actually used yap, prolly never will 2018-01-30T15:00:01Z dmiles: (/me not being sarcastic.. Swi is fast at running attempto last time i ran it) 2018-01-30T15:00:47Z sjl quit (Ping timeout: 248 seconds) 2018-01-30T15:02:22Z dmiles: to contrast speed differnces though i wrote a HPSG parser on SWI, and Goolseby ported a HPSG to ACL.. What took 2 seconds to run on SWI took 30secs on ACL 2018-01-30T15:03:19Z dmiles: (attempto is a HPSG) 2018-01-30T15:03:31Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T15:04:09Z JuanDaugherty: i think support is supposed to be acl's strong suite 2018-01-30T15:04:52Z JuanDaugherty: or the comfort of the big house, i dunno 2018-01-30T15:04:56Z SaganMan joined #lisp 2018-01-30T15:05:32Z JuanDaugherty: miss ann and mr charlie's lisp 2018-01-30T15:06:00Z red-dot joined #lisp 2018-01-30T15:06:11Z deng_cn joined #lisp 2018-01-30T15:07:04Z dmiles: english to logic form conversion is one area that Prolog has the advantage 2018-01-30T15:07:33Z dmiles: https://github.com/SWI-Prolog/bench/blob/master/chat_parser.pl <- in fact, its a daily benchmark for SWI 2018-01-30T15:08:25Z dmiles: though the actualy use of that logic i think lisp has a big advantage 2018-01-30T15:08:41Z JuanDaugherty: yeah, nlp wants to be pl, pl is nlp oriented from the start 2018-01-30T15:08:52Z JuanDaugherty: *be pl based 2018-01-30T15:09:41Z wigust joined #lisp 2018-01-30T15:10:27Z dmiles: here is the output of the english2logic system: https://docs.google.com/document/d/1rdI_f-2YnX0e2RD6rGAY57YAqzLj2xHsk36m5HT6SoM/edit 2018-01-30T15:11:41Z dmiles: the systems that impl that logic have only been created in common lisp 2018-01-30T15:13:08Z dmiles: SNARK, etc 2018-01-30T15:13:47Z JuanDaugherty: at least it's executable in contrast with xml 2018-01-30T15:14:29Z dmiles: indeed! plz no one ask for it to be stuffed into RDF 2018-01-30T15:14:50Z Chream_2 joined #lisp 2018-01-30T15:15:24Z Murii quit (Quit: ¯\_(ツ)_/¯) 2018-01-30T15:15:56Z wingodboleash quit (Quit: Leaving) 2018-01-30T15:16:40Z Chream_ quit (Ping timeout: 240 seconds) 2018-01-30T15:23:25Z Cymew quit (Remote host closed the connection) 2018-01-30T15:23:52Z Cymew joined #lisp 2018-01-30T15:27:22Z attila_lendvai joined #lisp 2018-01-30T15:27:22Z attila_lendvai quit (Changing host) 2018-01-30T15:27:22Z attila_lendvai joined #lisp 2018-01-30T15:28:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-30T15:30:39Z Cymew joined #lisp 2018-01-30T15:31:25Z damke joined #lisp 2018-01-30T15:33:21Z visof quit (Ping timeout: 248 seconds) 2018-01-30T15:33:23Z smurfrobot joined #lisp 2018-01-30T15:34:10Z flamebeard quit (Quit: Leaving) 2018-01-30T15:34:33Z damke_ quit (Ping timeout: 264 seconds) 2018-01-30T15:35:20Z Cymew quit (Ping timeout: 260 seconds) 2018-01-30T15:38:54Z smurfrobot quit (Remote host closed the connection) 2018-01-30T15:39:31Z visof joined #lisp 2018-01-30T15:40:30Z smurfrobot joined #lisp 2018-01-30T15:41:05Z MetaYan quit (Ping timeout: 240 seconds) 2018-01-30T15:41:08Z fikka quit (Ping timeout: 256 seconds) 2018-01-30T15:42:16Z MetaYan joined #lisp 2018-01-30T15:43:21Z beach: I think I pretty much finished my ELS submissions. There is enough time to write another paper. Or I could go back to design and coding. 2018-01-30T15:44:42Z smurfrobot quit (Remote host closed the connection) 2018-01-30T15:46:16Z fikka joined #lisp 2018-01-30T15:46:29Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-30T15:48:53Z solyd quit (Quit: solyd) 2018-01-30T15:50:26Z FreeBirdLjj joined #lisp 2018-01-30T15:50:45Z fikka quit (Ping timeout: 246 seconds) 2018-01-30T15:51:32Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-30T15:52:36Z solyd joined #lisp 2018-01-30T15:54:03Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-30T15:54:05Z saki quit (Quit: saki) 2018-01-30T15:54:25Z saki joined #lisp 2018-01-30T15:56:41Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T15:58:10Z fikka joined #lisp 2018-01-30T15:58:18Z eivarv joined #lisp 2018-01-30T15:58:57Z deng_cn joined #lisp 2018-01-30T15:58:57Z paule32: hello 2018-01-30T15:59:02Z paule32: need help: https://pastebin.com/XbKnJw2U 2018-01-30T16:00:03Z dec0n quit (Read error: Connection reset by peer) 2018-01-30T16:00:07Z sjl__ is now known as sjl 2018-01-30T16:01:37Z dec0n joined #lisp 2018-01-30T16:01:48Z Murii joined #lisp 2018-01-30T16:05:28Z blackwolf joined #lisp 2018-01-30T16:06:06Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T16:07:54Z python476 joined #lisp 2018-01-30T16:08:13Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T16:08:54Z Xach: paule32: does it happen every time you try? 2018-01-30T16:09:47Z paule32: if run with system root/adim rights, then not 2018-01-30T16:10:03Z smurfrobot joined #lisp 2018-01-30T16:12:00Z Xach: I don't know why clisp is doing that, sorry. I don't use clisp a lot, but when I do, I haven't gotten signal 6 quits. 2018-01-30T16:12:07Z Chream_ joined #lisp 2018-01-30T16:12:10Z Cymew joined #lisp 2018-01-30T16:12:25Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:13:31Z Chream_ joined #lisp 2018-01-30T16:14:55Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:15:17Z paule32: *** - Component "cl-ppcre" not found 2018-01-30T16:15:17Z paule32: Mögliche Optionen: 2018-01-30T16:15:17Z paule32: REINITIALIZE-SOURCE-REGISTRY-AND-RETRY :R1 Retry finding system cl-ppcre after reinitializing the source-registry. 2018-01-30T16:16:02Z Chream_ joined #lisp 2018-01-30T16:16:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-30T16:16:53Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:17:15Z terpri joined #lisp 2018-01-30T16:18:00Z Chream_ joined #lisp 2018-01-30T16:18:07Z Cymew joined #lisp 2018-01-30T16:18:51Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:19:33Z _cosmonaut_ quit (Ping timeout: 264 seconds) 2018-01-30T16:19:58Z Chream_ joined #lisp 2018-01-30T16:20:22Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:20:47Z nowhere_man quit (Read error: Connection reset by peer) 2018-01-30T16:21:28Z nowhere_man joined #lisp 2018-01-30T16:21:37Z Arcaelyx joined #lisp 2018-01-30T16:22:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-30T16:23:11Z eli joined #lisp 2018-01-30T16:23:11Z eli quit (Changing host) 2018-01-30T16:23:11Z eli joined #lisp 2018-01-30T16:23:17Z Chream_ joined #lisp 2018-01-30T16:23:41Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:23:50Z asarch joined #lisp 2018-01-30T16:24:12Z orivej quit (Ping timeout: 256 seconds) 2018-01-30T16:24:23Z Xach: paule32: If I were in your situation I would stop using clisp and use something else. 2018-01-30T16:25:09Z paule32: you mean programming? 2018-01-30T16:25:14Z paule32: or setup? 2018-01-30T16:25:25Z Xach: paule32: I mean stop using CLISP and start using SBCL. 2018-01-30T16:25:46Z Xach: paule32: Another option would be to appeal to a clisp user or developer for help. 2018-01-30T16:26:48Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T16:27:11Z brendyn quit (Ping timeout: 248 seconds) 2018-01-30T16:27:58Z Chream_ joined #lisp 2018-01-30T16:28:33Z visof quit (Ping timeout: 246 seconds) 2018-01-30T16:29:31Z deng_cn joined #lisp 2018-01-30T16:30:42Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:32:06Z Chream_ joined #lisp 2018-01-30T16:32:51Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:33:58Z Chream_ joined #lisp 2018-01-30T16:36:09Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T16:36:31Z m00natic quit (Read error: Connection reset by peer) 2018-01-30T16:36:48Z m00natic joined #lisp 2018-01-30T16:37:22Z red-dot joined #lisp 2018-01-30T16:37:31Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-30T16:38:32Z Chream_ joined #lisp 2018-01-30T16:40:57Z pjb joined #lisp 2018-01-30T16:44:25Z eivarv quit (Quit: Sleep) 2018-01-30T16:44:30Z orivej joined #lisp 2018-01-30T16:46:48Z m00natic quit (Ping timeout: 240 seconds) 2018-01-30T16:47:26Z Amplituhedron joined #lisp 2018-01-30T16:47:43Z m00natic joined #lisp 2018-01-30T16:48:00Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-30T16:48:21Z fikka quit (Ping timeout: 264 seconds) 2018-01-30T16:49:08Z pjb: dmiles: each implementation has a lisp reader of course. I don't know if sicl already has one implemented. You may have a look at: com.informatimago.common-lisp.lisp-reader.reader 2018-01-30T16:49:15Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-30T16:49:48Z attila_lendvai joined #lisp 2018-01-30T16:49:48Z attila_lendvai quit (Changing host) 2018-01-30T16:49:48Z attila_lendvai joined #lisp 2018-01-30T16:50:12Z fikka joined #lisp 2018-01-30T16:51:15Z raynold joined #lisp 2018-01-30T16:52:33Z m00natic quit (Read error: Connection reset by peer) 2018-01-30T16:52:49Z m00natic joined #lisp 2018-01-30T16:57:14Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T16:57:18Z solyd quit (Quit: solyd) 2018-01-30T16:59:31Z ckonstanski quit (Remote host closed the connection) 2018-01-30T16:59:48Z deng_cn joined #lisp 2018-01-30T17:00:27Z turkja quit (Ping timeout: 240 seconds) 2018-01-30T17:00:49Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-30T17:01:29Z ckonstanski joined #lisp 2018-01-30T17:03:07Z attila_lendvai joined #lisp 2018-01-30T17:03:07Z attila_lendvai quit (Changing host) 2018-01-30T17:03:07Z attila_lendvai joined #lisp 2018-01-30T17:05:18Z visof joined #lisp 2018-01-30T17:07:16Z nullman quit (Ping timeout: 268 seconds) 2018-01-30T17:07:35Z nullman joined #lisp 2018-01-30T17:08:37Z mfiano: Xach: Looks like I met your deadline :) 2018-01-30T17:08:48Z Karl_Dscc joined #lisp 2018-01-30T17:10:20Z nowhereman_ joined #lisp 2018-01-30T17:13:40Z nowhere_man quit (Ping timeout: 240 seconds) 2018-01-30T17:16:53Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-30T17:18:06Z Xach: we'll just see about that!!! 2018-01-30T17:19:44Z mfiano: Xach: Ok, please let me know if you get build failures for gamebox-math from this morning's pull. 2018-01-30T17:19:54Z raynold: Ahh it's a wonderful day 2018-01-30T17:23:14Z milanj quit (Quit: This computer has gone to sleep) 2018-01-30T17:23:38Z milanj joined #lisp 2018-01-30T17:25:38Z pillton quit (Read error: Connection reset by peer) 2018-01-30T17:25:48Z schweers quit (Ping timeout: 240 seconds) 2018-01-30T17:27:15Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T17:28:28Z karswell_ quit (Read error: Connection reset by peer) 2018-01-30T17:29:18Z smurfrobot quit (Remote host closed the connection) 2018-01-30T17:29:29Z karswell_ joined #lisp 2018-01-30T17:30:05Z deng_cn joined #lisp 2018-01-30T17:37:24Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T17:37:48Z Arcaelyx joined #lisp 2018-01-30T17:38:07Z saki quit (Ping timeout: 256 seconds) 2018-01-30T17:38:07Z red-dot joined #lisp 2018-01-30T17:39:10Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-30T17:40:28Z attila_lendvai joined #lisp 2018-01-30T17:40:40Z Karl_Dscc quit (Remote host closed the connection) 2018-01-30T17:44:14Z Karl_Dscc joined #lisp 2018-01-30T17:44:15Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-30T17:46:26Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-30T17:53:36Z lemoinem joined #lisp 2018-01-30T17:53:45Z ``Erik_ joined #lisp 2018-01-30T17:53:57Z ``Erik quit (Ping timeout: 240 seconds) 2018-01-30T17:56:57Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T17:57:04Z hhdave quit (Quit: hhdave) 2018-01-30T17:57:35Z dieggsy quit (Ping timeout: 276 seconds) 2018-01-30T18:06:50Z smasta joined #lisp 2018-01-30T18:07:00Z paule32: pjb: https://pastebin.com/Rj9qrtrp 2018-01-30T18:07:30Z paule32: pjb: in which file, do you refer to TOPOLOGICAL-SORT ? 2018-01-30T18:07:49Z eivarv joined #lisp 2018-01-30T18:09:02Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-30T18:10:10Z fikka quit (Ping timeout: 256 seconds) 2018-01-30T18:10:18Z randomstrangerb joined #lisp 2018-01-30T18:12:27Z m00natic quit (Remote host closed the connection) 2018-01-30T18:16:07Z saki joined #lisp 2018-01-30T18:16:14Z fikka joined #lisp 2018-01-30T18:17:48Z deng_cn joined #lisp 2018-01-30T18:18:16Z kodnin joined #lisp 2018-01-30T18:21:51Z kodnin quit (Client Quit) 2018-01-30T18:24:52Z kodnin joined #lisp 2018-01-30T18:24:57Z shka joined #lisp 2018-01-30T18:25:18Z scymtym__ quit (Ping timeout: 240 seconds) 2018-01-30T18:25:21Z paule32: ok 2018-01-30T18:25:32Z paule32: pjb: i get done working the code 2018-01-30T18:25:49Z paule32: pjb: i remove TOPOLOGICAL-sort 2018-01-30T18:26:01Z paule32: pjb: and, get this: https://pastebin.com/uZuDG2gc 2018-01-30T18:26:03Z eivarv quit (Read error: Connection reset by peer) 2018-01-30T18:26:54Z paule32: pjb: so, i don't know, if it a homework to get the right values/content on the output, you marked with !!! expected 1 2018-01-30T18:26:56Z paule32: ? 2018-01-30T18:27:04Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T18:27:40Z eivarv joined #lisp 2018-01-30T18:28:10Z python476 quit (Ping timeout: 240 seconds) 2018-01-30T18:29:05Z Chream_2 joined #lisp 2018-01-30T18:29:16Z varjag joined #lisp 2018-01-30T18:29:22Z Chream_ quit (Ping timeout: 265 seconds) 2018-01-30T18:29:36Z hiroaki joined #lisp 2018-01-30T18:29:38Z deng_cn joined #lisp 2018-01-30T18:29:46Z dnl_ joined #lisp 2018-01-30T18:31:00Z kodnin quit (Quit: Mutter: www.mutterirc.com) 2018-01-30T18:34:06Z dnl_ quit (Client Quit) 2018-01-30T18:34:13Z kodnin joined #lisp 2018-01-30T18:36:26Z marusich joined #lisp 2018-01-30T18:36:42Z rumbler31: paule32: Vielleicht sollen Sie etwas aenders als clisp benuetzen. Z.B ccl or sbcl 2018-01-30T18:37:08Z kodnin quit (Client Quit) 2018-01-30T18:37:37Z paule32: hi rumbler31 2018-01-30T18:37:45Z paule32: has this a reason? 2018-01-30T18:37:48Z Xach: Auf englisch, svp 2018-01-30T18:38:11Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T18:38:42Z eivarv quit (Quit: Sleep) 2018-01-30T18:38:48Z rumbler31: one good reason, is that clisp is old (2010-07-07), and trying with ccl or sbcl is easy, and you can get more help with those 2018-01-30T18:39:18Z red-dot joined #lisp 2018-01-30T18:39:38Z paule32: and next year, sbcl is old ? :-) 2018-01-30T18:40:41Z rumbler31: well, right now, new versions are released frequently. Also, do you still use windows xp? or have you upgraded to windows 10, or 7? 2018-01-30T18:41:00Z paule32: never :-) 2018-01-30T18:41:05Z paule32: i use linux 2018-01-30T18:41:08Z rumbler31: which version? 2018-01-30T18:41:29Z paule32: 3.19 kernel - linux mint 17 or 18 2018-01-30T18:41:46Z pythosnek joined #lisp 2018-01-30T18:42:06Z eivarv joined #lisp 2018-01-30T18:42:18Z rumbler31: so you like using a new version of linux, but you won't try a new version of lisp? :-) 2018-01-30T18:42:30Z pjb: paule32: type (apropos "TOPOLOGICAL-SORT") this should show you what package it comes from. 2018-01-30T18:43:24Z pjb: paule32: obviously you cannot remove it, it's an important part of the algorithm. Instead, you can try to design a different algorithm to evaluate a circuit. 2018-01-30T18:44:00Z paule32: pjb: i trust you :-) 2018-01-30T18:46:52Z pjb: paule32: https://codeshare.io/5OOWEP 2018-01-30T18:47:10Z pjb: you could put this in your rc file, (in-package :cl-user) if you want. 2018-01-30T18:47:41Z pjb: This imports all the usual packages from the com.informatimago, so my functions are available. 2018-01-30T18:48:21Z pjb: (actually, I do that in a com.informatimago.pjb package, and I just use it in cl-user and others. 2018-01-30T18:50:09Z puchacz joined #lisp 2018-01-30T18:53:21Z LiamH joined #lisp 2018-01-30T18:54:15Z shka quit (Quit: Konversation terminated!) 2018-01-30T18:56:57Z paule32: pjb: https://pastebin.com/qYKP8YBW 2018-01-30T18:57:30Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T18:57:52Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-30T18:59:44Z smurfrobot joined #lisp 2018-01-30T19:00:10Z deng_cn joined #lisp 2018-01-30T19:00:51Z nox2 quit (Ping timeout: 256 seconds) 2018-01-30T19:01:02Z pjb: Funny, I have it: asdf/system:system-depends-on 2018-01-30T19:01:47Z pjb: (values asdf/upgrade:*asdf-version* ) #| --> "3.1.7.37" |# 2018-01-30T19:01:52Z pjb: what's your asdf version? 2018-01-30T19:03:30Z nox2 joined #lisp 2018-01-30T19:05:05Z shka joined #lisp 2018-01-30T19:06:47Z pjb: paule32: in the mean time you can just remove com.informatimago.tools.manifest from the systems to load. 2018-01-30T19:07:05Z pjb: paule32: but it would be better if you updated your asdf. 2018-01-30T19:07:36Z drewc_ joined #lisp 2018-01-30T19:10:18Z drewc quit (Ping timeout: 240 seconds) 2018-01-30T19:15:28Z deng_cn quit (Remote host closed the connection) 2018-01-30T19:15:52Z paule32: i download asdf 3.3.1 2018-01-30T19:16:01Z paule32: but i get no output 2018-01-30T19:16:12Z paule32: clisp ./build/asdf.lisp 2018-01-30T19:20:39Z EvW joined #lisp 2018-01-30T19:21:12Z Murii quit (Read error: Connection reset by peer) 2018-01-30T19:21:28Z Murii joined #lisp 2018-01-30T19:21:42Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-30T19:22:28Z eivarv quit (Quit: Sleep) 2018-01-30T19:23:12Z smasta quit (Ping timeout: 248 seconds) 2018-01-30T19:24:34Z smasta joined #lisp 2018-01-30T19:25:26Z pjb: paule32: here is how I load asdf3, when not present: https://codeshare.io/5OOWEP 2018-01-30T19:26:04Z pjb: paule32: why would you expect output from loading a lisp source file, and then QUITTING!? 2018-01-30T19:27:03Z paule32: i mean the libs ... 2018-01-30T19:28:15Z eivarv joined #lisp 2018-01-30T19:30:05Z mgsk: Is it possible to do something like (defun something (&key a b &rest c) ...) where in (something :a 1 :b 2 :c 1 2 3) they keyword :c "collects" all remaining forms, i.e. C = (1 2 3)? 2018-01-30T19:30:28Z Chream_2 quit (Read error: Connection reset by peer) 2018-01-30T19:31:01Z Xach: mgsk: yes 2018-01-30T19:31:13Z Xach: mgsk: you swap the &rest and &key positions and bob is your uncle 2018-01-30T19:31:19Z mgsk: hot damn 2018-01-30T19:31:20Z Xach: oh wait, sorry. 2018-01-30T19:31:25Z Xach: I was too hasty. 2018-01-30T19:31:30Z mgsk: not hot damn 2018-01-30T19:31:35Z Chream_ joined #lisp 2018-01-30T19:31:49Z mgsk: I essentially want to name the &rest 2018-01-30T19:31:50Z Xach: What actually happens is that the &rest var collects subsequent keyword/value pairs. but they have to be matched. 2018-01-30T19:32:02Z Xach: which is a very handy thing but not what you describe 2018-01-30T19:32:17Z LocaMocha quit (Ping timeout: 248 seconds) 2018-01-30T19:32:50Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T19:32:57Z Xach: (defun make-a-thing (class-name &rest args &key &allow-other-keys) (apply 'make-instance class-name args)) for a dumb example 2018-01-30T19:33:21Z Kyo91 quit (Ping timeout: 248 seconds) 2018-01-30T19:33:53Z deng_cn joined #lisp 2018-01-30T19:35:06Z Chream_ joined #lisp 2018-01-30T19:35:27Z mgsk: I was just thinking about how use-package (in emacs) allows for arbitrarily many forms to be given to a keyword (until the next keyword). But rather than complicate things, I'll re-think my design 2018-01-30T19:35:52Z phoe: mgsk: just use :foo '(bar baz quux) 2018-01-30T19:35:56Z pythosnek quit (Read error: Connection reset by peer) 2018-01-30T19:36:02Z phoe: this allows you to pass arbitrarily many forms to a keyword, too 2018-01-30T19:36:35Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-30T19:36:51Z mgsk: sure 2018-01-30T19:38:17Z paule32: pjb: https://pastebin.com/xnDKLjyF 2018-01-30T19:39:08Z smasta quit (Ping timeout: 256 seconds) 2018-01-30T19:39:24Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T19:40:48Z red-dot joined #lisp 2018-01-30T19:40:49Z fikka quit (Ping timeout: 248 seconds) 2018-01-30T19:41:12Z puchacz quit (Quit: Konversation terminated!) 2018-01-30T19:41:53Z knicklux joined #lisp 2018-01-30T19:43:02Z kodnin joined #lisp 2018-01-30T19:44:16Z kodnin quit (Client Quit) 2018-01-30T19:44:44Z fikka joined #lisp 2018-01-30T19:46:36Z jmercouris joined #lisp 2018-01-30T19:47:28Z pjb: paule32: why does it quit in the end? You're doing it wrong! Never quit from a lisp image! 2018-01-30T19:47:55Z Chream_ quit (Read error: Connection reset by peer) 2018-01-30T19:48:12Z pjb: phoe: nope. It allows to pass an even number of arguments. 2018-01-30T19:48:34Z pjb: &key implies the &rest arguments must be an EVEN number. 2018-01-30T19:49:02Z Chream_ joined #lisp 2018-01-30T19:49:14Z pjb: mgsk: what you need to do, is to use only &rest arguments, and to parse them yourself. 2018-01-30T19:49:21Z hiroaki joined #lisp 2018-01-30T19:52:36Z pjb: mgsk: for example, something like (let ((arguments '(:a 1 :b 2 3 4 5 6))) (destructuring-bind (&key a b c) (loop with expected = '(:a :b) while (and arguments (cdr arguments) (member (first arguments) expected)) collect (pop arguments) into keys collect (pop arguments) into keys finally (return (list* :c arguments keys))) (list :a a :b b :c c))) #| --> (:a 1 :b 2 :c (3 4 5 6)) |# 2018-01-30T19:52:58Z fikka quit (Ping timeout: 252 seconds) 2018-01-30T19:53:26Z python476 joined #lisp 2018-01-30T19:55:27Z BitPuffin quit (Remote host closed the connection) 2018-01-30T19:55:45Z Xal quit (Ping timeout: 248 seconds) 2018-01-30T19:55:46Z pjb: mgsk: so (defun foo (&rest arguments) (destructuring-bind (&key a b c) (loop with expected = '(:a :b) while (and arguments (cdr arguments) (member (first arguments) expected)) collect (pop arguments) into keys collect (pop arguments) into keys finally (return (list* :c arguments keys))) (list :a a :b b :c c))) 2018-01-30T20:00:02Z Xal joined #lisp 2018-01-30T20:00:47Z damke_ joined #lisp 2018-01-30T20:01:48Z visof quit (Ping timeout: 240 seconds) 2018-01-30T20:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-30T20:05:23Z smurfrobot quit (Remote host closed the connection) 2018-01-30T20:08:18Z saki quit (Ping timeout: 240 seconds) 2018-01-30T20:09:10Z Chream_ quit (Ping timeout: 256 seconds) 2018-01-30T20:11:08Z fikka joined #lisp 2018-01-30T20:11:51Z puchacz joined #lisp 2018-01-30T20:11:58Z mgsk: pjb: interesting. Thanks 2018-01-30T20:13:54Z EvW quit (Remote host closed the connection) 2018-01-30T20:14:14Z EvW joined #lisp 2018-01-30T20:15:13Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T20:17:50Z deng_cn joined #lisp 2018-01-30T20:21:18Z shka quit (Ping timeout: 240 seconds) 2018-01-30T20:21:45Z drewc_ is now known as drewc 2018-01-30T20:24:29Z Cymew joined #lisp 2018-01-30T20:24:36Z Amplituhedron joined #lisp 2018-01-30T20:27:05Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-30T20:28:23Z jstypo joined #lisp 2018-01-30T20:29:32Z Cymew quit (Ping timeout: 268 seconds) 2018-01-30T20:30:27Z puchacz quit (Quit: Konversation terminated!) 2018-01-30T20:31:54Z Murii quit (Quit: WeeChat 1.4) 2018-01-30T20:32:34Z eivarv quit (Quit: Sleep) 2018-01-30T20:33:22Z Rawriful joined #lisp 2018-01-30T20:33:56Z heurist` joined #lisp 2018-01-30T20:34:00Z heurist quit (Ping timeout: 260 seconds) 2018-01-30T20:34:24Z puchacz joined #lisp 2018-01-30T20:35:33Z eivarv joined #lisp 2018-01-30T20:39:30Z scymtym joined #lisp 2018-01-30T20:39:49Z pjb: paule32: aren't you using slime? 2018-01-30T20:40:53Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T20:41:38Z paule32: pjb: not, yet, i try to get working your stuff: https://pastebin.com/c98WxT0A 2018-01-30T20:41:59Z red-dot joined #lisp 2018-01-30T20:42:48Z fikka quit (Ping timeout: 240 seconds) 2018-01-30T20:42:53Z phoe: paule32: learn slime. seriously. 2018-01-30T20:43:43Z paule32: phoe: i have so many idea's, i come not over ;-) 2018-01-30T20:44:31Z phoe: paule32: using Lisp without slime is a terrible experience. you might as well be using a non-interactive language like C or Java. 2018-01-30T20:45:25Z paule32: java is mess, a big big ... slow thing 2018-01-30T20:45:51Z paule32: you have the idea of C, but ... big libs .. 2018-01-30T20:45:54Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T20:46:02Z phoe: doesn't matter what Java is. coding in Lisp without any kind of interactivity layer for it prevents you from taking advantage of one of its most important features. 2018-01-30T20:46:42Z paule32: visual studio has code folding and such thing's, too 2018-01-30T20:46:46Z paule32: but they fat 2018-01-30T20:47:51Z paule32: i look over ther system: clisp produce ascii bytecode, sbcl binary bytecode 2018-01-30T20:48:29Z deng_cn joined #lisp 2018-01-30T20:48:39Z kodnin joined #lisp 2018-01-30T20:48:57Z nowhere_man joined #lisp 2018-01-30T20:49:58Z pjb: paule32: in your paste, we don't see what you did. 2018-01-30T20:50:06Z SaganMan quit (Quit: leaving) 2018-01-30T20:50:26Z pjb: paule32: also, read: https://cliki.net/TutorialClispDebugger 2018-01-30T20:50:39Z fikka joined #lisp 2018-01-30T20:50:41Z nowhereman_ quit (Ping timeout: 248 seconds) 2018-01-30T20:51:21Z kodnin quit (Client Quit) 2018-01-30T20:51:34Z paule32: pjb: $ clisp elo.lisp # in elo.lisp: (load "./init.lisp") ; where your code from paste 2018-01-30T20:51:54Z asarch quit (Quit: Leaving) 2018-01-30T20:51:59Z pjb: Sorry, but there's no point of doing that. 2018-01-30T20:52:09Z pjb: paule32: type clisp RET then (load "elo.lisp"). 2018-01-30T20:53:50Z kodnin joined #lisp 2018-01-30T20:54:46Z paule32: ok, i did "try-recompiling 2018-01-30T20:54:52Z paule32: few times 2018-01-30T20:55:01Z paule32: and the error is away 2018-01-30T20:55:03Z paule32: but 2018-01-30T20:55:29Z paule32: some export symbols first import 2018-01-30T20:55:41Z paule32: messages occur 2018-01-30T20:57:05Z Karl_Dscc quit (Remote host closed the connection) 2018-01-30T20:57:45Z kodnin quit (Client Quit) 2018-01-30T20:57:56Z pjb: paule32: well, perhaps you don't have a clean cl-user package. Of course, I've already explained years ago, that one should clean his cl-user package in the rc files… 2018-01-30T20:58:09Z pjb: paule32: so, let's add: the com.informatimago.pjb package. 2018-01-30T20:59:53Z pjb: paule32: take this https://codeshare.io/5OOWEP and put in a file ~/rc/common.lisp 2018-01-30T21:00:22Z pjb: paule32: then add (load (merge-pathnames (make-pathname :directory '(:relative "RC") :name "COMMON" :type "LISP" :case :common) (user-homedir-pathname) nil)) in your ~/.clisprc.lisp file. 2018-01-30T21:00:34Z aeth: Would it be possible to write something that automatically recompiles all users of a macro, struct, inline function, etc., when it is recompiled? Basically, all of the stuff that can go stale. 2018-01-30T21:00:50Z pjb: paule32: then: (in-package "COMMON-LISP-USER") (use-package "COM.INFORMATIMAGO.PJB") 2018-01-30T21:00:50Z pjb: 2018-01-30T21:00:51Z phoe: aeth: yes. 2018-01-30T21:01:03Z aeth: (structs doing this, of course, is implementation-specific, but it would have to be done to be portable, and to support SBCL) 2018-01-30T21:01:21Z phoe: Write a custom DEFUN/DEFMETHOD/DEFeverything that codewalks the forms and finds all uses for the macro in question. 2018-01-30T21:01:44Z pjb: aeth: have a lookt at: Image Based Development http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html 2018-01-30T21:01:57Z phoe: Then write a custom DEFMACRO that, whenever a macro is recompiled, finds all users of that macro stored via the above forms, and recompiles them. 2018-01-30T21:02:12Z Bike: so easy 2018-01-30T21:02:15Z aeth: phoe: I was hoping that there was an easier way. SLIME and/or ASDF probably already know certain things. 2018-01-30T21:02:33Z pjb: aeth: this way you can save the source of each form; you may add a plist to macros, structures, inline functions, etc, to list all the things that need to be recompiled. 2018-01-30T21:02:34Z Bike: they only know what the implementation tells them, and t hat varies 2018-01-30T21:02:51Z kodnin joined #lisp 2018-01-30T21:02:53Z Bike: i don't think they implementations actually usually track macro usage, just function usage, which they need to know for linking purposes 2018-01-30T21:03:16Z Karl_Dscc joined #lisp 2018-01-30T21:05:18Z randomstrangerb quit (Ping timeout: 268 seconds) 2018-01-30T21:05:37Z eivarv quit (Quit: Sleep) 2018-01-30T21:06:02Z Tobbi joined #lisp 2018-01-30T21:06:14Z smurfrobot joined #lisp 2018-01-30T21:06:19Z aeth: What has issues with recompiling, btw? I'm aware of inline functions, macros, and sometimes (afaik it's implementation-specific) structs. 2018-01-30T21:06:34Z randomstrangerb joined #lisp 2018-01-30T21:06:47Z kodnin quit (Client Quit) 2018-01-30T21:06:53Z eivarv joined #lisp 2018-01-30T21:07:30Z Bike: type definitions 2018-01-30T21:07:53Z aeth: I think package definitions also have issues, but only if you remove things (rather than add things) 2018-01-30T21:08:07Z aeth: But you can remove those manually by going into the package and uninterning manually iirc 2018-01-30T21:08:11Z Bike: should be irrelevant past read time. 2018-01-30T21:08:38Z vlatkoB quit (Remote host closed the connection) 2018-01-30T21:09:05Z Bike: depending on how you construe the workings of load-time-value in relation to compilation, maybe you'd need to recompile for lots of random reasons 2018-01-30T21:09:21Z Bike: various declarations 2018-01-30T21:09:33Z Bike: strictly speaking, some properties of classes, though i don't know if any implementation actually takes advantage 2018-01-30T21:09:37Z aeth: Oh, actually, I never have to do the whole in-package thing for uninterning ever again, in implementations that support foo::(unintern 'whatever) 2018-01-30T21:09:48Z aeth: That might be the only non-ugly usage of that syntax extension 2018-01-30T21:10:00Z aeth: Or would that not work as expected? 2018-01-30T21:10:06Z kodnin joined #lisp 2018-01-30T21:10:07Z Bike: what in package thing 2018-01-30T21:10:22Z aeth: oh wait, it defaults to the current package, I never had to do that 2018-01-30T21:10:57Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-30T21:12:51Z aeth: ah, I see why I never got it to work 2018-01-30T21:13:31Z aeth: the syntax is: (unintern 'foo::some-symbol-to-remove :foo) because I need to tell it to remove the 'some-symbol-to-remove that's in foo 2018-01-30T21:14:07Z kodnin quit (Client Quit) 2018-01-30T21:14:53Z Xach: a symbol can be interned in many packages 2018-01-30T21:14:56Z Xach: so many 2018-01-30T21:16:19Z aeth: Anyway, my actual point was: if I recompile a function without recompiling the defpackage that imports the new symbol (oops), I now need to unintern that symbol before recompiling the defpackage or else there's a conflict that the debugger wants me to resolve. 2018-01-30T21:16:58Z aeth: A conflict that only exists in the local image, not in any future uses. 2018-01-30T21:17:10Z Bike: how could compiling a function cause a symbol conflict 2018-01-30T21:17:14Z Xach: aeth: I'd like to understand. What bike said. 2018-01-30T21:17:33Z Bike: unless by "recompiling" you mean "rereading and then recompiling" 2018-01-30T21:17:42Z Xach: I think i get it. 2018-01-30T21:17:42Z Bike: and uh... even then i'm not sure i get it 2018-01-30T21:17:50Z aeth: Bike: Well, whatever Slime's C-c C-c is 2018-01-30T21:17:59Z Bike: that rereads, yes 2018-01-30T21:18:12Z Xach: You get "undefined function frob" and you change defpackage to :use the package that provides frob and you get a conflict? 2018-01-30T21:18:23Z aeth: yes 2018-01-30T21:18:25Z Xach: That happens to me - when it does, I use shadowing-import-from to clobber the existing one. 2018-01-30T21:19:32Z aeth: I have always handled that by uninterning and then re-"C-c C-c"ing the defpackage. 2018-01-30T21:20:03Z Xach: The restart in slime helps too. 2018-01-30T21:22:26Z paule32: pjb: seems to work, atm 2018-01-30T21:23:05Z eivarv quit (Quit: Sleep) 2018-01-30T21:23:08Z paule32: pjb: but, what is the difference between $ clisp and $ clisp ./elo.lisp ? 2018-01-30T21:23:37Z pjb: paule32: great. so now you can load your code; it would be nice to define your own package for it. Then you can use the com.informatimago.common-lisp.cesarum.utility package. 2018-01-30T21:23:59Z pjb: paule32: clisp foo.lisp will load the file and then quit. 2018-01-30T21:24:10Z pjb: paule32: clisp launches the REPL and remains in the REPL. 2018-01-30T21:24:25Z pjb: paule32: so after you've loaded the file, you can go on programming, testing, and debugging. 2018-01-30T21:24:32Z pjb: paule32: have fun in a word. 2018-01-30T21:24:57Z mishoo quit (Ping timeout: 264 seconds) 2018-01-30T21:25:08Z pjb: paule32: I don't know how many years ago you've started with lisp: you've made clearly no progress since that day. This is because you don't use the REPL. 2018-01-30T21:25:22Z paule32: pjb: hehe :-) but it is a little bit boring always to load clisp and type (load foo.lisp) 2018-01-30T21:25:31Z pjb: paule32: so start using the REPL, at least in the terminal (with clisp it's liveable since there's readline). Better with slime. 2018-01-30T21:25:54Z pjb: paule32: you don't always load clisp: you load it once when you boot your computer and that's it. 2018-01-30T21:26:04Z pjb: paule32: you NEVER quit from a lisp image! 2018-01-30T21:26:12Z pjb: (or an emacs image, it's the same thing). 2018-01-30T21:26:18Z smasta joined #lisp 2018-01-30T21:26:37Z pjb: paule32: check in common.lisp define-command ll 2018-01-30T21:26:39Z paule32: haha, welcome to the club 2018-01-30T21:26:46Z aeth: paule32: pjb is 100% correct. The proper way to learn CL is to think up small test cases and see how they evaluate in the REPL, preferably the SLIME (or similar) REPL so you can also interact with existing source files. 2018-01-30T21:26:57Z paule32: pjb: that is clever 2018-01-30T21:27:06Z pjb: paule32: you don't type (load "foo.lisp"). In a project, you create a loader.lisp file that will load it, and you type: ll RET at the REPL, with my command. 2018-01-30T21:27:54Z paule32: pjb: yes, that clever 2018-01-30T21:28:03Z paule32: respect! 2018-01-30T21:28:41Z aeth: How do you find out what (1+ 1) does without running it in a REPL? 2018-01-30T21:28:41Z pjb: and since you always have clisp running, you don't need a shell anymore. You can close your other terminal windows, and use clash to run shell commands: https://clisp.sourceforge.io/clash.html 2018-01-30T21:29:02Z pjb: (or use my interactive lookalike commands. 2018-01-30T21:29:04Z mlf joined #lisp 2018-01-30T21:29:19Z paule32: aeth: 2? 2018-01-30T21:29:21Z paule32: t 2018-01-30T21:29:41Z aeth: paule32: Okay, now what does (1- 1) do? 2018-01-30T21:29:46Z fikka quit (Ping timeout: 252 seconds) 2018-01-30T21:29:49Z paule32: f 2018-01-30T21:30:00Z pjb: with clash and readline, you type Meta-c unix-command RET in the REPL to run unix-command. 2018-01-30T21:31:06Z paule32: pjb: the problem: i can't use cursor-up: i expect the last typed command line, but [[A comes 2018-01-30T21:31:35Z pjb: What terminal do you use? 2018-01-30T21:31:55Z smasta quit (Quit: WeeChat 2.0.1) 2018-01-30T21:32:24Z aeth: If you want to launch programs from the REPL, you can use uiop:launch-program (asynchronous) or uiop:run-program (synchronous) 2018-01-30T21:32:35Z pjb: It's funny how the simpliest commands lead to the longuest answer times… 2018-01-30T21:32:41Z aeth: (Note: launch-program is a newer feature, so you probably have to Quickload UIOP first.) 2018-01-30T21:32:45Z jmercouris quit (Ping timeout: 264 seconds) 2018-01-30T21:33:12Z paule32: pjb: xterm like 2018-01-30T21:33:31Z pjb: Then the arrows should work. Perhaps you didn't set the TERM environment variable? 2018-01-30T21:34:06Z paule32: i wonder, why the two marker's are away 2018-01-30T21:34:33Z paule32: markers, that you have set in source "!!! expected 1" 2018-01-30T21:35:05Z z3t0 joined #lisp 2018-01-30T21:35:27Z pjb: What does (ext:getenv "TERM") return? 2018-01-30T21:35:37Z pjb: paule32: to debug it you can trace update-outputs 2018-01-30T21:35:39Z kami joined #lisp 2018-01-30T21:35:49Z paule32: amd i wonder, why the compiled system run so fast - in fact, the fasl's are ascii text file's 2018-01-30T21:36:01Z pjb: paule32: also, see the call to print-state and uncomment it (comment out the following form instead). 2018-01-30T21:36:07Z kami: Hello #lisp 2018-01-30T21:36:18Z pjb: paule32: yes, but they load into binary lisp data structures. 2018-01-30T21:37:34Z groovy2shoes quit (Ping timeout: 256 seconds) 2018-01-30T21:37:36Z paule32: so, when i have the source code, i could write binary code that read-in ? 2018-01-30T21:37:41Z paule32: (ext:getenv "TERM") 2018-01-30T21:37:45Z paule32: "xterm" 2018-01-30T21:37:53Z pjb: Good. Then up arrow should work correctly. 2018-01-30T21:38:01Z pjb: Unless you don't have readline in your clisp. 2018-01-30T21:40:22Z visof joined #lisp 2018-01-30T21:41:00Z paule32: now, we can run into slime 2018-01-30T21:41:11Z pjb: paule32: clisp --version|grep -e '^libreadline' # should indicate the version of the readline library that is linked. 2018-01-30T21:41:20Z pjb: paule32: if not, you need to recompile clisp with it. 2018-01-30T21:41:24Z pjb: paule32: or indeed, use sline. 2018-01-30T21:41:34Z pjb: with slime, it's emacs history that is used instead of readline. 2018-01-30T21:42:06Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T21:42:51Z pjb: paule32: so to obtain the binary, you need to compile the source file. Unfortunately, with clisp, the debugger is way less effcient on compiled code than on interpreted code. So if you want to debug on compiled code, you should rather use ccl (or sbcl). 2018-01-30T21:43:09Z pjb: paule32: in any case, the advantage of using slime, is that you have the same debugger for all the supported implementations! sldb. 2018-01-30T21:43:23Z red-dot joined #lisp 2018-01-30T21:43:49Z paule32: no output 2018-01-30T21:43:52Z paule32: GNU CLISP 2.49 (2010-07-07) (built 3712566422) (memory 3712566523) 2018-01-30T21:43:52Z paule32: Software: GNU-C 6.3.0 2018-01-30T21:44:08Z Jesin joined #lisp 2018-01-30T21:44:10Z pjb: then you need to recompile clisp with readline. 2018-01-30T21:44:20Z pjb: Or use slime. 2018-01-30T21:44:28Z pjb: With slime, readline is not used. 2018-01-30T21:44:39Z paule32: what is better? 2018-01-30T21:44:49Z pjb: both. 2018-01-30T21:44:51Z pjb: then slime. 2018-01-30T21:45:05Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-30T21:45:05Z paule32: i need cffi, later 2018-01-30T21:45:09Z z3t0 quit (Remote host closed the connection) 2018-01-30T21:45:37Z z3t0 joined #lisp 2018-01-30T21:46:21Z randomstrangerb joined #lisp 2018-01-30T21:46:48Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T21:46:59Z paule32: i have source codes 2018-01-30T21:47:00Z paule32: 2.49 2018-01-30T21:49:18Z warweasle quit (Quit: away!) 2018-01-30T21:49:22Z deng_cn joined #lisp 2018-01-30T21:49:48Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-30T21:52:37Z JordiGH joined #lisp 2018-01-30T21:52:51Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-30T21:55:52Z attila_lendvai joined #lisp 2018-01-30T21:57:40Z z3t0 joined #lisp 2018-01-30T21:58:11Z fikka joined #lisp 2018-01-30T21:58:48Z ebrasca joined #lisp 2018-01-30T21:58:51Z ebrasca: Hi 2018-01-30T21:59:18Z oleo quit (Ping timeout: 240 seconds) 2018-01-30T22:01:30Z ebrasca: beach: Are you here? 2018-01-30T22:01:34Z JordiGH left #lisp 2018-01-30T22:04:33Z visof quit (Ping timeout: 264 seconds) 2018-01-30T22:05:25Z gilez quit (Ping timeout: 265 seconds) 2018-01-30T22:06:30Z attila_lendvai quit (Quit: Leaving.) 2018-01-30T22:07:44Z jasom: ebrasca: it's 11PM where beach is right now, so he may be in bed 2018-01-30T22:08:49Z knicklux quit (Remote host closed the connection) 2018-01-30T22:09:30Z smurfrobot joined #lisp 2018-01-30T22:10:08Z ebrasca: jasom: Is beach in europe? 2018-01-30T22:10:17Z pjb: In France! 2018-01-30T22:10:28Z ebrasca: I am in Poland. 2018-01-30T22:10:33Z pjb: On the beaches of Arcachon, near Bordeaux. 2018-01-30T22:10:42Z ebrasca: Here is 23:10 . 2018-01-30T22:10:53Z pjb: Same here. We're in Europe time zone. 2018-01-30T22:11:29Z jasom: 14:11 where I am. I'm near different beaches :) 2018-01-30T22:12:04Z ebrasca: If someone like to comment my new abstraction for fat32 here is link: 2018-01-30T22:12:43Z ebrasca: http://termbin.com/yd44 2018-01-30T22:14:25Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-30T22:14:43Z pjb: ebrasca: a good test to see if it's good, is to ask a student to make a modification or improvement to it, and see how easy he can do it. 2018-01-30T22:15:08Z ebrasca: ... 2018-01-30T22:16:01Z ebrasca: pjb: Where I can find 1 studend who likes to make 1 improvement to my code? 2018-01-30T22:16:33Z jasom: ebrasca: step 1) become a professor 2018-01-30T22:16:54Z ebrasca: jasom: lol 2018-01-30T22:17:14Z Bike: step 1: fraud 2018-01-30T22:17:18Z deng_cn quit (Read error: Connection reset by peer) 2018-01-30T22:17:38Z ebrasca: Bike: Why fraud? 2018-01-30T22:17:39Z shifty joined #lisp 2018-01-30T22:17:44Z Bike: easier than tenure 2018-01-30T22:17:47Z aeth: Start a new Blockchain-based university and become the anonymous leader of that university. Qualifications are so 20th century. 2018-01-30T22:19:28Z ebrasca: I think pjb likes to make 1 contribution to my code. 2018-01-30T22:19:35Z puchacz quit (Quit: Konversation terminated!) 2018-01-30T22:19:44Z deng_cn joined #lisp 2018-01-30T22:22:48Z aeth: pjb made a contribution to one of my projects once. trivial-left-pad, one of my first of April projects. 2018-01-30T22:24:08Z Bike: well, i don't know fat32, the code looks okay to me 2018-01-30T22:24:24Z dented42 joined #lisp 2018-01-30T22:24:31Z rumbler31 quit (Ping timeout: 248 seconds) 2018-01-30T22:24:40Z blackwolf quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-30T22:24:48Z kami quit (Ping timeout: 240 seconds) 2018-01-30T22:24:53Z Bike: though the when t on open-using-host is weird, i'm sure you know that 2018-01-30T22:32:32Z minion quit (Disconnected by services) 2018-01-30T22:32:33Z specbot quit (Disconnected by services) 2018-01-30T22:32:41Z specbot joined #lisp 2018-01-30T22:33:09Z aeth: ebrasca: You did a good job refactoring the loops 2018-01-30T22:33:15Z aeth: I don't even recognize them 2018-01-30T22:33:18Z minion joined #lisp 2018-01-30T22:34:31Z minion quit (Disconnected by services) 2018-01-30T22:34:33Z minion joined #lisp 2018-01-30T22:34:37Z minion quit (Disconnected by services) 2018-01-30T22:36:37Z ebrasca: aeth: Thanks you. 2018-01-30T22:37:01Z z3t0 quit (Remote host closed the connection) 2018-01-30T22:37:53Z nox2 quit (Ping timeout: 248 seconds) 2018-01-30T22:38:46Z ebrasca: aeth: All loops magically disappear with do-files. 2018-01-30T22:41:01Z z3t0 joined #lisp 2018-01-30T22:43:30Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-30T22:43:35Z hvxgr quit (Quit: leaving) 2018-01-30T22:44:14Z red-dot joined #lisp 2018-01-30T22:44:47Z minion joined #lisp 2018-01-30T22:47:56Z specbot quit (Disconnected by services) 2018-01-30T22:47:58Z specbot joined #lisp 2018-01-30T22:48:20Z z3t0 quit (Remote host closed the connection) 2018-01-30T22:48:46Z z3t0 joined #lisp 2018-01-30T22:48:47Z gilez joined #lisp 2018-01-30T22:49:25Z minion quit (Disconnected by services) 2018-01-30T22:50:11Z minion joined #lisp 2018-01-30T22:50:28Z specbot quit (Disconnected by services) 2018-01-30T22:51:40Z minion quit (Disconnected by services) 2018-01-30T22:51:42Z minion joined #lisp 2018-01-30T22:52:00Z specbot joined #lisp 2018-01-30T22:52:28Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2018-01-30T22:53:00Z z3t0 quit (Ping timeout: 252 seconds) 2018-01-30T22:53:12Z Karl_Dscc quit (Remote host closed the connection) 2018-01-30T22:53:51Z minion quit (Disconnected by services) 2018-01-30T22:55:21Z iqubic joined #lisp 2018-01-30T22:55:40Z minion joined #lisp 2018-01-30T22:56:59Z specbot quit (Read error: No route to host) 2018-01-30T22:57:28Z z3t0 joined #lisp 2018-01-30T22:58:02Z quazimodo joined #lisp 2018-01-30T22:58:54Z specbot joined #lisp 2018-01-30T22:59:39Z minion quit (Disconnected by services) 2018-01-30T23:00:08Z pillton joined #lisp 2018-01-30T23:00:24Z minion joined #lisp 2018-01-30T23:00:49Z pagnol joined #lisp 2018-01-30T23:01:07Z minion quit (Disconnected by services) 2018-01-30T23:01:53Z minion joined #lisp 2018-01-30T23:02:19Z z3t0 quit (Remote host closed the connection) 2018-01-30T23:02:45Z z3t0 joined #lisp 2018-01-30T23:02:45Z minion quit (Disconnected by services) 2018-01-30T23:04:01Z specbot quit (Read error: No route to host) 2018-01-30T23:04:22Z minion joined #lisp 2018-01-30T23:04:28Z damke joined #lisp 2018-01-30T23:05:50Z specbot joined #lisp 2018-01-30T23:05:50Z minion quit (Disconnected by services) 2018-01-30T23:06:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-30T23:06:35Z minion joined #lisp 2018-01-30T23:06:41Z minion quit (Disconnected by services) 2018-01-30T23:06:48Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-30T23:07:18Z sjl quit (Ping timeout: 240 seconds) 2018-01-30T23:07:26Z minion joined #lisp 2018-01-30T23:07:32Z minion quit (Disconnected by services) 2018-01-30T23:07:34Z minion joined #lisp 2018-01-30T23:09:01Z minion quit (Disconnected by services) 2018-01-30T23:09:46Z minion joined #lisp 2018-01-30T23:09:52Z minion quit (Disconnected by services) 2018-01-30T23:09:57Z python476 quit (Ping timeout: 264 seconds) 2018-01-30T23:10:30Z smurfrobot joined #lisp 2018-01-30T23:14:38Z lnostdal quit (Ping timeout: 252 seconds) 2018-01-30T23:14:52Z minion joined #lisp 2018-01-30T23:14:59Z minion quit (Disconnected by services) 2018-01-30T23:15:21Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-30T23:15:54Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-30T23:16:46Z groovy2shoes joined #lisp 2018-01-30T23:18:19Z minion joined #lisp 2018-01-30T23:20:40Z lnostdal joined #lisp 2018-01-30T23:21:06Z asarch joined #lisp 2018-01-30T23:25:24Z asarch: Hey guys, how would you open a big file, parse its content line by line and print the third column of every line that matches with a regexp? 2018-01-30T23:25:52Z asarch: The file is from a query from a PG cluster 2018-01-30T23:26:05Z wigust quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-30T23:27:10Z Tobbi quit (Quit: Leaving) 2018-01-30T23:28:05Z kamog quit (Quit: Leaving.) 2018-01-30T23:29:57Z dented42 joined #lisp 2018-01-30T23:30:03Z paule32: so, next problem: 2018-01-30T23:30:04Z paule32: https://pastebin.com/MHLn6MZ9 2018-01-30T23:34:19Z moei quit (Quit: Leaving...) 2018-01-30T23:36:58Z kamog joined #lisp 2018-01-30T23:39:36Z iqubic` joined #lisp 2018-01-30T23:41:18Z hiroaki quit (Ping timeout: 240 seconds) 2018-01-30T23:41:24Z iqubic quit (Ping timeout: 252 seconds) 2018-01-30T23:41:44Z sword` quit (Remote host closed the connection) 2018-01-30T23:43:36Z asarch: Thank you! 2018-01-30T23:43:42Z asarch: Thank you very much paule32 :-) 2018-01-30T23:44:13Z paule32: what? 2018-01-30T23:44:25Z paule32: you have question? 2018-01-30T23:45:16Z LiamH quit (Quit: Leaving.) 2018-01-30T23:46:51Z turkja joined #lisp 2018-01-30T23:47:29Z asarch: D'oh! 2018-01-30T23:47:35Z asarch: I thought that was for me 2018-01-30T23:47:38Z asarch: Sorry, sorry :-P 2018-01-30T23:48:26Z zazzerino joined #lisp 2018-01-30T23:50:50Z nowhereman_ joined #lisp 2018-01-30T23:52:26Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-30T23:55:47Z warweasle joined #lisp 2018-01-30T23:57:22Z smurfrobot joined #lisp 2018-01-30T23:58:00Z gilez quit (Quit: leaving) 2018-01-30T23:59:02Z Devon joined #lisp 2018-01-31T00:03:37Z Tobbi joined #lisp 2018-01-31T00:06:03Z Kaisyu joined #lisp 2018-01-31T00:10:57Z didi joined #lisp 2018-01-31T00:11:19Z didi: If I want to handle dates before 1900, what should I do? 2018-01-31T00:13:06Z dieggsy joined #lisp 2018-01-31T00:14:54Z Xach: didi: handle in what sense? 2018-01-31T00:15:30Z Devon quit (Ping timeout: 252 seconds) 2018-01-31T00:15:38Z rumbler31 joined #lisp 2018-01-31T00:16:24Z didi: Xach: I want to encode, say (encode-universal-time 0 0 0 1 1 1700). 2018-01-31T00:17:01Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-31T00:17:23Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T00:18:12Z Xach: didi: OS? 2018-01-31T00:18:19Z didi: Xach: Debian. 2018-01-31T00:18:27Z Xach: I mean, old-style 1700 or new-style? 2018-01-31T00:18:59Z didi: Xach: "old-style" as in before the months that never were? 2018-01-31T00:19:14Z Xach: didi: as in https://en.wikipedia.org/wiki/Old_Style_and_New_Style_dates 2018-01-31T00:19:40Z Xach: see the old unix prank: cal 7 1752 2018-01-31T00:20:00Z deng_cn joined #lisp 2018-01-31T00:20:07Z Xach: didi: sorry not to have a useful answer - it would be nice if there was a library for your task. but it seems pretty complicated and i don't know of one. 2018-01-31T00:20:08Z didi: Xach: Let's say 1800. 2018-01-31T00:20:20Z nowhereman_ quit (Ping timeout: 260 seconds) 2018-01-31T00:20:20Z didi: Xach: Oh, OK. 2018-01-31T00:20:40Z dented42 joined #lisp 2018-01-31T00:20:47Z Xach: didi: i am curious, though - what is the project in your case? 2018-01-31T00:21:22Z nowhereman_ joined #lisp 2018-01-31T00:21:40Z didi: Xach: I want to be able to tell the weekday of dates before 1900. 2018-01-31T00:22:12Z smurfrobot quit (Remote host closed the connection) 2018-01-31T00:23:09Z Xach: didi: why? 2018-01-31T00:24:00Z didi: Xach: Nothing in particular. Just thought of it and realized I couldn't go earlier than 1900. 2018-01-31T00:24:10Z Xach: ah 2018-01-31T00:24:24Z Xach: then perhaps investing in the great book "Calendrical Calculations" is not worth the trouble 2018-01-31T00:24:27Z markong quit (Ping timeout: 240 seconds) 2018-01-31T00:24:29Z Xach: (with code in Lisp!) 2018-01-31T00:24:47Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T00:24:54Z didi: I've heard of it. From the creator of Emacs' calendar, right? 2018-01-31T00:25:19Z Xach: I don't know - that would be interesting 2018-01-31T00:25:27Z didi: I /think/ so. 2018-01-31T00:26:36Z zazzerino: Yep- https://www.emacswiki.org/emacs/EdwardReingold 2018-01-31T00:26:48Z didi: zazzerino: Thanks. 2018-01-31T00:27:19Z Bike: not cal 9 1752? 2018-01-31T00:27:52Z didi: Anyway, nothing needing attention right now. Just a curiosity. 2018-01-31T00:27:56Z aindilis joined #lisp 2018-01-31T00:28:01Z Xach: Bike: yes indeed. cut & paste error on my part. 2018-01-31T00:28:12Z Bike: i was staring at july trying to figure out the joke 2018-01-31T00:28:42Z Rawriful quit (Quit: WeeChat 1.4) 2018-01-31T00:28:52Z Xach: Sorry about that. 2018-01-31T00:28:54Z didi: Heh, missing days are missing. 2018-01-31T00:29:24Z Bike: i continually get confused reading mildly old russian things and being unable to comprehend julian dates 2018-01-31T00:32:21Z aindilis` joined #lisp 2018-01-31T00:34:21Z impulse joined #lisp 2018-01-31T00:37:44Z nirved quit (Quit: Leaving) 2018-01-31T00:38:20Z pagnol quit (Ping timeout: 256 seconds) 2018-01-31T00:47:10Z saki joined #lisp 2018-01-31T00:48:40Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-31T00:48:42Z red-dot joined #lisp 2018-01-31T00:50:00Z zazzerino quit (Remote host closed the connection) 2018-01-31T00:50:45Z zazzerino joined #lisp 2018-01-31T00:51:25Z Chream joined #lisp 2018-01-31T00:53:09Z fittestbits quit (Ping timeout: 264 seconds) 2018-01-31T00:53:45Z smurfrobot joined #lisp 2018-01-31T00:58:20Z ym: Is there a proof of impossibility of input (from "real-world") in FP? 2018-01-31T00:58:53Z DeadTrickster_ joined #lisp 2018-01-31T00:59:45Z Bike: what would that mean? 2018-01-31T01:00:01Z rumbler31 quit (Remote host closed the connection) 2018-01-31T01:00:44Z DeadTrickster quit (Read error: Connection reset by peer) 2018-01-31T01:00:47Z DeadTrickster__ joined #lisp 2018-01-31T01:04:33Z DeadTrickster_ quit (Ping timeout: 248 seconds) 2018-01-31T01:04:33Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T01:06:39Z DeadTrickster__ quit (Ping timeout: 248 seconds) 2018-01-31T01:07:01Z pagnol joined #lisp 2018-01-31T01:12:35Z ym: Thesis in natural language, I guess. 2018-01-31T01:16:47Z hvxgr joined #lisp 2018-01-31T01:22:33Z randomstrangerb quit (Ping timeout: 264 seconds) 2018-01-31T01:23:25Z yangby joined #lisp 2018-01-31T01:23:48Z randomstrangerb joined #lisp 2018-01-31T01:25:42Z malcom2073 quit (Remote host closed the connection) 2018-01-31T01:25:51Z malcom2073 joined #lisp 2018-01-31T01:26:04Z malcom2073 quit (Read error: Connection reset by peer) 2018-01-31T01:27:36Z malcom2073 joined #lisp 2018-01-31T01:28:02Z wmannis joined #lisp 2018-01-31T01:29:02Z yangby quit (Quit: Go out for a walk and buy a drink.) 2018-01-31T01:29:52Z Bike: ...what? 2018-01-31T01:33:23Z fikka joined #lisp 2018-01-31T01:33:38Z pjb: ym: the real world is part of the program: the universe is obviously a simulation written in your FP program! 2018-01-31T01:33:48Z orivej quit (Ping timeout: 240 seconds) 2018-01-31T01:33:56Z pjb: it's God's program. 2018-01-31T01:34:18Z pagnol quit (Ping timeout: 240 seconds) 2018-01-31T01:35:41Z asarch: Sorry if I insist. I promise this would be my last question but, how would you open a big file, parse its content line by line and print the third column of every line that matches with a regexp? 2018-01-31T01:37:04Z pjb: asarch: (with-open-file (stream "big-file") (loop for line = (read-line stream nil nil) while line when (regexp-match-line-p regexp line) do (print (third-column line)))) 2018-01-31T01:37:07Z pjb: DUH! 2018-01-31T01:37:16Z thinkpad quit (Quit: lawl) 2018-01-31T01:37:18Z EvW quit (Ping timeout: 240 seconds) 2018-01-31T01:37:23Z Bike: what parsing, exactly? 2018-01-31T01:37:30Z pjb: line by line. 2018-01-31T01:37:35Z asarch: The file is from a query from a PG cluster 2018-01-31T01:38:32Z asarch: psql school -c "SELECT * FROM payments WHERE student_id = 234;" 2018-01-31T01:38:55Z asarch: THANK YOU pjb 2018-01-31T01:39:04Z asarch: THANK YOU VERY MUCH :-) 2018-01-31T01:39:49Z Bike: you're being sarcastic, right? but honestly, that's kind of what it amounts to. 2018-01-31T01:39:57Z Bike: if you need a regex matching library cl-ppcre is good. 2018-01-31T01:40:29Z asarch: I used to use Perl for that kind of operations 2018-01-31T01:40:45Z asarch: In the beginning I used the TCSH for that 2018-01-31T01:40:54Z z3t0 joined #lisp 2018-01-31T01:41:01Z Bike: okay? 2018-01-31T01:41:06Z asarch: Then I moved to awk, sed, grep 2018-01-31T01:41:14Z asarch: I am not 2018-01-31T01:41:37Z asarch: Actually, in the sed time I was looking for a decent programming language with OOP support 2018-01-31T01:41:52Z asarch: And I thought Perl... well, you know 2018-01-31T01:42:02Z iqubic` left #lisp 2018-01-31T01:44:02Z thinkpad joined #lisp 2018-01-31T01:45:57Z jstypo quit (Remote host closed the connection) 2018-01-31T01:46:26Z asarch: I will Bike 2018-01-31T01:46:35Z asarch: Thank you 2018-01-31T01:46:51Z pjb: asarch: you may try: printf '((' ; psql --tuples-only --dbname="$DB" --user="$USER" --no-align --field-separator=')(' --record-separator='))'$'\n''((' --command="$QUERY" ; printf '))\n' 2018-01-31T01:47:11Z pjb: asarch: or rather: printf '(' ; psql --tuples-only --dbname="$DB" --user="$USER" --no-align --field-separator=')(' --record-separator='))'$'\n''((' --command="$QUERY" ; printf ')\n' # since it's big. 2018-01-31T01:48:39Z pjb: or perhaps: printf '("' ; psql --tuples-only --dbname="$DB" --user="$USER" --no-align --field-separator='")("' --record-separator='"))'$'\n''(("' --command="$QUERY" ; printf ')\n' # you may also have to modify the readtable, in either case, if any field contains double quotes or stuff… 2018-01-31T01:49:09Z asarch: Wow! That's poetry gentlemen 2018-01-31T01:50:11Z z3t0 quit (Remote host closed the connection) 2018-01-31T01:50:15Z pjb: asarch: you may also just use --html, and then parse the HTML. It may be safer, if psql escapes correctly < and > in the fields. 2018-01-31T01:50:45Z asarch: Ok 2018-01-31T01:51:44Z pjb: Anyways, the idea is to generate something easy to parse. 2018-01-31T01:51:56Z marusich quit (Ping timeout: 252 seconds) 2018-01-31T01:51:57Z CrazyEddy quit (Ping timeout: 264 seconds) 2018-01-31T01:52:50Z asarch: You are awesome 2018-01-31T01:53:17Z asarch: Where did you learn those kind of operations? 2018-01-31T01:53:42Z z3t0 joined #lisp 2018-01-31T01:53:42Z asarch: Are you a PostgreSQL developer? 2018-01-31T01:53:42Z z3t0 quit (Remote host closed the connection) 2018-01-31T01:53:58Z z3t0 joined #lisp 2018-01-31T01:54:40Z marusich joined #lisp 2018-01-31T01:56:51Z pjb: asarch: psql --help ! 2018-01-31T01:57:09Z pjb: asarch: we're working with unix systems. The only thing you need to know is: man 2018-01-31T01:57:16Z pjb: asarch: first type: man man RET 2018-01-31T01:57:35Z pjb: asarch: then type: ls /bin ; then type: man cmd # for cmd in /bin. 2018-01-31T01:58:08Z asarch: I know, I know. I mean the way you combine such options and their parameters 2018-01-31T01:58:14Z pjb: asarch: unfortunately, nowadays things are more complex. Youngsters can't respect nice conventions, such as writing a unix manual page. Instead, then write info page sometimes, or --help option to their commands. 2018-01-31T01:58:52Z asarch: Manuals are endless 2018-01-31T01:59:07Z asarch: In Python there are literally tons of them 2018-01-31T01:59:18Z pjb: and then, indeed, there's google… 2018-01-31T02:00:35Z asarch: Nowadays people usually gets angry with basic questions 2018-01-31T02:01:01Z asarch: For example, when I was learning Python I asked about how to put two commands in a single line 2018-01-31T02:01:37Z asarch: Since Python actually gets rid of the semi-colon punctuation mark to end a command just like Perl or C/C++ do 2018-01-31T02:02:25Z asarch: "How could I put two commands on a single line?" <- Blame on me :-( 2018-01-31T02:06:24Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T02:06:26Z aeth: The only thing you need to know is man unless it's a GNU project, in which case the man just tells you to use info for the real information. 2018-01-31T02:07:04Z aeth: e.g. "The primary documentation of GNU Emacs is in the GNU Emacs Manual, which you can read using Info, either from Emacs or as a standalone program. Please look there for complete and up-to-date documentation. This man page is updated only when someone volunteers to do so." 2018-01-31T02:10:22Z aeth: Oh, great, the newest Firefox (48?) or something else seems to have no audio in StumpWM. Is anyone else getting this? It tells me to install PulseAudio, which is nonsense because (1) everything else still has sound and (2) Firefox on other desktops like KDE still has sound. 2018-01-31T02:10:41Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-31T02:11:47Z fittestbits joined #lisp 2018-01-31T02:11:55Z randomstrangerb joined #lisp 2018-01-31T02:13:52Z fikka joined #lisp 2018-01-31T02:19:39Z aeth: Looks like I now need to enable pulseaudio via systemd, even though I have never needed to do that before. 2018-01-31T02:22:31Z aeth: What's particularly strange is that the change in Firefox happened 6 versions ago but I'm only having the problem now. 2018-01-31T02:23:06Z EvW1 joined #lisp 2018-01-31T02:23:10Z drewc quit (Ping timeout: 240 seconds) 2018-01-31T02:23:17Z wmannis quit (Quit: wmannis) 2018-01-31T02:23:48Z nowhere_man joined #lisp 2018-01-31T02:25:04Z Cymew joined #lisp 2018-01-31T02:26:36Z Devon joined #lisp 2018-01-31T02:26:44Z pjb: aeth: well this is #lisp, we wouldn't know. 2018-01-31T02:27:35Z aeth: I assumed it was a flaw in stumpwm 2018-01-31T02:27:42Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-31T02:28:07Z Bike: there's a stumpwm channel 2018-01-31T02:29:24Z Cymew quit (Ping timeout: 256 seconds) 2018-01-31T02:29:39Z aeth: Technically, I think it *is* a flaw in stumpwm because KDE has some way of working around this without me having to do something. I guess I can take it to the stumpwm channel, though. 2018-01-31T02:30:55Z didi: aeth: StumpWM is just a Window Manager. KDE is a whole desktop environment. They aren't comparable. 2018-01-31T02:34:34Z didi: Every time I use `multiple-value-bind' and I don't care about some variables, I dream of writing a macro that would discard NIL variables. 2018-01-31T02:36:53Z d4ryus2 joined #lisp 2018-01-31T02:37:14Z smurfrobot quit (Remote host closed the connection) 2018-01-31T02:38:00Z drewc joined #lisp 2018-01-31T02:38:25Z aeth: didi: Imo, they are comparable. The main difference is the lack of a StumpWM suite of applications (which means having to use a terminal, graphical file manager, etc., intended for a different desktop environment) 2018-01-31T02:39:54Z Bike: the point here would be that stumpwm doesn't have some DE workaround deal, since it just displays windows 2018-01-31T02:39:57Z d4ryus1 quit (Ping timeout: 240 seconds) 2018-01-31T02:41:10Z arescorpio joined #lisp 2018-01-31T02:41:30Z didi: aeth: Taking your problem as an example, StumpWM knows nothing about sound, only windows. If you are running some kind of sound server, it wasn't StumpWM that started it. 2018-01-31T02:44:48Z EvW1 quit (Ping timeout: 240 seconds) 2018-01-31T02:45:40Z Chream quit (Ping timeout: 240 seconds) 2018-01-31T02:45:45Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T02:46:57Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T02:48:10Z ikopico quit (Ping timeout: 265 seconds) 2018-01-31T02:51:08Z ikopico joined #lisp 2018-01-31T02:53:34Z CrazyEddy joined #lisp 2018-01-31T02:55:29Z red-dot joined #lisp 2018-01-31T02:55:46Z Oladon joined #lisp 2018-01-31T02:57:43Z fikka joined #lisp 2018-01-31T03:00:32Z rumbler31 joined #lisp 2018-01-31T03:00:32Z damke_ joined #lisp 2018-01-31T03:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-31T03:04:48Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-31T03:06:50Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T03:08:37Z deng_cn joined #lisp 2018-01-31T03:11:04Z pierpa joined #lisp 2018-01-31T03:12:21Z aindilis quit (Remote host closed the connection) 2018-01-31T03:12:21Z aindilis` quit (Remote host closed the connection) 2018-01-31T03:13:48Z dieggsy quit (Ping timeout: 240 seconds) 2018-01-31T03:14:58Z cromachina_ joined #lisp 2018-01-31T03:15:27Z aindilis joined #lisp 2018-01-31T03:16:23Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-31T03:16:32Z cromachina quit (Ping timeout: 268 seconds) 2018-01-31T03:21:21Z Devon quit (Ping timeout: 264 seconds) 2018-01-31T03:24:27Z iqubic joined #lisp 2018-01-31T03:29:11Z iqubic: What does paredit do? 2018-01-31T03:29:48Z iqubic: in emacs. 2018-01-31T03:30:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T03:31:23Z whoman: it provides editing of lisp forms in an almost geometric fashion 2018-01-31T03:31:26Z pjb: iqubic: it ensures parentheses are always balanced. 2018-01-31T03:31:34Z whoman: nah 2018-01-31T03:31:38Z pjb: iqubic: actually, it's more than that: it is a structured sexp editor. 2018-01-31T03:32:16Z iqubic: Do I need that as a lisp beginner? 2018-01-31T03:32:19Z whoman: http://danmidwood.com/content/2014/11/21/animated-paredit.html 2018-01-31T03:32:32Z whoman: i wouldnt imagine writing lisp out by hand 2018-01-31T03:33:12Z Bike: you don't need it. 2018-01-31T03:33:12Z whoman: other than symbols; paredit to working with lisp in emacs is what macros are to lisp, lets say 2018-01-31T03:33:31Z pjb: iqubic: as a lisp beginner, I would 1- use the CL implementation in a terminal during 2 days. 2- use the CL implementation in emacs (without slime) during 2 days. 3- use the CL implementation in emacs with slime during 2 days. and finally 4 use CL in emacs with slime and paredit for the rest of my life. 2018-01-31T03:33:41Z pjb: iqubic: this way, you'd know what you'd lose not using them. 2018-01-31T03:33:46Z whoman: =) 2018-01-31T03:34:57Z iqubic: I'm using SLIME already. 2018-01-31T03:35:25Z fikka joined #lisp 2018-01-31T03:35:26Z whoman: wrapping/unwrapping and moving left and right parens, are very nice features of paredit 2018-01-31T03:35:40Z iqubic: I did steps 1 to 3 already. 2018-01-31T03:35:42Z whoman: also kill-line works by sexp and other nice things 2018-01-31T03:37:18Z marusich quit (Ping timeout: 240 seconds) 2018-01-31T03:41:53Z jibanes quit (Ping timeout: 248 seconds) 2018-01-31T03:43:44Z jibanes joined #lisp 2018-01-31T03:45:33Z beach: Good morning everyone! 2018-01-31T03:45:33Z Colleen: beach: drmeister said 8 hours, 22 minutes ago: Above I dumped the environment from within convert-elementary-setq (stored in cleavir-cst-to-ast::*debug-env*) 2018-01-31T03:45:33Z Colleen: beach: drmeister said 8 hours, 21 minutes ago: This is the environment when compiling one of the PUSH macros in this macro... https://github.com/drmeister/clasp/blob/cst/src/lisp/kernel/lsp/defmacro.lsp#L95 There is no mention of special-variable entries - so I think something is wrong with how the environment is being put together. 2018-01-31T03:50:20Z arescorpio quit (Excess Flood) 2018-01-31T03:58:42Z ghostyyy joined #lisp 2018-01-31T03:59:17Z ghostyyy: hi, i have heard a lot about lisp macros, does anyone know any useful and practical examples of their usage? 2018-01-31T03:59:38Z beach: ghostyyy: That's a very strange question. 2018-01-31T03:59:57Z ghostyyy: i googled it but i just get people talking about why macros are cool, ajnd not a lot of practical examples 2018-01-31T03:59:58Z beach: ghostyyy: But you can always read the book called "On Lisp" by Paul Graham. 2018-01-31T04:00:13Z beach: It is entirely dedicated to macros in Common Lisp. 2018-01-31T04:00:34Z beach: And it is available as a PDF. 2018-01-31T04:01:07Z dddddd quit (Remote host closed the connection) 2018-01-31T04:01:25Z ghostyyy: oh, i see! are clisp macros different from hygenic scheme macros in any appreciable way? i dont know clisp well, only scheme 2018-01-31T04:01:33Z beach: ghostyyy: Basically, macros allow the programmer to introduce syntactic abstractions, thereby making it possible to cut down on a lot of boilerplate code. 2018-01-31T04:01:35Z iqubic: What is Clisp? 2018-01-31T04:01:40Z iqubic: Common Lisp? 2018-01-31T04:01:44Z ghostyyy: yes 2018-01-31T04:01:52Z pjb: nope. 2018-01-31T04:01:54Z beach: ghostyyy: CLISP is not an accepted abbreviation for Common Lisp. 2018-01-31T04:01:56Z Bike: 'clisp' is the name of a common lisp implementation 2018-01-31T04:02:04Z Bike: so it's confusing to use the word to mean common lisp in general 2018-01-31T04:02:10Z pjb: clisp is a CL implementation, written in C, hence the C in CLISP. 2018-01-31T04:02:10Z ghostyyy: oh, sorry, my apologies 2018-01-31T04:02:17Z Bike: it's cool, everyone seems to do it at first 2018-01-31T04:02:19Z beach: ghostyyy: Like I said, "On Lisp" is entirely about Common Lisp macros. 2018-01-31T04:02:28Z Bike: anyway, yes, common lisp macros are different from hygenic scheme macros 2018-01-31T04:02:45Z beach: ghostyyy: Common Lisp macros have the full language at their disposal in order to transform a form to a different form. 2018-01-31T04:02:47Z iqubic: What is hygenic scheme? 2018-01-31T04:02:51Z pjb: cf. Casting Spels in Lisp Conrad Barski, M.D. http://www.lisperati.com/casting.html 2018-01-31T04:03:05Z Bike: iqubic: scheme is a programming language. it has "hygenic macros" 2018-01-31T04:03:14Z ghostyyy: hygenic (scheme macros) 2018-01-31T04:03:19Z Bike: right. 2018-01-31T04:03:47Z iqubic: What are hygenic macros? 2018-01-31T04:04:06Z ghostyyy: well, they avoid capture errors in generated code 2018-01-31T04:04:17Z beach: iqubic: https://en.wikipedia.org/wiki/Hygienic_macro 2018-01-31T04:05:02Z Bike: common lisp macros are much simpler. a macro is just a function that you call on source forms, that return macroexpanded forms. 2018-01-31T04:05:17Z beach: ghostyyy: For someone who doesn't know what macros are for, you seem to know a lot about them. 2018-01-31T04:06:21Z smurfrobot joined #lisp 2018-01-31T04:06:32Z ghostyyy: i have studied them a bit but i only get academic examples about how to define "cond" fifteen different times a la https://www.cs.indiana.edu/~dyb/pubs/tr356.pdf 2018-01-31T04:06:38Z Bike: the downside to simpler is that you have to think about actual symbols and worry about a bunch of stuff, but i've never had an issue with it 2018-01-31T04:06:42Z Bike: well, cond is a pretty good macro 2018-01-31T04:06:57Z beach: ghostyyy: On Lisp contains much bigger examples. 2018-01-31T04:07:04Z ghostyyy: well, i have to agree with you there Bike 2018-01-31T04:07:11Z iqubic: Why not just use gensym? 2018-01-31T04:07:16Z ghostyyy: beach, yeah, it looks good! ill have a look at it 2018-01-31T04:07:30Z saki quit (Quit: saki) 2018-01-31T04:08:01Z ghostyyy: iqubic, that only solves one half of the accidental caputre problem, the problem where your macro binds a name already in its context 2018-01-31T04:08:15Z beach: iqubic: Certain ideas in programming language design want to protect the programmer from himself/herself, so the language is trying to make it impossible to introduce certain problems. 2018-01-31T04:08:23Z ghostyyy: the other half is where the macro's context binds a name which has the same name as a global 2018-01-31T04:08:33Z ghostyyy: then the macro invocation uses the local name and not the global name 2018-01-31T04:08:44Z saki joined #lisp 2018-01-31T04:09:23Z fikka quit (Ping timeout: 256 seconds) 2018-01-31T04:09:28Z smurfrobot quit (Remote host closed the connection) 2018-01-31T04:09:36Z warweasle quit (Read error: Connection reset by peer) 2018-01-31T04:12:00Z whoman: prolog macros are nice 2018-01-31T04:13:33Z mlf quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2018-01-31T04:18:26Z drmeister: Hygienic macros are more important in a Lisp-1, with a single shared namespace for function names and variable names. Common Lisp is a Lisp-2 (or more?) and problems that hygienic macros solve in a Lisp-1 are more conveniently solved with GENSYM. 2018-01-31T04:19:06Z drmeister: That was one take-home message I learned from "Let Over Lambda" 2018-01-31T04:19:38Z pfdietz: Also, there's less problem with overriding of functions by local variables in CL. Go ahead and use 'list' as a variable name, none of that schemish 'lst' stuff. 2018-01-31T04:19:46Z ghostyyy: drmeister, what about the problem i mentioned, where some code shadows a global variable, which is also used by a macro, and then that macro is invoked inside of that context? 2018-01-31T04:19:58Z ghostyyy: wont the macro use the local binding, and not the global binding? 2018-01-31T04:20:45Z Bike: yes. cl also prevents shadowing standard names, which mostly makes that not a problem, though it's not a very "clean" solution 2018-01-31T04:21:06Z fikka joined #lisp 2018-01-31T04:21:11Z drmeister: I think you can get around that by declaring variables locally special? 2018-01-31T04:21:33Z beach: ghostyyy: Not sure whether you are talking about the expansion code or the expanded code. 2018-01-31T04:22:05Z Bike: (let ((x 4)) (macrolet ((m () 'x)) (let ((x 5)) (m)))) => 5 instead of 4, i'm guessing. 2018-01-31T04:22:17Z ghostyyy: yes, that 2018-01-31T04:22:32Z ghostyyy: drmeister, im not sure what you mean by that exactly 2018-01-31T04:22:37Z pfdietz: You don't want information to be passed down into macros using special variables. Use the macro environment. 2018-01-31T04:22:52Z beach: ghostyyy: The expanded code should not use any free variables that way. 2018-01-31T04:23:28Z Bike: well "free variables" can include functions. 2018-01-31T04:23:33Z ghostyyy: pfdietz, are you supposed to just pass every function that you plan on using inside of the macro to it via macro arguments? 2018-01-31T04:23:40Z ghostyyy: or did you mean something else 2018-01-31T04:24:03Z beach: Bike: Sure, but if it only uses standard functions, the standard prevents shadowing, as you pointed out. 2018-01-31T04:24:26Z ghostyyy: ah, so the solution is "only use standard functions inside of macros"? 2018-01-31T04:24:28Z Bike: yeah. i'm just saying, pretty much any macroexpansion has free variables. it's just not usually an issue in practice. 2018-01-31T04:24:41Z pfdietz: ghostyyy: one thing to remember is that when you compile code, the macros are evaluated at compile time, not when the code they are in is run. So if that code binds a variable later, it doesn't affect the macro at all. The macro is already expanded. 2018-01-31T04:24:43Z Bike: no, the solution is don't shadow things much and it doesn't come up, really. 2018-01-31T04:25:07Z ghostyyy: pfdietz, i am aware of that 2018-01-31T04:25:18Z Bike: pfdietz: i think you're on a different issue. 2018-01-31T04:25:23Z pfdietz: Ok. 2018-01-31T04:25:23Z drmeister: Anyway Common Lisp macros are awesome - Scheme macros feel kind of "nerfed". 2018-01-31T04:25:28Z beach: ghostyyy: Also, the package system prevents a lot of accidents like that. 2018-01-31T04:25:30Z drmeister: (oh yeah - I'm going there) 2018-01-31T04:25:33Z drmeister: :-) 2018-01-31T04:25:55Z Bike: i don't think i remember the last time i shadowed a function binding 2018-01-31T04:26:19Z beach: ghostyyy: A macro that expands to the use of a globally defined function that is not standard, is typically defined in the same package as that function. 2018-01-31T04:26:28Z ghostyyy: drmeister, out of curiosity, how do you feel about type systems :^) 2018-01-31T04:26:51Z ghostyyy: beach, i see 2018-01-31T04:26:55Z ghostyyy: i find this all a bit fascinating 2018-01-31T04:27:19Z beach: ghostyyy: So to have an accident, client code would have to write (flet ((package::secret-function (....))) (macro-call ...)) 2018-01-31T04:27:30Z Bike: it's like, i get that common lisp macros are dangerous in theory, and that hygenic macros are safe, but it just has not happened for me 2018-01-31T04:27:47Z Bike: i have never run into this latter situation in several years of programming and had to be introduced to the possibility by an academic paper 2018-01-31T04:27:50Z Bike: it's weird 2018-01-31T04:27:52Z beach: "dangerous" is a very strong word. 2018-01-31T04:28:04Z Bike: "in theory" is intended to neuter it 2018-01-31T04:28:11Z beach: OK. 2018-01-31T04:28:13Z ghostyyy: it honestly has never really occurred to me that someone might not think macro hygiene is an important thing to have, but i guess if its not a problem you encounter often then it makes sense 2018-01-31T04:28:31Z beach: ghostyyy: The problem never happens in fact. 2018-01-31T04:28:54Z whoman: Moreover! 2018-01-31T04:28:57Z beach: ghostyyy: Perhaps it does for newbies who don't know about GENSYM, but not for programmers with a bit of experience. 2018-01-31T04:29:04Z pfdietz: Or, if it does happen, there are so many more common ways to shoot yourself in the foot that it doesn't matter. 2018-01-31T04:29:07Z ghostyyy: in retrospect i do find it kind of amusing that people have done serious academic research on how to let people get away with shadowing basic operations like cons 2018-01-31T04:29:45Z ghostyyy: still, i do feel like its a good thing, just that it gives you a nice guarantee that nothing bad will happen, no matter how hard you try 2018-01-31T04:29:46Z pfdietz: You can shadow CONS in CL. You work in a package where the symbol CONS means something else. 2018-01-31T04:30:02Z whoman: Furthermore! 2018-01-31T04:30:16Z Bike: contrariwise 2018-01-31T04:30:20Z beach: ghostyyy: It is a matter of compromise. The more such guarantees that the language can provide, the harder it gets to use it. 2018-01-31T04:30:23Z whoman: ahah *adds to library* 2018-01-31T04:31:02Z ghostyyy: beach, yeah, i can get that 2018-01-31T04:31:54Z Bike: i do like the conceptual simplicity of it. macro function's just a function you call on some code. obviously you can do all kinds of horrible things in that framework, but programming is all about that anyway 2018-01-31T04:32:02Z khrbt: is there x86_64 cmucl? 2018-01-31T04:32:16Z beach: khrbt: Why would you like CMUCL? 2018-01-31T04:33:58Z beach: khrbt: I mean, what is it in CMUCL that you need, and that is not also in SBCL? 2018-01-31T04:34:48Z khrbt: it is mainly out of curiosity. I am just exploring things. 2018-01-31T04:35:00Z beach: I see. 2018-01-31T04:35:43Z drmeister prefers a powerful language that doesn't come with airbags, training wheels and safety rails. Wheee! 2018-01-31T04:37:27Z ghostyyy: drmeister, i thought so :p 2018-01-31T04:39:54Z oleo joined #lisp 2018-01-31T04:40:09Z milanj quit (Quit: This computer has gone to sleep) 2018-01-31T04:41:39Z pfdietz: In a large project those get added back, layered on top of the language as social restrictions to get a large group of programmers to work well together. Things like "thou shalt not use :: on any symbols in your code". 2018-01-31T04:43:11Z ghostyyy: thou shalt prefix all of thine identifiers with the name of thine module 2018-01-31T04:45:31Z whoman: surrender or die 2018-01-31T04:46:25Z schoppenhauer quit (Ping timeout: 248 seconds) 2018-01-31T04:48:24Z schoppenhauer joined #lisp 2018-01-31T04:48:28Z brendyn joined #lisp 2018-01-31T04:48:49Z dented42 joined #lisp 2018-01-31T04:50:41Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T04:56:54Z Bike quit (Quit: Lost terminal) 2018-01-31T04:57:24Z oleo quit (Remote host closed the connection) 2018-01-31T04:58:42Z fikka joined #lisp 2018-01-31T05:04:43Z asarch quit (Quit: Leaving) 2018-01-31T05:05:03Z zazzerino quit (Ping timeout: 248 seconds) 2018-01-31T05:10:31Z damke joined #lisp 2018-01-31T05:12:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-31T05:17:15Z z3t0 quit (Remote host closed the connection) 2018-01-31T05:18:14Z z3t0 joined #lisp 2018-01-31T05:21:55Z marusich joined #lisp 2018-01-31T05:25:57Z pierpa quit (Quit: Page closed) 2018-01-31T05:28:05Z dtornabene joined #lisp 2018-01-31T05:31:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T05:37:06Z fikka joined #lisp 2018-01-31T05:40:57Z sjl joined #lisp 2018-01-31T05:41:49Z marusich quit (Remote host closed the connection) 2018-01-31T05:42:00Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T05:42:15Z mishoo joined #lisp 2018-01-31T05:44:52Z Oladon quit (Quit: Leaving.) 2018-01-31T05:45:18Z sjl quit (Ping timeout: 240 seconds) 2018-01-31T05:46:10Z shka joined #lisp 2018-01-31T05:51:11Z nox2 joined #lisp 2018-01-31T05:58:12Z red-dot joined #lisp 2018-01-31T05:58:43Z igemnace joined #lisp 2018-01-31T06:01:08Z milanj joined #lisp 2018-01-31T06:02:57Z sword joined #lisp 2018-01-31T06:09:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T06:14:50Z fikka joined #lisp 2018-01-31T06:15:27Z z3t0 quit (Remote host closed the connection) 2018-01-31T06:16:58Z z3t0 joined #lisp 2018-01-31T06:18:16Z orivej joined #lisp 2018-01-31T06:19:43Z drmeister: https://www.irccloud.com/pastebin/w5Q899Sw/ 2018-01-31T06:20:00Z drmeister: Do the declares on line 3 make any sense? 2018-01-31T06:20:14Z drmeister: I and R are variable names - not function names 2018-01-31T06:20:41Z drmeister: This is generated by the DO* macro and I'm trying to track down where they are coming from 2018-01-31T06:21:44Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-31T06:25:11Z newcup quit (Ping timeout: 265 seconds) 2018-01-31T06:25:11Z cyraxjoe joined #lisp 2018-01-31T06:25:37Z drmeister: Got it - it was a typo in the C++ code that canonicalized declarations 2018-01-31T06:27:53Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-31T06:28:18Z mishoo quit (Ping timeout: 240 seconds) 2018-01-31T06:30:36Z dented42 joined #lisp 2018-01-31T06:34:33Z pagnol joined #lisp 2018-01-31T06:35:25Z ym quit (Ping timeout: 260 seconds) 2018-01-31T06:35:58Z LocaMocha joined #lisp 2018-01-31T06:38:04Z python476 joined #lisp 2018-01-31T06:48:27Z Karl_Dscc joined #lisp 2018-01-31T06:51:10Z mishoo joined #lisp 2018-01-31T06:58:03Z vlatkoB joined #lisp 2018-01-31T06:58:13Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T06:59:02Z red-dot joined #lisp 2018-01-31T07:00:11Z zaquest quit (Read error: Connection reset by peer) 2018-01-31T07:01:21Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-31T07:01:22Z flamebeard joined #lisp 2018-01-31T07:01:55Z z3t0 joined #lisp 2018-01-31T07:06:18Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-31T07:08:45Z zaquest joined #lisp 2018-01-31T07:08:46Z nox2 quit (Ping timeout: 256 seconds) 2018-01-31T07:11:07Z Karl_Dscc quit (Remote host closed the connection) 2018-01-31T07:12:49Z nox2 joined #lisp 2018-01-31T07:16:54Z z3t0 joined #lisp 2018-01-31T07:17:48Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-31T07:21:29Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-31T07:24:17Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T07:25:18Z phoe: drmeister: was the typo s/ftype/type/? 2018-01-31T07:25:18Z heurist` quit (Ping timeout: 240 seconds) 2018-01-31T07:25:33Z scymtym quit (Ping timeout: 264 seconds) 2018-01-31T07:25:55Z heurist` joined #lisp 2018-01-31T07:30:41Z heisig joined #lisp 2018-01-31T07:39:51Z raynold quit (Quit: Connection closed for inactivity) 2018-01-31T07:40:59Z hiroaki joined #lisp 2018-01-31T07:44:59Z z3t0 joined #lisp 2018-01-31T07:46:05Z fikka joined #lisp 2018-01-31T07:48:52Z kami joined #lisp 2018-01-31T07:49:02Z kami: Good morning. 2018-01-31T07:49:19Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-31T07:50:12Z jack_rabbit: 'morning 2018-01-31T07:57:57Z stylewarning: Are there any good tutorials about properly creating a new data type in Common Lisp? I feel as though many data types I create that are public facing are not all that good with respect to things like printing, readable representations/literals, FASL safety, etc. 2018-01-31T07:58:51Z stylewarning: It would be nice to have a checklist for creating a high quality user data type, be it a new class or structure. 2018-01-31T07:59:24Z phoe: stylewarning: I think the best idea is to start creating one, fill it with your ideas, post it here, gather comments, update the document, rinse, repeat. 2018-01-31T07:59:37Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T07:59:38Z phoe: I am not aware of any such document related to Common Lisp. 2018-01-31T08:00:19Z stylewarning: Yeah I may do that. The impetus is to redesign CL-ALGEBRAIC-DATA-TYPE which is rough around the edges in terms of things like respecting print variables. 2018-01-31T08:00:20Z red-dot joined #lisp 2018-01-31T08:00:38Z phoe: shka: ^ 2018-01-31T08:00:50Z phoe: stylewarning: I see. Good luck with it! 2018-01-31T08:00:58Z shka: phoe: uhhh 2018-01-31T08:02:11Z phoe: shka: data type discussion, I thought to link you up 2018-01-31T08:02:38Z shka: well, what i would know about that 2018-01-31T08:03:19Z phoe: you are defining data types within cl-df 2018-01-31T08:03:23Z phoe: cl-ds* 2018-01-31T08:03:29Z phoe: so you have some experience, I guess (: 2018-01-31T08:04:15Z shka: well, yes, but FASL safety? 2018-01-31T08:04:25Z shka: i have no clue what is safe and what is not 2018-01-31T08:04:34Z shka: but i would gladly find out 2018-01-31T08:04:47Z Cymew joined #lisp 2018-01-31T08:05:27Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T08:07:56Z deng_cn joined #lisp 2018-01-31T08:11:20Z z3t0 joined #lisp 2018-01-31T08:11:36Z stylewarning: Maybe FASL safety is a poor term. What I mean is making sure your data structures can be dumped by having load forms and the like 2018-01-31T08:15:40Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-31T08:18:57Z z3t0 joined #lisp 2018-01-31T08:19:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-31T08:19:47Z schweers joined #lisp 2018-01-31T08:20:58Z pagnol quit (Ping timeout: 252 seconds) 2018-01-31T08:21:48Z fikka joined #lisp 2018-01-31T08:23:34Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-31T08:24:21Z murii joined #lisp 2018-01-31T08:24:50Z murii is now known as Murii 2018-01-31T08:27:09Z flamebeard quit (Quit: Leaving) 2018-01-31T08:31:01Z scymtym joined #lisp 2018-01-31T08:32:01Z python476 quit (Ping timeout: 248 seconds) 2018-01-31T08:35:00Z angelo quit (Ping timeout: 260 seconds) 2018-01-31T08:35:15Z whoman quit (Remote host closed the connection) 2018-01-31T08:35:28Z fikka quit (Ping timeout: 256 seconds) 2018-01-31T08:35:45Z whoman joined #lisp 2018-01-31T08:42:51Z fikka joined #lisp 2018-01-31T08:43:12Z beach: stylewarning: You mean that instances of the type can be dumped? 2018-01-31T08:44:01Z z3t0 joined #lisp 2018-01-31T08:45:07Z beach: I do that by defining a reader macro `[', so that an object is represented as [package::class :initarg1 value1 :initarg2 value2 ..]. The reader macro simply reads the list and then does (apply #'make-instance list). 2018-01-31T08:45:29Z beach: That way, I can handle arbitrary circularity through #= and ##. 2018-01-31T08:47:26Z beach: For the other aspects of data types, I would be willing to review your design. 2018-01-31T08:47:27Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T08:48:05Z angelo|2 joined #lisp 2018-01-31T08:48:32Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-31T08:49:26Z shka quit (Remote host closed the connection) 2018-01-31T08:50:07Z fikka joined #lisp 2018-01-31T08:50:38Z shka joined #lisp 2018-01-31T08:53:23Z z3t0 joined #lisp 2018-01-31T08:55:19Z pagnol joined #lisp 2018-01-31T08:57:37Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-31T08:57:38Z fikka quit (Ping timeout: 252 seconds) 2018-01-31T08:59:57Z damke_ joined #lisp 2018-01-31T09:00:55Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T09:01:50Z red-dot joined #lisp 2018-01-31T09:02:45Z damke quit (Ping timeout: 264 seconds) 2018-01-31T09:08:47Z visof joined #lisp 2018-01-31T09:08:47Z visof quit (Changing host) 2018-01-31T09:08:47Z visof joined #lisp 2018-01-31T09:13:35Z zooey quit (Ping timeout: 255 seconds) 2018-01-31T09:16:06Z Shinmera: stylewarning: You should always provide a print-object method that prints it in a usable way, and possibly a describe-object method for detailed description. 2018-01-31T09:16:39Z Shinmera: stylewarning: make-load-form is only necessary if you expect it to be useful to use your object as a literal. 2018-01-31T09:16:45Z Shinmera: which is not very often 2018-01-31T09:17:06Z hhdave joined #lisp 2018-01-31T09:17:07Z sjl joined #lisp 2018-01-31T09:17:23Z z3t0 joined #lisp 2018-01-31T09:18:45Z zooey joined #lisp 2018-01-31T09:21:35Z kami quit (Remote host closed the connection) 2018-01-31T09:21:37Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-31T09:22:13Z sjl quit (Ping timeout: 268 seconds) 2018-01-31T09:24:33Z attila_lendvai joined #lisp 2018-01-31T09:24:53Z fikka joined #lisp 2018-01-31T09:30:19Z z3t0 joined #lisp 2018-01-31T09:35:32Z z3t0 quit (Ping timeout: 276 seconds) 2018-01-31T09:38:36Z ninegrid joined #lisp 2018-01-31T09:43:15Z whoman quit (Remote host closed the connection) 2018-01-31T09:43:42Z whoman joined #lisp 2018-01-31T09:44:36Z pjb quit (Ping timeout: 256 seconds) 2018-01-31T09:45:25Z z3t0 joined #lisp 2018-01-31T09:49:56Z z3t0 quit (Ping timeout: 255 seconds) 2018-01-31T10:01:32Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-31T10:02:24Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T10:03:14Z red-dot joined #lisp 2018-01-31T10:04:05Z ym joined #lisp 2018-01-31T10:05:38Z _cosmonaut_ joined #lisp 2018-01-31T10:07:20Z Mandus quit (Remote host closed the connection) 2018-01-31T10:07:45Z milanj quit (Quit: This computer has gone to sleep) 2018-01-31T10:10:05Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-31T10:11:19Z randomstrangerb joined #lisp 2018-01-31T10:12:57Z pjb joined #lisp 2018-01-31T10:14:52Z wxie joined #lisp 2018-01-31T10:15:35Z thijso quit (Ping timeout: 240 seconds) 2018-01-31T10:22:11Z smurfrobot joined #lisp 2018-01-31T10:29:21Z orivej quit (Ping timeout: 248 seconds) 2018-01-31T10:35:45Z smurfrobot quit (Remote host closed the connection) 2018-01-31T10:36:30Z loke: Shinmera: isn't it important to use MAKE-LOAD-FORM if you have soemthing like (defconstant +foo+ (make-instance 'my-special-class)) 2018-01-31T10:36:55Z Shinmera: loke: Well yeah because then it's a literal. 2018-01-31T10:37:25Z Shinmera: Anything that is dumped to a FASL. 2018-01-31T10:37:32Z loke: Right. 2018-01-31T10:38:41Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-31T10:40:05Z attila_lendvai joined #lisp 2018-01-31T10:41:53Z smurfrobot joined #lisp 2018-01-31T10:41:53Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-31T10:43:38Z attila_lendvai joined #lisp 2018-01-31T10:45:02Z milanj joined #lisp 2018-01-31T10:45:45Z random-nick joined #lisp 2018-01-31T10:46:56Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-31T10:46:56Z pjb quit (Ping timeout: 256 seconds) 2018-01-31T10:54:25Z python476 joined #lisp 2018-01-31T10:56:30Z nirved joined #lisp 2018-01-31T11:01:06Z damke joined #lisp 2018-01-31T11:02:45Z varjag joined #lisp 2018-01-31T11:03:18Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T11:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-31T11:04:40Z red-dot joined #lisp 2018-01-31T11:05:02Z Cymew quit (Remote host closed the connection) 2018-01-31T11:05:23Z saki quit (Quit: saki) 2018-01-31T11:12:40Z smurfrobot joined #lisp 2018-01-31T11:17:15Z heurist` is now known as heurist 2018-01-31T11:17:45Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-31T11:18:21Z pagnol quit (Ping timeout: 256 seconds) 2018-01-31T11:24:45Z pagnol joined #lisp 2018-01-31T11:28:20Z d4ryus2 is now known as d4ryus 2018-01-31T11:28:41Z smurfrobot joined #lisp 2018-01-31T11:32:49Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-31T11:33:53Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T11:36:26Z Tobbi joined #lisp 2018-01-31T11:40:04Z z3t0 joined #lisp 2018-01-31T11:40:48Z smurfrobot joined #lisp 2018-01-31T11:44:25Z MrMc joined #lisp 2018-01-31T11:44:35Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-31T11:45:35Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-31T11:45:58Z MrMc: For my Bachelor Thesis I would like to write a common lisp library is eBay API worth the while 2018-01-31T11:46:31Z tonton quit (Ping timeout: 268 seconds) 2018-01-31T11:47:53Z tonton joined #lisp 2018-01-31T11:48:34Z z3t0 joined #lisp 2018-01-31T11:52:15Z whoman quit (Remote host closed the connection) 2018-01-31T11:52:41Z whoman joined #lisp 2018-01-31T11:52:55Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-31T12:01:44Z fikka joined #lisp 2018-01-31T12:03:55Z markong joined #lisp 2018-01-31T12:05:47Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T12:06:30Z wxie quit (Remote host closed the connection) 2018-01-31T12:07:10Z pagnol quit (Ping timeout: 240 seconds) 2018-01-31T12:11:34Z ``Erik_ is now known as ``Erik 2018-01-31T12:12:15Z z3t0 joined #lisp 2018-01-31T12:15:03Z cess11: MrMc: they have twenty or so 2018-01-31T12:16:40Z z3t0 quit (Ping timeout: 260 seconds) 2018-01-31T12:16:51Z jstypo joined #lisp 2018-01-31T12:16:59Z dddddd joined #lisp 2018-01-31T12:20:39Z MrMc: cess11: Do you mean there are 20 common lisp eBay API sdks 2018-01-31T12:23:25Z drmeister: phoe: The typo was the generation of the ftype 2018-01-31T12:23:26Z Colleen: drmeister: Shinmera said 1 hour, 38 minutes ago: https://www.reddit.com/r/Common_Lisp/comments/7twkk9/numerical_libraries_for_scientific_computing_in/ 2018-01-31T12:23:42Z drmeister: Shinmera: Got it - I responded to the poster. 2018-01-31T12:23:52Z drmeister: Thank you very much 2018-01-31T12:24:07Z cess11: no, I mean that this company exposes about that many fairly open API:s. you'll probably want to decide which are interesting for your studies. 2018-01-31T12:24:23Z damke_ joined #lisp 2018-01-31T12:25:26Z BitPuffin joined #lisp 2018-01-31T12:26:08Z MrMc: cess11:I am interested in porting the ones done in the python sdk 2018-01-31T12:27:21Z damke quit (Ping timeout: 264 seconds) 2018-01-31T12:30:01Z cess11: MrMc: why the python sdk? 2018-01-31T12:32:20Z pagnol joined #lisp 2018-01-31T12:32:31Z visof quit (Quit: Leaving) 2018-01-31T12:35:04Z MrMc: cess11: It's a guideline of what working code should look like 2018-01-31T12:35:43Z cess11: yeah but why pick python over .NET or Java? 2018-01-31T12:36:02Z Shinmera: MrMc: Do you even have anyone that would supervise such a thesis? A professor that would accept and review it? 2018-01-31T12:36:14Z z3t0 joined #lisp 2018-01-31T12:38:02Z EvW joined #lisp 2018-01-31T12:38:06Z MrMc: cess11:python is easy to read for me 2018-01-31T12:38:46Z cess11: doesn't sound like a particularly academic argument to me 2018-01-31T12:39:04Z red-dot joined #lisp 2018-01-31T12:39:39Z iqubic` joined #lisp 2018-01-31T12:39:40Z MrMc: Shinmera: I will have to sell the idea to my internet programming Prof 2018-01-31T12:40:13Z orivej joined #lisp 2018-01-31T12:40:25Z Shinmera: Not just that, you need to find someone, probably an assistant of the prof, to supervise you for the duration of the thesis. I heavily doubt you'll find anyone that knows Common Lisp, so I heavily doubt you'll find anyone willing to do that. 2018-01-31T12:40:26Z MrMc: cess11: The idea is just to implement the APIs implemented in Python 2018-01-31T12:40:28Z cess11: also, the others are more verbose and less hackish in their syntax, they are very easy to understand. 2018-01-31T12:40:31Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-31T12:40:57Z cess11: why? who would want to use it often? 2018-01-31T12:41:18Z iqubic quit (Ping timeout: 252 seconds) 2018-01-31T12:42:25Z Shinmera: Besides, what you're proposing does not sound suitable for a thesis. How would it further science? What kind of prior research would you cite? How does this present anything new? A thesis is more than just implementing a piece of code. 2018-01-31T12:42:39Z cess11: usually there's something resembling a research question in a thesis, what would yours be? 2018-01-31T12:43:27Z DeadTrickster__ joined #lisp 2018-01-31T12:45:03Z MrMc: Something along the lines can a language standadised in the past millenium be used for eCommerce today 2018-01-31T12:48:13Z cess11: the answer to that one is known 2018-01-31T12:48:30Z ioa joined #lisp 2018-01-31T12:48:43Z cess11: doubt anyone would say no to it 2018-01-31T12:48:59Z rumbler31 joined #lisp 2018-01-31T12:49:04Z ioa: good morning 2018-01-31T12:51:44Z smurfrobot joined #lisp 2018-01-31T12:52:47Z cess11: ioa: good morning 2018-01-31T12:52:56Z jmercouris joined #lisp 2018-01-31T12:53:14Z jmercouris: I got this error from uiop "Program args must all be simple strings", what is a simple string? 2018-01-31T12:53:30Z Shinmera: clhs simple-string 2018-01-31T12:53:30Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_smp_st.htm 2018-01-31T12:54:00Z jmercouris: Is there a conversion method for string --> simple string? 2018-01-31T12:54:52Z cess11: MrMc: if you were to search for something like 'common lisp ecommerce' you'll find some useful resources. if you choose a project you can express formally it will increase your chances of getting someone to grade it. 2018-01-31T12:54:56Z Shinmera: (replace (make-string (length string)) string) 2018-01-31T12:55:47Z Xach: jmercouris: Coerce springs to mind. 2018-01-31T12:56:08Z Shinmera: Xach: I don't think simple-string is specified to be known by coerce, right? 2018-01-31T12:56:16Z jmercouris: didn't make an error in my repl 2018-01-31T12:56:20Z jmercouris: let me try it in my actual program now 2018-01-31T12:57:02Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-31T12:57:09Z jmercouris: didn't seem to like that :\ 2018-01-31T12:57:14Z jmercouris: maybe I have a mistake elsewhere though 2018-01-31T12:57:50Z Xach: Shinmera: I don't know. I can't tell quickly from the rules. 2018-01-31T12:58:13Z Xach: A simple-string is a sequence, so maybe it's covered. 2018-01-31T12:58:17Z Shinmera: "If the result-type is a recognizable subtype of vector, and the object is a sequence, then the result is a vector that has the same elements as object. If result-type is a specialized type, the result has an actual array element type that is the result of upgrading the element type part of that specialized type. If no element type is specified, the element type defaults to t. If the implementation cannot 2018-01-31T12:58:20Z Shinmera: determine the element type, an error is signaled." 2018-01-31T12:58:25Z Shinmera: But that doesn't seem to guarantee simple-ness to me 2018-01-31T12:58:30Z Shinmera: Just that the element-type is proper. 2018-01-31T12:58:47Z MrMc: cess11: I will try to look for a formal way to express it 2018-01-31T12:58:51Z wigust joined #lisp 2018-01-31T12:59:47Z Shinmera: I mean I see no reason for it to not be simple in an implementation, but it doesn't seem guaranteed either. 2018-01-31T13:00:25Z Xach: Shinmera: the description of /result/ suggests it to me. 2018-01-31T13:00:55Z Shinmera: Ah, right. 2018-01-31T13:00:58Z jmercouris: I was quoting the list in which there was a nested coerce... 2018-01-31T13:01:01Z jmercouris: of course it would not work 2018-01-31T13:01:34Z jmercouris: anyways, coerce works, thank you 2018-01-31T13:02:24Z makomo quit (Ping timeout: 248 seconds) 2018-01-31T13:06:17Z Cymew joined #lisp 2018-01-31T13:11:34Z rumbler31 quit (Remote host closed the connection) 2018-01-31T13:16:02Z jmercouris: does uiop read $path? how does it know where a program is? 2018-01-31T13:16:27Z Xach: jmercouris: i think uiop defers to whatever the implementation provides. on sbcl run-program uses execve. 2018-01-31T13:16:47Z Xach: err, hmm, that's not quite right 2018-01-31T13:16:57Z Xach: there's an exec variant that is specified to look in the PATH... 2018-01-31T13:17:04Z jmercouris: https://github.com/fare/asdf/blob/master/uiop/run-program.lisp is full of +implementation flags 2018-01-31T13:17:20Z jmercouris: I guess I'll try to find the ccl ones 2018-01-31T13:17:23Z Xach: execvp and execlp etc 2018-01-31T13:18:26Z mercourisj joined #lisp 2018-01-31T13:21:46Z mercourisj: uiop does seem to be aware of shell specific variables 2018-01-31T13:21:48Z jmercouris quit (Ping timeout: 240 seconds) 2018-01-31T13:21:53Z mercourisj: because if I execute "echo" it knows 2018-01-31T13:22:24Z p_l: it might be calling system(3) 2018-01-31T13:23:17Z Xach: The answers are a few M-.s away, except asdf's many wrapping forms might jump you to the wrong place. 2018-01-31T13:24:35Z mercourisj: Yeah, I've been looking at run-program...I'd need to spend a little bit of time to understand it 2018-01-31T13:24:35Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-31T13:24:45Z mercourisj: there's some indirection 2018-01-31T13:25:30Z hhdave quit (Ping timeout: 260 seconds) 2018-01-31T13:25:35Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T13:25:46Z attila_lendvai joined #lisp 2018-01-31T13:25:46Z attila_lendvai quit (Changing host) 2018-01-31T13:25:46Z attila_lendvai joined #lisp 2018-01-31T13:34:38Z damke joined #lisp 2018-01-31T13:36:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-31T13:39:01Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T13:39:04Z fikka joined #lisp 2018-01-31T13:40:29Z KZiemian joined #lisp 2018-01-31T13:40:36Z red-dot joined #lisp 2018-01-31T13:41:01Z pfdietz: (coerce 'simple-string) will give you a simple-string, since the value returned by (coerce x y) is of type y. 2018-01-31T13:42:28Z KZiemian: It looks like that Sonia Keeyne book is still outside public domain 2018-01-31T13:42:41Z Xach: That is true. 2018-01-31T13:42:45Z KZiemian: any other good material for CLOS? 2018-01-31T13:42:55Z Xach: KZiemian: practical common lisp is freely readable online 2018-01-31T13:43:24Z KZiemian: Xach: asaid ,,Succesfull Lisp'' my main source of Lisp knowledge 2018-01-31T13:43:46Z KZiemian: maybe I should try to read whole SL again? 2018-01-31T13:43:58Z Xach: KZiemian: or read practical common lisp? 2018-01-31T13:44:50Z KZiemian: Xach: I must left reading PCL for sickness of to much theory and to less programming 2018-01-31T13:45:04Z Xach: KZiemian: try again 2018-01-31T13:45:15Z KZiemian: Xach: I stuck in condition and restarts chapter 2018-01-31T13:45:17Z jackdaniel: PCL has a bare minimum of theory (imho) 2018-01-31T13:45:28Z Xach: KZiemian: go to another chapter 2018-01-31T13:45:33Z Shinmera: "practical" is in its name! 2018-01-31T13:45:43Z jackdaniel: that 2018-01-31T13:45:46Z KZiemian: jackdaniel: true 2018-01-31T13:47:26Z KZiemian: Shinmera: that show how few things to program in Lisp I now have 2018-01-31T13:47:48Z KZiemian: Shinmera: mostly is numeric in Numpy or some graphic in C++ 2018-01-31T13:50:42Z KZiemian: I need more practice in CL, definietly 2018-01-31T13:51:56Z damke_ joined #lisp 2018-01-31T13:52:09Z z3t0 joined #lisp 2018-01-31T13:53:22Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T13:54:57Z damke quit (Ping timeout: 264 seconds) 2018-01-31T13:55:22Z m00natic joined #lisp 2018-01-31T13:55:29Z deng_cn joined #lisp 2018-01-31T13:56:37Z z3t0 quit (Ping timeout: 265 seconds) 2018-01-31T14:00:22Z Bike joined #lisp 2018-01-31T14:01:02Z z3t0 joined #lisp 2018-01-31T14:02:09Z mishoo quit (Ping timeout: 246 seconds) 2018-01-31T14:05:21Z z3t0 quit (Ping timeout: 248 seconds) 2018-01-31T14:06:47Z rumbler31 joined #lisp 2018-01-31T14:11:19Z AeroNotix: PCL is imho the best book to learn CL imho. It doesn't put CL on a pedestal like a lot of books do. It treats the language just as a language. Rather than trying to put a halo of mythology around it. 2018-01-31T14:11:59Z Cymew quit (Read error: Connection reset by peer) 2018-01-31T14:12:08Z Cymew joined #lisp 2018-01-31T14:12:53Z dlowe: Honestly, it was the most amazing thing for a long time, but these days it's a solid middle-of-the-road language with a lot of history. 2018-01-31T14:13:34Z yangby joined #lisp 2018-01-31T14:16:03Z AeroNotix: Don't know about that. I use a lot of the new fangled languages and I still find myself thinking how much easier things would be in CL. 2018-01-31T14:16:36Z AeroNotix: literally the only thing I think CL doesnt have going for it is a good standardized concurrency model. there are good libraries which are portable but still. 2018-01-31T14:18:13Z JuanDaugherty joined #lisp 2018-01-31T14:24:25Z nowhereman_ joined #lisp 2018-01-31T14:24:49Z pagnol quit (Quit: Ex-Chat) 2018-01-31T14:25:24Z LiamH joined #lisp 2018-01-31T14:25:37Z fikka quit (Ping timeout: 268 seconds) 2018-01-31T14:26:59Z pjb joined #lisp 2018-01-31T14:27:13Z nowhere_man quit (Ping timeout: 248 seconds) 2018-01-31T14:28:33Z Murii quit (Ping timeout: 264 seconds) 2018-01-31T14:28:33Z azahi quit (Quit: ZNC - http://znc.in) 2018-01-31T14:28:52Z azahi joined #lisp 2018-01-31T14:29:15Z fikka joined #lisp 2018-01-31T14:31:07Z Jesin quit (Quit: Leaving) 2018-01-31T14:36:21Z EvW quit (Ping timeout: 264 seconds) 2018-01-31T14:37:45Z rumbler31: AeroNotix: can you expand on that last part a little? 2018-01-31T14:43:34Z AeroNotix: rumbler31: I just mean that in the CL standard it doesn't standardize any concurrency interface as far as I know (threads, actor model etc) 2018-01-31T14:44:36Z Shinmera: atomicity of operations and the memory model are good things to know for concurrency. 2018-01-31T14:44:36Z attila_lendvai quit (Read error: Connection reset by peer) 2018-01-31T14:45:17Z AeroNotix: Right and if CL specified a higher level interface for say, threads and related functionality (mutexes) a lot of the atomics are implied. 2018-01-31T14:45:21Z dlowe: Yeah, the newer languages all have their own scheduler and so far only CMUCL has done this (that I know of) and it wasn't amazing. 2018-01-31T14:45:48Z heisig: AeroNotix: sometimes I have the impression that concurrency is such a blurred topic, that maybe the best approach is to leave it outside of a language standard... 2018-01-31T14:45:49Z pjb: AeroNotix: I wouldn't say that anu atomocs are implied. 2018-01-31T14:46:22Z pjb: AeroNotix: on the contrary. For example some implementation (having threads), ensure atomicity of hash-table accessess while others don't. 2018-01-31T14:46:33Z attila_lendvai joined #lisp 2018-01-31T14:46:33Z AeroNotix: pjb: depends how you look at it. If it's parallel and you specify a mutex interface the implementation would require some level of atomicity 2018-01-31T14:46:54Z Shinmera: heisig: The problem with that is that it becomes very hard or impossible (under efficiency constraints) to write portable software. 2018-01-31T14:47:02Z AeroNotix: I wasn't around in them days. Were threads even a thing back then? 2018-01-31T14:47:03Z pjb: AeroNotix: even setf of a variable is not always implemented atomicly (eg. on 64-bit machines with 32-bit data bus, you could end with botched data or references!). 2018-01-31T14:47:18Z AeroNotix: that makes sense 2018-01-31T14:47:34Z pjb: AeroNotix: the alternative would be to have locks everywhere! It would be way to slow for most purposes. 2018-01-31T14:47:38Z AeroNotix: What I was meaning is that if there was a standardized concurrency interface a lot of those issues would've needed to be addressed. 2018-01-31T14:48:00Z AeroNotix: even if the standard said that it wasn't expected to be atomic 2018-01-31T14:48:10Z pjb: They would have to be addressed at this interface level. 2018-01-31T14:48:40Z pjb: On the other hand, the application developper usually know what his mutexes are, so he can add only the locks that are needed. 2018-01-31T14:48:55Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-31T14:49:27Z AeroNotix: Right, I agree with that approach. I wasn't meaning that (for example) setf would need to become atomic as part of the standard just that having a concurrency model in the standard that operations like setf would need to have their atomicity explained. 2018-01-31T14:49:35Z heisig: Shinmera: I know. On the other hand, standardizing on concurrency can also screw you at a later time if hardware capabilities change. 2018-01-31T14:49:46Z Shinmera: heisig: Of course. 2018-01-31T14:49:58Z warweasle joined #lisp 2018-01-31T14:50:07Z heisig: Shinmera: Then you would have some bogus requirement in the standard. 2018-01-31T14:50:09Z randomstrangerb joined #lisp 2018-01-31T14:50:13Z AeroNotix: pjb: I've had it said to me before that including a concurrency model in the standard would've been a bad idea. For example if green threads or the actor model was chosen and a new technology appeared and rendered it obsolete 2018-01-31T14:50:23Z AeroNotix: but implementations would need to include it for standard's sake. 2018-01-31T14:50:25Z tfb: AeroNotix: the LispMs had threads (which they called processes if I remember rightly) 2018-01-31T14:50:26Z rumbler31: well so... what, is the argument that languages that have concurrency friendly intrinsics may restrict implementation flexibilty? 2018-01-31T14:51:03Z pjb: AeroNotix: indeed. Imagine you're implementing CL on a GPU. You won't have the same problems at all as when implementing it on a CPU. 2018-01-31T14:51:05Z smurfrobot joined #lisp 2018-01-31T14:51:26Z fikka quit (Ping timeout: 276 seconds) 2018-01-31T14:51:33Z AeroNotix: Right. Perhaps if the API was described broadly enough #'EXECUTE-CONCURRENTLY or something. That doesn't imply any particular model. 2018-01-31T14:51:43Z AeroNotix: (obviously you would need more than that^) 2018-01-31T14:51:49Z pjb: At one time, processors didn't have cache memory and memory barriers. Now they all have it. 2018-01-31T14:52:19Z Shinmera: rumbler31: Yes, though that's only part of it. The other part is that the requirements by the spec may be too harsh or even wrong, affecting not just implementations but also users. 2018-01-31T14:53:35Z AeroNotix: yeah it'd be a poor experience if they added a model which only made sense at the time but was superseded by better technology today 2018-01-31T14:54:07Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T14:54:30Z mishoo joined #lisp 2018-01-31T14:55:14Z iqubic` quit (Remote host closed the connection) 2018-01-31T14:55:35Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-31T14:55:36Z zaquest quit (Read error: Connection reset by peer) 2018-01-31T14:56:44Z deng_cn joined #lisp 2018-01-31T14:57:03Z smurfrobot joined #lisp 2018-01-31T14:57:32Z dlowe: If it were abstracted with a nice interface, the implementation could use the better technology. 2018-01-31T14:57:38Z dlowe: (in theory) 2018-01-31T14:58:17Z AeroNotix: yeah that's what I meant with #'EXECUTE-CONCURRENTLY 2018-01-31T14:58:49Z dlowe: That's a start, but the interface includes stuff to pass data around, locking, etc. 2018-01-31T14:58:57Z dieggsy joined #lisp 2018-01-31T15:00:58Z fikka joined #lisp 2018-01-31T15:01:44Z quazimodo quit (Ping timeout: 252 seconds) 2018-01-31T15:01:45Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-31T15:05:02Z AeroNotix: sure, if you kept it generic enough the underlying implementation could be whatever you needed it to be. That said, some models would need primitives for model-specific operations 2018-01-31T15:07:13Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T15:07:52Z kamog quit (Quit: Leaving.) 2018-01-31T15:07:58Z _cosmonaut_ quit (Ping timeout: 252 seconds) 2018-01-31T15:09:00Z mgsk: How do I do something like this: https://gist.github.com/notmgsk/3204d1ce758dff6702b3389a33ecc5b0 I want START to begin at zero, and then increment it at the end of the loop 2018-01-31T15:09:52Z rippa joined #lisp 2018-01-31T15:10:18Z fikka joined #lisp 2018-01-31T15:11:02Z JuanDaugherty: http://www.gigamonkeys.com/book/loop-for-black-belts.html 2018-01-31T15:11:54Z dlowe: mgsk: if you do multiple FOR clauses, they are executed in parallel 2018-01-31T15:12:11Z dlowe: so you can just add "for start from 0" instead of WITH 2018-01-31T15:12:22Z Amplituhedron joined #lisp 2018-01-31T15:14:39Z mgsk: But sbcl complains that I'm duplicating the variable START in INTO form 2018-01-31T15:16:39Z dlowe: ah, I see. Maybe you want collect (1+ (pkg-time pkg)) into start 2018-01-31T15:17:02Z dlowe: you don't want it incremented, you just want one more than the return value 2018-01-31T15:17:17Z dlowe: and actually, that makes no effing sense because collect builds a list 2018-01-31T15:17:29Z mgsk: Right, I meant to use summing, but the problem is the same 2018-01-31T15:17:46Z mgsk: Begin with start = 0, then at the end of the loop, set start to start = start + something 2018-01-31T15:18:12Z dlowe: for start = 0 then (1+ (pkg-time pkg)) 2018-01-31T15:19:21Z dlowe: that will teach me to not read carefully 2018-01-31T15:20:17Z oleo joined #lisp 2018-01-31T15:20:45Z sjl joined #lisp 2018-01-31T15:24:28Z mgsk: dlowe: (loop for i in '(1 2 3) for start = 0 then (+ start i) do (format t "~D~%" start)) 2018-01-31T15:24:46Z Jesin joined #lisp 2018-01-31T15:24:53Z mgsk: Ideally this would result in => 0, 1, 3 2018-01-31T15:24:58Z mgsk: I'm not quite there yet :D 2018-01-31T15:25:15Z smurfrobot joined #lisp 2018-01-31T15:25:35Z khisanth_ joined #lisp 2018-01-31T15:25:46Z dlowe: uh, how? 2018-01-31T15:26:29Z Cymew quit (Remote host closed the connection) 2018-01-31T15:27:05Z dlowe: you want to add the *previous* value, eh? 2018-01-31T15:28:17Z dlowe: (loop for i in '(1 2 3) with start = 0 do (format t "~d~%" start) (incf start i)) 2018-01-31T15:28:37Z attila_lendvai quit (Quit: Leaving.) 2018-01-31T15:29:04Z Jesin quit (Remote host closed the connection) 2018-01-31T15:29:23Z Khisanth quit (Ping timeout: 256 seconds) 2018-01-31T15:29:40Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-31T15:30:14Z KZiemian: see you 2018-01-31T15:30:16Z mgsk: dlowe: (loop for i in '(1 2 3) with start = 0 do (format t "~D~%" start) (incf start i)) 2018-01-31T15:30:21Z KZiemian quit (Quit: Page closed) 2018-01-31T15:31:24Z dlowe: mgsk: format directives are case-insensitive 2018-01-31T15:32:16Z mgsk: dlowe: ignore me. I don't even know why I pasted the same thing you wrote. 2018-01-31T15:32:24Z mgsk: I might be having a mental breakdown 2018-01-31T15:32:43Z Cymew joined #lisp 2018-01-31T15:32:47Z dlowe: you're suffering from a parenthesis deficiency. Only more lisp can help you. 2018-01-31T15:33:31Z Mandus joined #lisp 2018-01-31T15:35:28Z FreeBirdLjj joined #lisp 2018-01-31T15:36:24Z mercourisj: Alright, so I have within my program something like (defvar some-system-path (calculate-default-path)), when I compile my lisp image, the path calculated on my machine is persisted into the image 2018-01-31T15:37:03Z mercourisj: I want this software to work on other users computers as well, so somehow I should defer (calculate-default-path) to when they launch the program 2018-01-31T15:37:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T15:37:21Z mercourisj: because my defvar is a top level form, I was thinking of writing a macro that does this, does this seem like a good idea or no? 2018-01-31T15:38:10Z mercourisj: a macro that will take something like (def-deferred-var var-name var-initialization-function), and var-initialization-function will be invoked on startup to setf some defvar 2018-01-31T15:38:21Z Xach: that is all right 2018-01-31T15:39:24Z AeroNotix: mercourisj: could also setf it in your initialization function (e.g. #'MAIN) 2018-01-31T15:39:39Z mercourisj: ok, I'll go down that path then, thanks for your opinion 2018-01-31T15:39:58Z mercourisj: AeroNotix: Yeah, I was going to put them in a list of vars that will be iterated calling their initalization function 2018-01-31T15:40:08Z mercourisj: AeroNotix: Something akin to the approach for the defcommand macro which also maintains a list of commands 2018-01-31T15:40:31Z AeroNotix: That said, something something globals are bad 2018-01-31T15:41:02Z AeroNotix: mercourisj: is there no way your program could be refactored to not need the global defvar? 2018-01-31T15:41:03Z mercourisj: Yeah yeah, but compromises must be made in favor of emacsyness 2018-01-31T15:41:28Z mercourisj: well, consider *global-map* for the global key map, I guess yes, technically it is possible, but it doesn't make sense 2018-01-31T15:41:40Z dlowe: yeah, but so is threading a super-common piece of data through each and every function 2018-01-31T15:41:46Z mercourisj: also, you had to pass around references of your browser object to every command 2018-01-31T15:41:48Z dlowe: (er, is bad too) 2018-01-31T15:41:59Z AeroNotix: mercourisj: not wanting to start a war but emulating emacs style is a bad practice. Elisp is a terrible lisp and perpetuates bad style 2018-01-31T15:42:30Z mercourisj: You are correct, but, compromises must be made :D 2018-01-31T15:42:41Z mercourisj: I broke traditions already, maybe the program will evolve this away with time 2018-01-31T15:42:42Z AeroNotix: mercourisj: yep, understand. I've said my piece :) 2018-01-31T15:42:46Z mercourisj: and I'll get further from Emacs 2018-01-31T15:47:33Z zaquest joined #lisp 2018-01-31T15:48:51Z z3t0 joined #lisp 2018-01-31T15:49:32Z Murii joined #lisp 2018-01-31T15:53:32Z z3t0 quit (Ping timeout: 255 seconds) 2018-01-31T15:53:56Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T15:54:21Z Jesin joined #lisp 2018-01-31T15:56:27Z deng_cn joined #lisp 2018-01-31T15:59:39Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T16:07:12Z z3t0 joined #lisp 2018-01-31T16:08:10Z heisig quit (Quit: Leaving) 2018-01-31T16:09:03Z drewc quit (Ping timeout: 248 seconds) 2018-01-31T16:11:38Z z3t0 quit (Ping timeout: 256 seconds) 2018-01-31T16:13:07Z d4ryus quit (Quit: WeeChat 2.0.1) 2018-01-31T16:14:51Z d4ryus joined #lisp 2018-01-31T16:15:50Z khisanth_ quit (Ping timeout: 260 seconds) 2018-01-31T16:16:10Z orivej quit (Ping timeout: 256 seconds) 2018-01-31T16:16:41Z Cymew joined #lisp 2018-01-31T16:17:09Z red-dot joined #lisp 2018-01-31T16:20:48Z pjb: mgsk: with clauses are evaluated before for clauses, it would be preferable to write them first. 2018-01-31T16:20:49Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T16:20:52Z Timzi joined #lisp 2018-01-31T16:21:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T16:21:20Z EvW joined #lisp 2018-01-31T16:21:48Z brendyn quit (Ping timeout: 240 seconds) 2018-01-31T16:22:27Z drewc joined #lisp 2018-01-31T16:22:35Z Timzi: does anybody here run slime on a remote machine? I'm trying to connect to the remote repl, but my /tmp/slime.* file is created on the remote machine and tramp (or swank?) isn't recognizing it's not on my local 2018-01-31T16:22:37Z Cymew joined #lisp 2018-01-31T16:23:31Z pjb: Timzi: never had a problem M-x slime-connect to connect to a remote, as long as swank-server was launched. 2018-01-31T16:23:56Z Cymew quit (Read error: Connection reset by peer) 2018-01-31T16:24:15Z Cymew joined #lisp 2018-01-31T16:24:26Z paule32: ö 2018-01-31T16:24:33Z paule32: pjb: hi 2018-01-31T16:24:38Z turkja quit (Ping timeout: 268 seconds) 2018-01-31T16:24:42Z Timzi: oh this could be my problem, I'm trying to start it with just M-x slime 2018-01-31T16:24:48Z Timzi: one sec while I check that out 2018-01-31T16:25:01Z pjb: https://codeshare.io/anXKbY 2018-01-31T16:25:08Z paule32: pjb: i done work successfull - clisp with readline and cffi 2018-01-31T16:25:18Z pjb: paule32: great. 2018-01-31T16:25:29Z pjb: paule32: cffi is not needed to compile clisp with readline. 2018-01-31T16:25:33Z paule32: pjb: slime works, too in emacs 2018-01-31T16:25:35Z paule32: no 2018-01-31T16:25:39Z paule32: but later 2018-01-31T16:25:46Z pjb: ok 2018-01-31T16:26:15Z paule32: the compilation of readline was a little bit tricky 2018-01-31T16:27:00Z paule32: the compiler source makefile run, and create a -fas and .lib file - staticaly 2018-01-31T16:27:25Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-31T16:27:29Z paule32: so i solve the issue with rl_readline_state 2018-01-31T16:28:02Z paule32: i comment the line "ulong rl_readline_state" in the the readline.h header file 2018-01-31T16:28:31Z paule32: and compile with lisp, so i had the automatic created readline.c file 2018-01-31T16:28:55Z paule32: now, i go on, and do a manual compile: gcc -O2 -c readline.c 2018-01-31T16:28:59Z khisanth_ joined #lisp 2018-01-31T16:29:09Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-31T16:29:12Z yangby quit (Quit: Go out for a walk and buy a drink.) 2018-01-31T16:29:12Z z3t0 joined #lisp 2018-01-31T16:29:15Z Cymew quit (Ping timeout: 260 seconds) 2018-01-31T16:29:20Z paule32: then doing a next "make" run, compiles all fine 2018-01-31T16:29:24Z paule32: puh 2018-01-31T16:29:28Z paule32: what a work 2018-01-31T16:29:30Z paule32: :-) 2018-01-31T16:29:47Z paule32: now, i have a working clisp standard system 2018-01-31T16:30:03Z paule32: i go to eat a little bit 2018-01-31T16:30:10Z paule32: so i am in bg 2018-01-31T16:30:29Z Cymew joined #lisp 2018-01-31T16:33:00Z FreeBirdLjj joined #lisp 2018-01-31T16:33:35Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-31T16:33:53Z Timzi: pjb: that got me up and running, thanks! 2018-01-31T16:34:41Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T16:35:37Z smurfrobot joined #lisp 2018-01-31T16:36:42Z Cymew joined #lisp 2018-01-31T16:38:41Z FreeBirdLjj quit (Ping timeout: 276 seconds) 2018-01-31T16:38:45Z pjb: paule32: you didn't understand at all what I meant. I said to compile CLISP itself, not some library. 2018-01-31T16:39:18Z pjb: paule32: in the build instruction of clisp, it's explained how to configure it to link with readline, so that clisp can provide history navigation in its REPL on the terminal. 2018-01-31T16:41:17Z Cymew quit (Ping timeout: 268 seconds) 2018-01-31T16:41:25Z pjb: paule32: but basically, if libreadline is available it will be automatic. You can disable it with ./configure --without-readline 2018-01-31T16:42:08Z pjb: paule32: on the other hand, if libreadline is not in a standard place, you can indicate it with ./configure --with-libtermcap-prefix=DIR --with-libreadline-prefix[=DIR] search for libreadline in DIR/include and DIR/lib 2018-01-31T16:42:08Z pjb: 2018-01-31T16:42:20Z pjb: why the fuck do I have to read the READMES for you? 2018-01-31T16:42:55Z Cymew joined #lisp 2018-01-31T16:44:50Z schweers quit (Ping timeout: 255 seconds) 2018-01-31T16:44:53Z FreeBirdLjj joined #lisp 2018-01-31T16:45:35Z shifty quit (Ping timeout: 240 seconds) 2018-01-31T16:47:35Z Cymew quit (Ping timeout: 256 seconds) 2018-01-31T16:47:50Z fikka joined #lisp 2018-01-31T16:49:00Z Cymew joined #lisp 2018-01-31T16:50:33Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-31T16:51:10Z FreeBirdLjj joined #lisp 2018-01-31T16:53:18Z EvW quit (Ping timeout: 240 seconds) 2018-01-31T16:53:34Z Cymew quit (Ping timeout: 252 seconds) 2018-01-31T16:54:21Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T16:55:14Z Cymew joined #lisp 2018-01-31T16:55:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-31T16:56:32Z deng_cn joined #lisp 2018-01-31T16:59:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T17:00:03Z ebzzry joined #lisp 2018-01-31T17:00:13Z ebzzry: Does CL have an equivalent of Racket’s slideshow? 2018-01-31T17:00:32Z Xach: ebzzry: what does racket's slideshow do? 2018-01-31T17:00:49Z ebzzry: Xach: they are for slideshow presentations. 2018-01-31T17:00:52Z smurfrobot quit (Remote host closed the connection) 2018-01-31T17:00:56Z hiroaki quit (Ping timeout: 256 seconds) 2018-01-31T17:00:59Z pjb: ebzzry: No. 2018-01-31T17:01:02Z Xach: ebzzry: I don't know of anything like that. 2018-01-31T17:01:17Z Xach: Dan Barlow had a CLX hack many, many years ago 2018-01-31T17:01:21Z pjb: ebrasca: CL is a programming language. Racket is a program, including implementations of programming languages. They don't provide anything in common. 2018-01-31T17:01:27Z Cymew joined #lisp 2018-01-31T17:01:54Z pjb: ebrasca: slideshows are done in emacs… 2018-01-31T17:02:02Z ebzzry: Is there anything close to using CL as the language for displaying these slideshows? Or, really no? 2018-01-31T17:02:29Z Xach: Not that I've heard of 2018-01-31T17:02:42Z antoszka: ebzzry: I'm sure you could hack up something quick using the new GL or Qt libraries, but there's nothing ready-made for slideshows that comes to mind 2018-01-31T17:02:57Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T17:03:44Z smurfrobot joined #lisp 2018-01-31T17:04:09Z antoszka: ebzzry: maybe even this: https://github.com/vydd/sketch 2018-01-31T17:04:21Z ebzzry: antoszka: oh, sketch. hm. 2018-01-31T17:04:34Z antoszka: (a random thought, probably not the best) 2018-01-31T17:04:46Z ebzzry: By the way, does anyone know more about the CL Repl app on the Google Play Store? 2018-01-31T17:04:52Z ebzzry: antoszka: thanks! 2018-01-31T17:05:27Z ebzzry: what I only know is that is uses EQL underneath. 2018-01-31T17:05:35Z antoszka: ebzzry: *and* Qt? 2018-01-31T17:05:51Z antoszka: I think it's EQL married to Qt, but jackdaniel will know more. 2018-01-31T17:06:07Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T17:06:48Z Shinmera: EQL is ECL's Qt bindings. 2018-01-31T17:08:24Z ghard joined #lisp 2018-01-31T17:08:27Z antoszka: ah, yeah, mixed names up 2018-01-31T17:09:08Z jsfiidsf joined #lisp 2018-01-31T17:09:46Z varjagg joined #lisp 2018-01-31T17:10:22Z Cymew joined #lisp 2018-01-31T17:10:29Z jsfiidsf: why this doesn't print anything? https://pastebin.com/cdB5ggg3 2018-01-31T17:12:20Z jsfiidsf quit (Client Quit) 2018-01-31T17:12:25Z pjb: jsfiidsf: because there's not any printing function called. 2018-01-31T17:12:35Z didi: Xach: News on the SLIME alternative front? 2018-01-31T17:13:05Z Xach: didi: none to speak of 2018-01-31T17:13:10Z kamog joined #lisp 2018-01-31T17:13:14Z didi: Xach: Thanks. 2018-01-31T17:13:40Z Karl_Dscc joined #lisp 2018-01-31T17:14:19Z ebzzry: ok 2018-01-31T17:14:45Z Cymew quit (Ping timeout: 260 seconds) 2018-01-31T17:16:13Z smurfrobot quit (Remote host closed the connection) 2018-01-31T17:16:30Z Cymew joined #lisp 2018-01-31T17:16:35Z drewc quit (Ping timeout: 240 seconds) 2018-01-31T17:17:08Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T17:17:51Z red-dot joined #lisp 2018-01-31T17:18:55Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-31T17:20:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T17:21:06Z fikka joined #lisp 2018-01-31T17:22:31Z Karl_Dscc quit (Remote host closed the connection) 2018-01-31T17:22:43Z Cymew joined #lisp 2018-01-31T17:24:31Z asarch joined #lisp 2018-01-31T17:24:37Z mfiano quit (Quit: WeeChat 1.9.1) 2018-01-31T17:24:51Z moei joined #lisp 2018-01-31T17:25:04Z Cymew_ joined #lisp 2018-01-31T17:25:17Z whoman: sigh. people will always want alternatives. what a world. but variety is the spice of life perhaps 2018-01-31T17:26:11Z whoman: i could only imagine how productive someone could be with eating/spewing lisp code with slime and paredit and emacs ; probably faster than thought. there is also a paredit alt called something like that too. 2018-01-31T17:27:09Z mfiano joined #lisp 2018-01-31T17:27:15Z Cymew quit (Ping timeout: 256 seconds) 2018-01-31T17:28:45Z randomstrangerb quit (Ping timeout: 260 seconds) 2018-01-31T17:28:51Z drewc joined #lisp 2018-01-31T17:29:23Z ebzzry: thanks 2018-01-31T17:29:41Z ebzzry: I wonder how do I load quicklisp on that thing. 2018-01-31T17:30:00Z Cymew_ quit (Ping timeout: 268 seconds) 2018-01-31T17:30:01Z randomstrangerb joined #lisp 2018-01-31T17:30:55Z Cymew joined #lisp 2018-01-31T17:31:21Z Xach: heh 2018-01-31T17:32:12Z whoman: hmm. depends on paths. the local .app folders/dirs should be writable ... 2018-01-31T17:32:20Z whoman: not sure what it thinks about $HOME and that, tho 2018-01-31T17:35:22Z kamog quit (Quit: Leaving.) 2018-01-31T17:35:33Z Cymew quit (Ping timeout: 268 seconds) 2018-01-31T17:35:59Z jjjjjj joined #lisp 2018-01-31T17:36:44Z AeroNotix: What SLIME alternative? 2018-01-31T17:36:50Z jjjjjj: new to lisp (from python), how to update this function? https://pastebin.com/cJVzSACd 2018-01-31T17:37:13Z Cymew joined #lisp 2018-01-31T17:37:32Z beach: jjjjjj: It worked before. 2018-01-31T17:38:11Z ebrasca: pjb: What do you mean with slideshows? 2018-01-31T17:38:15Z jjjjjj: beach: I want "qaqqq" to match the "a" in "apple" but it doesn't, not very good with lisp so not sure how to update the function... 2018-01-31T17:39:12Z jjjjjj: it should take each guess and iterate through all characters in word.. 2018-01-31T17:39:28Z dtornabene quit (Quit: Leaving) 2018-01-31T17:39:37Z MrMc quit (Remote host closed the connection) 2018-01-31T17:39:42Z beach: It seems you don't have a very good specification of what you want. Where did you find this problem? 2018-01-31T17:40:20Z jjjjjj: beach: I made it up, I'm trying to learn lisp through small practice programs, hangman is a good starting point 2018-01-31T17:40:22Z pjb: ebrasca: https://www.youtube.com/watch?v=S0Ley_QoBHo 2018-01-31T17:41:35Z Cymew quit (Ping timeout: 260 seconds) 2018-01-31T17:42:07Z ebrasca: pjb: I thinkg you confused someone else with me. 2018-01-31T17:43:15Z pjb: jjjjjj: you have something in your cranial box. It's called a brain. You must start it up. Don't be afraid, it won't break, it won't wear. It'll be a little magical. Once you brains start working, you'll be able to think, and even to program! 2018-01-31T17:43:57Z beach: jjjjjj: If you don't care about characters that don't match, then just iterate through every character in WORD. 2018-01-31T17:43:58Z pjb: jjjjjj: writing programs has nothing to do with lisp, just reasoning. 2018-01-31T17:44:49Z smurfrobot joined #lisp 2018-01-31T17:45:13Z beach: jjjjjj: Maybe if you describe what role you want the variables WORD and GUESS to have, then it might be easier to help. 2018-01-31T17:47:00Z jjjjjj: WORD - the word to be guessed, GUESS - a list of current guesses by the user 2018-01-31T17:47:26Z pjb: jjjjjj: a list or a set? 2018-01-31T17:47:29Z jjjjjj: i'm not familiar with basic lisp idioms.. 2018-01-31T17:47:41Z pjb: jjjjjj: what if the users guesses twice #\a? 2018-01-31T17:47:48Z jjjjjj: a list of characters that the user has guessed are in the word 2018-01-31T17:48:11Z jjjjjj: pjb: well, a set, so duplicate guesses are ignored 2018-01-31T17:48:23Z pjb: jjjjjj: does it need to be a list, or can it be a vector or a string? 2018-01-31T17:48:36Z jjjjjj: pjb: whatever works.. 2018-01-31T17:48:42Z paule32: hello 2018-01-31T17:49:05Z pjb: Ok. Now the problem is that you're approaching from the wrong direction. 2018-01-31T17:49:08Z jjjjjj: pjb: I could do it easily in python but still don't know that much lisp.. 2018-01-31T17:49:13Z paule32: how can i stop output on console in init mode - the time where the packages load 2018-01-31T17:49:56Z pjb: jjjjjj: You see, you asked about that the other day, from your specifications I gave you this function in your paste. But you didn't understand it at all, since you are not able anymore than days ago, to modify to match your refined specifixations. 2018-01-31T17:50:21Z fikka quit (Ping timeout: 268 seconds) 2018-01-31T17:50:59Z pjb: jjjjjj: given a specification, we can imagine algorithms, and with the rich CL libraries, we can implement those algorithms in a concise and efficient way, but in a way, it's an opaque way. If you don't know the same libraries, you cannot understand it. 2018-01-31T17:51:11Z paule32: pjb: don't worry, i read docs and found --quiet and --silent 2018-01-31T17:51:16Z paule32: but they don't work 2018-01-31T17:51:23Z AeroNotix: jjjjjj: http://www.gigamonkeys.com/book/ 2018-01-31T17:51:30Z AeroNotix: read this and come back 2018-01-31T17:51:39Z pjb: jjjjjj: so my suggestion now would be to start learning Common Lisp, by reading a tutorial, learning about the data types provided by Common Lisp, and the library functions provided to manipulate those data types. 2018-01-31T17:52:05Z pjb: jjjjjj: then, when you will have that basis, we will be able to talk about algorithms and how to best implement them using those opreators. 2018-01-31T17:52:36Z jjjjjj: AeroNotix: thanks for the link 2018-01-31T17:52:37Z jjjjjj: pjb: ok thanks 2018-01-31T17:52:39Z pjb: paule32: compile, load and quickload have a :verbose (and sometimes a :print) key parameters. 2018-01-31T17:52:46Z Xach: That is a good introductory book, but you need not read the whole thing before you come back with more questions. 2018-01-31T17:53:00Z pjb: jjjjjj: cf. http:/cliki.net/Online+Tutorial 2018-01-31T17:54:00Z jjjjjj: thx 2018-01-31T17:54:08Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T17:54:40Z paule32: pjb: you cross over jjjjjj ? 2018-01-31T17:54:52Z pjb: jjjjjj: this is how I learned programming originally: I took the language reference manual, and for each new operator I learned, I wrote a little program to exercise it, to see how it worked. Only after that, I started trying to implement my own programs (and games). 2018-01-31T17:55:06Z z3t0 joined #lisp 2018-01-31T17:56:07Z jjjjjj: i don't know how much i can map my existing python knowledge to lisp, that could save time 2018-01-31T17:56:19Z Xach: jjjjjj: in general it will not. 2018-01-31T17:56:24Z deng_cn joined #lisp 2018-01-31T17:56:47Z drcode quit (Ping timeout: 248 seconds) 2018-01-31T17:58:33Z Murii quit (Ping timeout: 264 seconds) 2018-01-31T18:00:29Z pjb: jjjjjj: python is quite alien to lisp. For example, it is strongly based on statements, while in lisp there are only expressions. 2018-01-31T18:01:01Z pjb: jjjjjj: python is a OO programming language, but OO is only one abstration tool in lisp, amongst many others. 2018-01-31T18:01:37Z fikka joined #lisp 2018-01-31T18:02:02Z Denommus joined #lisp 2018-01-31T18:03:02Z osune joined #lisp 2018-01-31T18:03:07Z warweasle: pjb: I had to use python recently. It does some things well...but I can't get over the whitesapce as a delimiter. 2018-01-31T18:03:08Z jjjjjj: pjb: ok. but out of interest, how would you solve this problem in lisp: iterate each char in one string over another, returning matching chars or "-" as appropriate. I don't think I can solve it with my limited knowledge of lisp, but if I saw the solution I could learn from it.. 2018-01-31T18:03:21Z warweasle: Also, we need to port blender from python to lisp. 2018-01-31T18:03:33Z pjb: jjjjjj: just as you said it in English! 2018-01-31T18:03:48Z Bike: jjjjjj: isn't that what you already did? 2018-01-31T18:04:05Z Bike: apple and qaqqq, no matches because a doesn't match q, p doesn't match a, etc. 2018-01-31T18:04:23Z jjjjjj: I mean, iterating each char over the whole of the other string. the last solution you gave me didn't do that. 2018-01-31T18:04:36Z jjjjjj: sry 2018-01-31T18:04:49Z Xach: jjjjjj: POSITION can tell you where an element occurs in a string. 2018-01-31T18:04:50Z Bike: so what would "aaa" and "aaa" return? 2018-01-31T18:05:19Z pjb: (let ((word "apple") (guesses "qa")) (loop for letter across word if (find letter guesses) collect letter else collect #\-)) #| --> (#\a #\- #\- #\- #\-) |# 2018-01-31T18:05:20Z jjjjjj: "aaa" and "aaa" -> "aaa", "apple" and "aqqq" -> "a----", "apple" and "qaqqq" -> "a----" 2018-01-31T18:05:36Z jjjjjj: pjb: thank you 2018-01-31T18:05:37Z milanj quit (Quit: This computer has gone to sleep) 2018-01-31T18:06:11Z alexmlw joined #lisp 2018-01-31T18:06:22Z pjb: Don't thank me: LOOP is the most complex operator in CL: you've not learned anything. 2018-01-31T18:06:27Z pjb: I told you, go read a tutorial! 2018-01-31T18:06:57Z pjb: jjjjjj: also, start up your brains, it's still shut down. 2018-01-31T18:08:49Z milanj joined #lisp 2018-01-31T18:08:56Z Amplituhedron joined #lisp 2018-01-31T18:09:24Z jjjjjj quit (Quit: Page closed) 2018-01-31T18:09:35Z m00natic quit (Remote host closed the connection) 2018-01-31T18:16:12Z smurfrobot quit (Remote host closed the connection) 2018-01-31T18:16:54Z karswell_ quit (Read error: Connection reset by peer) 2018-01-31T18:17:58Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T18:18:39Z Timzi quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-31T18:18:41Z red-dot joined #lisp 2018-01-31T18:19:47Z didi left #lisp 2018-01-31T18:22:13Z python476 quit (Ping timeout: 256 seconds) 2018-01-31T18:22:31Z panji joined #lisp 2018-01-31T18:25:49Z Cymew joined #lisp 2018-01-31T18:28:01Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-31T18:30:26Z ebzzry quit (Ping timeout: 268 seconds) 2018-01-31T18:31:40Z Cymew quit (Ping timeout: 268 seconds) 2018-01-31T18:32:05Z pythosnek joined #lisp 2018-01-31T18:33:47Z mlf joined #lisp 2018-01-31T18:34:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T18:35:16Z makomo joined #lisp 2018-01-31T18:36:19Z fikka joined #lisp 2018-01-31T18:39:21Z Cymew joined #lisp 2018-01-31T18:41:23Z pythosnek quit (Remote host closed the connection) 2018-01-31T18:42:34Z milanj quit (Quit: This computer has gone to sleep) 2018-01-31T18:43:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T18:47:26Z python476 joined #lisp 2018-01-31T18:48:50Z mercourisj quit (Remote host closed the connection) 2018-01-31T18:49:08Z jmercouris joined #lisp 2018-01-31T18:56:13Z jmercouris: I'm trying to determine if a symbol points to a function, I tried typep, but a functions symbol is of course just a symbol 2018-01-31T18:57:00Z jmercouris: how can I determine that 'print is a funcallable thing 2018-01-31T18:57:18Z jmercouris: and that (defvar avocado "") 'avocado is not 2018-01-31T18:57:26Z White_Flame: (symbol-function sym) ? 2018-01-31T18:57:35Z White_Flame: of course, there are also LABELS and FLETs 2018-01-31T18:58:13Z jmercouris: Okay so that will throw a condition if not a function 2018-01-31T18:58:17Z jmercouris: interesting, that could work 2018-01-31T18:58:31Z jmercouris: or "raise" a condition, not sure what the correct nomenclature is 2018-01-31T18:59:28Z sjl: clhs funcall 2018-01-31T18:59:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_funcal.htm 2018-01-31T18:59:30Z White_Flame: there's fdefinition, fboundp, and a few others, but I think they all "signal" a condition if it's not a function 2018-01-31T18:59:31Z sjl: > function---a function designator 2018-01-31T18:59:48Z sjl: the glossary for function designator describes what that is 2018-01-31T19:00:42Z sjl: I don't think there's a function-designator-p defined by the standard, you'll probably have to implement it yourself 2018-01-31T19:01:06Z jmercouris: seems pretty doable using symbol-function 2018-01-31T19:01:14Z Cymew joined #lisp 2018-01-31T19:01:18Z jmercouris: thank you both for your help 2018-01-31T19:01:54Z milanj joined #lisp 2018-01-31T19:02:00Z White_Flame: actually, fboundp returns NIL and does not signal on defvars 2018-01-31T19:02:32Z White_Flame: hm, I guess fboundp does what you want; messed up testing it before 2018-01-31T19:03:22Z jmercouris: yes, it does 2018-01-31T19:03:23Z phoe: a function designator is one of the following: a function object, a symbol, or a list (SETF FOO) where FOO is a symbol. 2018-01-31T19:03:26Z jmercouris: nice 2018-01-31T19:03:29Z z3t0 quit (Remote host closed the connection) 2018-01-31T19:03:48Z jmercouris: my usage is really basic, it's part of a macro 2018-01-31T19:03:52Z phoe: I believe in the third one, despite the standard not menitioning it. 2018-01-31T19:04:16Z jmercouris: so, I don't have to worry about hitting any edge cases as it will only be my own code 2018-01-31T19:04:32Z White_Flame: from the spec: fboundp is sometimes used to ``guard'' an access to the function cell, as in: (if (fboundp x) (symbol-function x)) 2018-01-31T19:04:42Z White_Flame: which smells like your use case 2018-01-31T19:05:09Z jmercouris: Yes, that is indeed perfect! 2018-01-31T19:05:16Z jmercouris: Thanks! 2018-01-31T19:05:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T19:06:14Z sjl: phoe: not sure that last one is correct. (funcall '(setf car) :foo (list 1 2 3)) fails in SBCL with: 2018-01-31T19:06:16Z sjl: The value (SETF CAR) is not of type (OR FUNCTION SYMBOL) when binding FUNCTION 2018-01-31T19:07:05Z nox2 quit (Ping timeout: 240 seconds) 2018-01-31T19:07:12Z Cymew joined #lisp 2018-01-31T19:07:21Z White_Flame: function name includes (setf ...), function designator does not 2018-01-31T19:07:29Z phoe: White_Flame: ooh 2018-01-31T19:07:29Z sjl: right 2018-01-31T19:07:31Z phoe: thanks. 2018-01-31T19:07:37Z phoe: nonetheless, it seems like an omission. 2018-01-31T19:08:23Z sjl: jmercouris: also might be worth checking what alexandria's ensure-function does 2018-01-31T19:08:31Z sjl: https://gitlab.common-lisp.net/alexandria/alexandria/blob/master/functions.lisp 2018-01-31T19:08:33Z White_Flame: phoe: I was unaware of the distinction until now as well 2018-01-31T19:10:05Z phoe: sjl: it isn't following the standard though. 2018-01-31T19:10:21Z phoe: function designator is not (or function function-name), it's (or function symbol). 2018-01-31T19:10:39Z phoe: but I can understand *why* it does it, to work around exactly this issue. 2018-01-31T19:10:39Z sjl: right 2018-01-31T19:11:39Z AeroNotix: is xelf usable or more of a toy? 2018-01-31T19:11:40Z sjl: I wouldn't say it's "not following the standard" because it's not claiming to be function-designator-p 2018-01-31T19:11:45Z Cymew quit (Ping timeout: 268 seconds) 2018-01-31T19:11:51Z phoe: sjl: yes, I agree. 2018-01-31T19:11:57Z phoe: AeroNotix: #lispgames will tell you more methinks. 2018-01-31T19:12:03Z sjl: it's doing its own thing, and that happens to be something like jmercouris probably wants 2018-01-31T19:12:09Z phoe: yep. 2018-01-31T19:12:27Z phoe: I mean - it accepts an argument named FUNCTION-DESIGNATOR that does not have to be a function designator despite its name. 2018-01-31T19:12:36Z phoe: That's a protocol violation, strictly speaking. 2018-01-31T19:13:11Z sjl: ah, I didn't noticed the parameter name 2018-01-31T19:13:12Z phoe: Look at its docstring, too. 2018-01-31T19:13:13Z sjl: yeah that's odd 2018-01-31T19:13:21Z Cymew joined #lisp 2018-01-31T19:13:26Z phoe: It makes a logical distinction, it's either a function or a function *name*, not designator. 2018-01-31T19:13:53Z phoe: But I can perfectly see why it is like that, and I don't want to change that behaviour. 2018-01-31T19:14:18Z makomo quit (Quit: WeeChat 1.9.1) 2018-01-31T19:17:40Z Cymew quit (Ping timeout: 252 seconds) 2018-01-31T19:18:48Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T19:19:02Z nowhere_man joined #lisp 2018-01-31T19:19:31Z red-dot joined #lisp 2018-01-31T19:22:18Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-01-31T19:22:37Z nox2 joined #lisp 2018-01-31T19:24:27Z Folkol joined #lisp 2018-01-31T19:25:18Z random-nick quit (Ping timeout: 240 seconds) 2018-01-31T19:25:30Z Cymew joined #lisp 2018-01-31T19:26:24Z Cymew quit (Read error: Connection reset by peer) 2018-01-31T19:26:35Z Cymew joined #lisp 2018-01-31T19:28:10Z LocaMocha quit (Ping timeout: 240 seconds) 2018-01-31T19:30:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T19:31:54Z panji left #lisp 2018-01-31T19:32:40Z Cymew joined #lisp 2018-01-31T19:33:15Z drcode joined #lisp 2018-01-31T19:36:26Z eivarv joined #lisp 2018-01-31T19:37:05Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T19:37:30Z Folkol quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-31T19:37:55Z Chream joined #lisp 2018-01-31T19:38:44Z Cymew joined #lisp 2018-01-31T19:40:27Z drcode quit (Ping timeout: 240 seconds) 2018-01-31T19:42:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T19:46:16Z Cymew joined #lisp 2018-01-31T19:46:35Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-31T19:50:24Z Cymew quit (Ping timeout: 246 seconds) 2018-01-31T19:50:55Z jackdaniel: hey, anyone having ACL around? I'd appreciate trying to compile CLX (from develop branch) on it 2018-01-31T19:50:59Z jackdaniel: related issue: https://github.com/sharplispers/clx/issues/48 2018-01-31T19:51:17Z jackdaniel: https://github.com/sharplispers/clx/tree/develop (thanks!) 2018-01-31T19:52:26Z Cymew joined #lisp 2018-01-31T19:53:16Z drcode joined #lisp 2018-01-31T19:54:05Z shka: hello 2018-01-31T19:54:20Z phoe: hey 2018-01-31T19:54:39Z shka: is manually calling initialize-instance to reset state of object acceptable? 2018-01-31T19:54:51Z phoe: clhs initialize-instance 2018-01-31T19:54:51Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_init_i.htm 2018-01-31T19:55:14Z shka: phoe: would it shock you, if i already read it? 2018-01-31T19:55:41Z phoe: it wasn't exactly for you, it's for me and everyone else who wants to click it 2018-01-31T19:56:40Z random-nick joined #lisp 2018-01-31T19:56:42Z phoe: the standard says nothing if it's permitted and/or intended for programmers to explicitly call initialize-instance in client code. 2018-01-31T19:56:45Z Amplituhedron quit (Read error: Connection reset by peer) 2018-01-31T19:56:51Z Cymew quit (Ping timeout: 256 seconds) 2018-01-31T19:57:06Z shka: i guess it is permitted 2018-01-31T19:57:18Z phoe: clhs 7.1 2018-01-31T19:57:18Z specbot: Object Creation and Initialization: http://www.lispworks.com/reference/HyperSpec/Body/07_a.htm 2018-01-31T19:57:19Z shka: or it should be at the very least 2018-01-31T19:57:39Z phoe: "The generic function shared-initialize implements the parts of initialization shared by these four situations: (...) when re-initializing an instance, (...)" 2018-01-31T19:57:45Z phoe: What does it mean, "re-initializing an instance"? 2018-01-31T19:57:54Z shka: phoe: after redefining 2018-01-31T19:58:14Z phoe: I see. So it still is not explicit calling by user code. 2018-01-31T19:58:17Z kodnin joined #lisp 2018-01-31T19:58:35Z shka: well, i've been programming in lisp for like 3 years now 2018-01-31T19:58:35Z Cymew joined #lisp 2018-01-31T19:58:39Z phoe: clhs 7.1.6 might provide some insight, let me look at it... 2018-01-31T19:58:42Z phoe: clhs 7.1.6 2018-01-31T19:58:43Z specbot: Initialize-Instance: http://www.lispworks.com/reference/HyperSpec/Body/07_af.htm 2018-01-31T19:58:46Z shka: didn't call initialize-instance explicitly once 2018-01-31T19:58:56Z phoe: shka: neither did I. 2018-01-31T19:59:11Z Xach: I would use reinitialize-instance instead. 2018-01-31T19:59:32Z Xach: and shared-initialize. 2018-01-31T19:59:36Z phoe: clhs reinitialize-instance 2018-01-31T19:59:36Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_reinit.htm 2018-01-31T19:59:40Z shka: Xach: care to explain why? 2018-01-31T19:59:41Z phoe: "This generic function can be called by users. " 2018-01-31T19:59:47Z phoe: oh look, stated explicitly 2018-01-31T19:59:56Z Xach: shka: because that is its explicit purpose 2018-01-31T20:00:01Z kodnin quit (Client Quit) 2018-01-31T20:00:09Z shka: but will it call initialize-instance? 2018-01-31T20:00:17Z phoe: it'll call shared-initialize 2018-01-31T20:00:17Z Xach: it will not. it will call shared-initialize. 2018-01-31T20:00:22Z EvW joined #lisp 2018-01-31T20:00:23Z shka: meh 2018-01-31T20:00:34Z Xach: that is where to put things in objects that might be reinitialized. 2018-01-31T20:00:46Z damke joined #lisp 2018-01-31T20:00:50Z shka: ok, get me a second, i will refactor my code 2018-01-31T20:01:01Z Xach: No! There's no time! 2018-01-31T20:01:09Z phoe: omg!!!1 2018-01-31T20:01:18Z alexmlw quit (Quit: alexmlw) 2018-01-31T20:01:23Z drcode quit (Ping timeout: 256 seconds) 2018-01-31T20:01:52Z shka: Xach: in that case, let me engage ludicrous speed! 2018-01-31T20:01:54Z z3t0 joined #lisp 2018-01-31T20:02:19Z phoe takes https://www.youtube.com/watch?v=ygE01sOhzz0 over to #lispcafe 2018-01-31T20:03:13Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T20:03:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-31T20:04:32Z Cymew joined #lisp 2018-01-31T20:07:47Z josemanuel joined #lisp 2018-01-31T20:07:49Z shka: Xach: done, thanks for help! 2018-01-31T20:07:58Z didi joined #lisp 2018-01-31T20:08:01Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-31T20:08:43Z Bike: reinitialize-instance might not "reset" an instance depending on what you mean by that, though. particularly it doesn't reinstall any initforms. 2018-01-31T20:08:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T20:08:58Z didi: Idle thought: Isn't it interesting that #'format uses a control /string/ instead of a control /list/? 2018-01-31T20:09:16Z randomstrangerb joined #lisp 2018-01-31T20:10:13Z Bike: well, consider like, ~{ 2018-01-31T20:10:43Z Cymew joined #lisp 2018-01-31T20:10:58Z Bike: ~{~a ~} being (start-loop aesthetic " " end-loop) would be kind of weird. ((aesthetic " ")) or something, indicating the loop as part of the structure would make more sense 2018-01-31T20:11:14Z Bike: but then you might as well use actual control constructs and function calls and such 2018-01-31T20:11:28Z phoe: and #'format would be turing-complete 2018-01-31T20:11:31Z phoe: (finally) 2018-01-31T20:14:43Z smurfrobot joined #lisp 2018-01-31T20:14:43Z Xach: Bike: an argument for default-initargs? 2018-01-31T20:15:21Z Cymew quit (Ping timeout: 264 seconds) 2018-01-31T20:15:22Z _death: didi: http://www.cs.yale.edu/homes/dvm/format-stinks.html 2018-01-31T20:15:49Z didi: _death: Thanks, I will read it, tho I like #'format. 2018-01-31T20:15:58Z Bike: i'd never thought of that 2018-01-31T20:16:13Z Bike: i've never quite understood what default-initargs is for but there's one difference 2018-01-31T20:16:56Z jmercouris: Alright, so I'm working on a way to be able to pass something like '(print "lol") to (funcall) 2018-01-31T20:16:57Z jmercouris: https://gist.github.com/480ef407b60df935b6b3bf822dbe9262 2018-01-31T20:17:23Z jmercouris: I have a simple approach that is basically (funcall (first list-of-things) (rest list-of-things)) 2018-01-31T20:17:30Z Shinmera: Bike: You can provide initargs for options that aren't slots. 2018-01-31T20:17:32Z jmercouris: where (list-of-things) is something like '(print "lol") 2018-01-31T20:17:49Z didi: jmercouris: (lambda () ...) 2018-01-31T20:17:58Z phoe: "~:[{~;[~]~:{~S~:[->~S~;~*~]~:^ ~}~:[~; ~]~{~S->~^ ~}~:[~; ~]~[~*~;->~S~;->~*~]~:[}~;]~]" 2018-01-31T20:18:01Z phoe: _death: what the fuck 2018-01-31T20:18:14Z didi: jmercouris: Thunk all the things you want to delay computation. 2018-01-31T20:18:27Z jmercouris: didi: What is thunking? 2018-01-31T20:18:47Z didi: jmercouris: lambda without arguments. 2018-01-31T20:19:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T20:19:55Z Cymew joined #lisp 2018-01-31T20:20:06Z jmercouris: didi: just to be completely clear about my objective- I want the user to be able to pass a function as they normally would with args like this: '(function any-number of arguments :including-keyword args) and then execute that call at a later time 2018-01-31T20:20:23Z red-dot joined #lisp 2018-01-31T20:20:44Z didi: jmercouris: Just ask the user to pass you a thunk. 2018-01-31T20:20:48Z jmercouris: didi: does that make sense? or is my explanation not so good? I am pretty tired at the time 2018-01-31T20:20:58Z jmercouris: that seems a burden on the user though 2018-01-31T20:21:02Z jmercouris: wrapping everything in a lambda 2018-01-31T20:21:03Z phoe: no, why? 2018-01-31T20:21:04Z Bike: Shinmera: i suppose that is also the case 2018-01-31T20:21:07Z phoe: jmercouris: I' 2018-01-31T20:21:25Z jmercouris: phoe: you what? 2018-01-31T20:21:25Z phoe: I'd rather pass the function object that I control rather than an arbitrary number of forms that you need to eval at runtime. 2018-01-31T20:21:36Z jmercouris: Ah 2018-01-31T20:22:02Z phoe: and no, it's not a burden. eval-at-runtime is pretty evil in Lisp anyway, and should be avoided wherever possible. 2018-01-31T20:22:11Z Bike: there's no eval, it's just funcall 2018-01-31T20:22:14Z phoe: if you want to accept user-defined code, accept function objects. 2018-01-31T20:22:24Z phoe: Bike: if he accepts Lisp forms, then it's eval at runtime. 2018-01-31T20:22:29Z jmercouris: Yeah, but then their args must be wrapped in a closure 2018-01-31T20:22:31Z phoe: if he accepts function objects, it's funcall 2018-01-31T20:22:41Z jmercouris: it's not a huge deal I guess, but it is a consideration 2018-01-31T20:22:46Z phoe: jmercouris: and? 2018-01-31T20:22:53Z jmercouris: I just don't like the syntax 2018-01-31T20:23:01Z jmercouris: It's a stupid reason really 2018-01-31T20:23:11Z Bike: okay i'm just looking at this here 2018-01-31T20:23:12Z jmercouris: so a thunk is just a lambda without arguments then? 2018-01-31T20:23:33Z phoe: either a lambda without arguments *OR* a lambda with specified arguments that you will pass to it. 2018-01-31T20:23:39Z Bike: i think this is a bit incoherent 2018-01-31T20:23:56Z jmercouris: Yeah, I would agree with that 2018-01-31T20:24:06Z nowhereman_ joined #lisp 2018-01-31T20:24:07Z Bike: why can you not just do (push (lambda () (setf ,variable ,value)) *deferred-variables*) 2018-01-31T20:24:10Z phoe: like, if you want to execute user code that will do some things with object FOO, then you will want to accept functions like (lambda (foo) (user-code foo)) 2018-01-31T20:24:18Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T20:24:22Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-31T20:24:22Z Bike: (incidentally, that's a thunk right there. you already understand this concept, hooray) 2018-01-31T20:24:31Z jmercouris: Bike: ,value may be a function, that is why 2018-01-31T20:24:41Z jmercouris: and ,value must be evaluated to get the "value" 2018-01-31T20:24:42Z phoe: or you can go the around route and define *foo* as a dynavar, and expect your users to grab its value that way. 2018-01-31T20:24:46Z Denommus quit (Ping timeout: 252 seconds) 2018-01-31T20:24:47Z Bike: no 2018-01-31T20:25:11Z phoe: this way, you can "work around" the issue with function arguments. you just hide them in dynamic variables, which is ugly in its own way. 2018-01-31T20:25:14Z Bike: say you have (deferredvar fishes-count (count-fishes :type "salmon")), which i believe was what you wanted your example to be 2018-01-31T20:25:35Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T20:25:36Z Bike: this will macroexpand into (push (lambda () (setf fishes-count (count-fishes :type "salmon"))) *deferred-variables*) 2018-01-31T20:25:40Z jmercouris: Yeah, it was, but I changed it for simplicity half way, missed a few spots I guess :D 2018-01-31T20:25:46Z Bike: so, count-fishes won't actually be called until that thunk is called 2018-01-31T20:26:02Z jmercouris: ah shit, yes 2018-01-31T20:26:11Z jmercouris: that makes a lot of sense 2018-01-31T20:26:16Z Bike: the nature of the value form is totally irrelevant, you just wrap it in a thunk 2018-01-31T20:26:25Z shka: heh, good night all 2018-01-31T20:26:35Z jmercouris: I wasn't thinking straight, I was thinking of it as multiple values, but it is just a single list 2018-01-31T20:26:40Z jmercouris: which is just one value within the macro 2018-01-31T20:26:42Z Xach: Bike: graham crackers feller has a persuasive case for default initargs 2018-01-31T20:26:44Z Bike: it can take a bit to wrap your head around. 2018-01-31T20:26:44Z Xach: riesbeck 2018-01-31T20:26:52Z Bike: Xach: is it part of graham crackers? 2018-01-31T20:27:08Z milanj quit (Quit: This computer has gone to sleep) 2018-01-31T20:27:08Z Chream quit (Ping timeout: 255 seconds) 2018-01-31T20:27:10Z jmercouris: Bike: Thank you for your insight 2018-01-31T20:27:23Z Cymew joined #lisp 2018-01-31T20:27:23Z _death: I use :default-initargs to.. pass defaults for initargs :).. if a slot has no initarg, then I use :initform 2018-01-31T20:27:26Z Bike: no problemo 2018-01-31T20:28:31Z smurfrobot quit (Remote host closed the connection) 2018-01-31T20:28:52Z Xach: Bike: no 2018-01-31T20:28:58Z Xach: maybe? hmm 2018-01-31T20:29:06Z Xach: can't remember. i linked to it some time ago 2018-01-31T20:29:29Z Xach: http://lisptips.com/post/11728375873/initform-and-default-initargs 2018-01-31T20:29:48Z Bike: that works, thank you 2018-01-31T20:29:49Z Amplituhedron joined #lisp 2018-01-31T20:30:00Z Xach: wow, 2011 2018-01-31T20:30:04Z Xach: time flies like a banana 2018-01-31T20:30:45Z Bike: i wonder how often extra &key arguments to initialization functions are used, too 2018-01-31T20:31:59Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T20:33:44Z Cymew joined #lisp 2018-01-31T20:34:15Z milanj joined #lisp 2018-01-31T20:34:32Z Xach: 2018-01-31T20:34:42Z Xach: Bike: i use 'em when needed 2018-01-31T20:35:08Z pjb: Bike: same answer as always: you have ~/quicklisp. 2018-01-31T20:35:52Z Bike: i found a probably longstanding if nontrivial to trigger bug in ecl about them the other day, but just due to reading source 2018-01-31T20:37:58Z Cymew quit (Ping timeout: 252 seconds) 2018-01-31T20:39:54Z Cymew joined #lisp 2018-01-31T20:39:55Z Jesin quit (Ping timeout: 256 seconds) 2018-01-31T20:41:48Z scymtym quit (Ping timeout: 240 seconds) 2018-01-31T20:42:08Z fikka joined #lisp 2018-01-31T20:44:12Z Cymew quit (Ping timeout: 252 seconds) 2018-01-31T20:44:34Z BitPuffin quit (Remote host closed the connection) 2018-01-31T20:45:48Z didi: _death: Cool article. Thank you. 2018-01-31T20:45:58Z Cymew joined #lisp 2018-01-31T20:48:24Z smurfrobot joined #lisp 2018-01-31T20:48:51Z didi: I shall put this `out' macro with the series package for when I am courageous enough to incorporate them into my programs. 2018-01-31T20:50:40Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T20:50:56Z Rawriful joined #lisp 2018-01-31T20:50:58Z z3t0 quit (Remote host closed the connection) 2018-01-31T20:51:08Z z3t0 joined #lisp 2018-01-31T20:51:49Z _death: didi: I have my own out macro as well 2018-01-31T20:52:12Z Cymew joined #lisp 2018-01-31T20:52:36Z phoe: didi: is the code for that macro available anywhere? 2018-01-31T20:52:42Z phoe: if yes, is it on quicklisp yet? 2018-01-31T20:53:07Z Jesin joined #lisp 2018-01-31T20:53:08Z didi: phoe: I dunno. I just read about it. 2018-01-31T20:53:44Z fikka quit (Ping timeout: 252 seconds) 2018-01-31T20:55:59Z python476 quit (Ping timeout: 248 seconds) 2018-01-31T20:56:53Z phoe: I see. 2018-01-31T20:56:56Z drcode joined #lisp 2018-01-31T20:57:00Z Cymew quit (Ping timeout: 260 seconds) 2018-01-31T20:57:11Z drcode quit (Remote host closed the connection) 2018-01-31T20:58:13Z Cymew joined #lisp 2018-01-31T20:59:10Z orivej joined #lisp 2018-01-31T20:59:24Z drcode joined #lisp 2018-01-31T21:01:09Z fikka joined #lisp 2018-01-31T21:02:45Z Cymew quit (Ping timeout: 264 seconds) 2018-01-31T21:04:22Z Cymew joined #lisp 2018-01-31T21:04:58Z jmercouris: Bike: Alright, so here is the really strange thing now 2018-01-31T21:05:08Z jmercouris: if I look at one of my deferred variables 2018-01-31T21:05:31Z jmercouris: *deferred-var* --> (function-call "arg1" "arg2") 2018-01-31T21:05:38Z jmercouris: I don't even see how that's possible 2018-01-31T21:06:13Z jasom: _death: implementing the out macro seems like it would require code walking? 2018-01-31T21:06:13Z jmercouris: Ah, nvm, I do see how it is possible, sorry for the interruption, I should probably just go to sleep 2018-01-31T21:06:39Z z3t0_ joined #lisp 2018-01-31T21:08:27Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T21:09:05Z eivarv quit (Quit: Sleep) 2018-01-31T21:10:18Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-31T21:10:22Z eivarv joined #lisp 2018-01-31T21:10:34Z Cymew joined #lisp 2018-01-31T21:12:33Z shka quit (Ping timeout: 248 seconds) 2018-01-31T21:14:57Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T21:16:46Z Cymew joined #lisp 2018-01-31T21:20:50Z scymtym joined #lisp 2018-01-31T21:21:03Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-31T21:21:05Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T21:24:06Z vlatkoB quit (Remote host closed the connection) 2018-01-31T21:24:36Z pierpa joined #lisp 2018-01-31T21:25:05Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T21:25:42Z nowhere_man joined #lisp 2018-01-31T21:26:51Z fikka joined #lisp 2018-01-31T21:27:10Z Karl_Dscc joined #lisp 2018-01-31T21:27:35Z jmercouris joined #lisp 2018-01-31T21:28:04Z Cymew joined #lisp 2018-01-31T21:29:32Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-01-31T21:29:48Z rumbler31 quit (Ping timeout: 240 seconds) 2018-01-31T21:31:45Z fikka quit (Ping timeout: 248 seconds) 2018-01-31T21:32:10Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T21:32:52Z warweasle quit (Quit: later) 2018-01-31T21:34:00Z Cymew joined #lisp 2018-01-31T21:35:12Z nowhere_man quit (Ping timeout: 256 seconds) 2018-01-31T21:36:41Z _death: jasom: if you mean the one in ytools, it doesn't.. for my own, I use an old trick to pass context around 2018-01-31T21:37:43Z _death: phoe: it's available in ytools, which can be found in clocc 2018-01-31T21:37:59Z hhdave joined #lisp 2018-01-31T21:38:09Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T21:38:21Z _death: my own is in the constantia library 2018-01-31T21:38:27Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T21:39:07Z crsc joined #lisp 2018-01-31T21:40:12Z Cymew joined #lisp 2018-01-31T21:40:18Z EvW quit (Ping timeout: 240 seconds) 2018-01-31T21:44:31Z Cymew quit (Ping timeout: 248 seconds) 2018-01-31T21:45:12Z fikka joined #lisp 2018-01-31T21:45:14Z crsc quit (Quit: leaving) 2018-01-31T21:45:25Z crsc joined #lisp 2018-01-31T21:45:28Z antismap joined #lisp 2018-01-31T21:46:48Z crsc: hi 2018-01-31T21:51:37Z red-dot joined #lisp 2018-01-31T21:52:02Z fikka quit (Ping timeout: 252 seconds) 2018-01-31T21:53:32Z fikka joined #lisp 2018-01-31T21:53:56Z jmercouris quit (Ping timeout: 268 seconds) 2018-01-31T21:54:20Z josemanuel quit (Quit: leaving) 2018-01-31T21:54:28Z osune quit (Remote host closed the connection) 2018-01-31T21:58:04Z EvW1 joined #lisp 2018-01-31T21:58:39Z phoe: hey crsc 2018-01-31T22:11:28Z mishoo quit (Ping timeout: 256 seconds) 2018-01-31T22:11:43Z Xach: A new Quicklisp update is upon us this day! Hip hip hurrah! 2018-01-31T22:12:08Z phoe: omg!!!1 2018-01-31T22:12:19Z phoe: how many projects did you need to remove? 2018-01-31T22:12:30Z eivarv quit (Quit: Sleep) 2018-01-31T22:13:18Z pjb: with the new release of sbcl… 2018-01-31T22:13:32Z zaquest quit (Read error: Connection reset by peer) 2018-01-31T22:13:35Z zaquest__ joined #lisp 2018-01-31T22:14:49Z _death: pjb: having spent the day in {}, I recalled your (old?) signature.. 2018-01-31T22:17:07Z z3t0_ quit (Remote host closed the connection) 2018-01-31T22:17:38Z Xach: phoe: not too many 2018-01-31T22:19:23Z zaquest__ is now known as zaquest 2018-01-31T22:19:36Z Cymew joined #lisp 2018-01-31T22:19:45Z phoe: Xach: good. 2018-01-31T22:20:18Z fikka quit (Ping timeout: 240 seconds) 2018-01-31T22:20:35Z Xof: *phew* 2018-01-31T22:20:48Z dddddd quit (Ping timeout: 240 seconds) 2018-01-31T22:21:03Z Xof: Xach: the slippery-chicken repo owner (Daniel Ross) is a colleague of mine 2018-01-31T22:21:20Z Baggers joined #lisp 2018-01-31T22:21:34Z Xof: in one of those Small World kind of things. "What do you do?" "Oh, really, what lisp do you use?" "Oh, really, do you want to know something funny?" 2018-01-31T22:22:07Z fikka joined #lisp 2018-01-31T22:22:19Z Xach: Xof: nice! i was surprised/not surprised to see how old the project is 2018-01-31T22:22:39Z Xach: Lisp music software seems to exist in its own world (much like every other piece of the lisp world) 2018-01-31T22:22:54Z Xof: yeah, I'd never heard of it before a year or so ago either 2018-01-31T22:22:57Z Xach: With a name like slippery chicken it should be more known! 2018-01-31T22:23:00Z dddddd joined #lisp 2018-01-31T22:24:11Z Cymew quit (Ping timeout: 256 seconds) 2018-01-31T22:25:04Z deng_cn quit (Read error: Connection reset by peer) 2018-01-31T22:26:36Z pmetzger joined #lisp 2018-01-31T22:27:17Z deng_cn joined #lisp 2018-01-31T22:27:43Z nox2 quit (Ping timeout: 248 seconds) 2018-01-31T22:28:00Z nullman quit (Ping timeout: 260 seconds) 2018-01-31T22:28:30Z nullman joined #lisp 2018-01-31T22:29:35Z Bike quit (Ping timeout: 260 seconds) 2018-01-31T22:33:10Z random-nick quit (Quit: quit) 2018-01-31T22:33:32Z random-nick joined #lisp 2018-01-31T22:35:27Z moei quit (Quit: Leaving...) 2018-01-31T22:35:51Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-31T22:39:29Z jmercouris joined #lisp 2018-01-31T22:42:10Z jonh left #lisp 2018-01-31T22:42:30Z damke_ joined #lisp 2018-01-31T22:44:09Z damke quit (Ping timeout: 264 seconds) 2018-01-31T22:46:49Z Karl_Dscc quit (Remote host closed the connection) 2018-01-31T22:50:37Z openthesky joined #lisp 2018-01-31T22:51:28Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-01-31T22:52:17Z red-dot joined #lisp 2018-01-31T22:56:30Z oleo quit (Ping timeout: 265 seconds) 2018-01-31T22:57:55Z fluke`` quit (Remote host closed the connection) 2018-01-31T22:58:13Z stylewarning: One exercise in Scheme is learning how to do macros that capture name. One such exercise is writing a macro with-degrees (&body) which lexically captures sin/cos/tan and defines them as functions of degrees. In Common Lisp, you can't lexically shadow symbols in the CL package. 2018-01-31T22:58:43Z stylewarning: Nonetheless, I'm curious how someone might actually solve this. Code walk and replace? Does anyone have a simple example of how to do it with current libraries? 2018-01-31T23:00:59Z z3t0 joined #lisp 2018-01-31T23:03:10Z random-nick quit (Ping timeout: 240 seconds) 2018-01-31T23:03:11Z QualityAddict quit (Quit: Leaving) 2018-01-31T23:04:17Z damke joined #lisp 2018-01-31T23:05:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-31T23:05:47Z fluke` joined #lisp 2018-01-31T23:06:21Z p_l: I'd love a "trivial-codewalker" that would just hook into compiler innards of the implementation in layerable way :< 2018-01-31T23:07:23Z norserob quit (Ping timeout: 276 seconds) 2018-01-31T23:08:59Z norserob joined #lisp 2018-01-31T23:09:30Z scymtym: p_l: https://github.com/scymtym/sbcl/blob/wip-walk-forms-new-marco-stuff/examples/code-walking-example-without-clos.lisp 2018-01-31T23:09:59Z Shinmera: p_l: I thought that's what macroexpand-dammit! was trying to be, sort of. 2018-01-31T23:11:39Z z3t0 quit (Remote host closed the connection) 2018-01-31T23:15:03Z raynold joined #lisp 2018-01-31T23:15:17Z z3t0 joined #lisp 2018-01-31T23:16:21Z Jesin quit (Quit: Leaving) 2018-01-31T23:16:46Z pagnol joined #lisp 2018-01-31T23:17:14Z epony quit (Quit: QUIT) 2018-01-31T23:17:49Z nowhere_man joined #lisp 2018-01-31T23:19:10Z nirved quit (Quit: Leaving) 2018-01-31T23:19:18Z z3t0 quit (Ping timeout: 240 seconds) 2018-01-31T23:20:25Z Cymew joined #lisp 2018-01-31T23:21:30Z sjl quit (Ping timeout: 252 seconds) 2018-01-31T23:21:49Z pmetzger quit (Remote host closed the connection) 2018-01-31T23:22:09Z jmercouris quit (Ping timeout: 248 seconds) 2018-01-31T23:22:24Z pmetzger joined #lisp 2018-01-31T23:24:34Z varjagg quit (Ping timeout: 256 seconds) 2018-01-31T23:24:35Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T23:26:22Z Cymew joined #lisp 2018-01-31T23:26:57Z jasom: stylewarning: just shadow the symbols in your current package, and set their fdefinition to be the CL: equivalent 2018-01-31T23:27:03Z pmetzger quit (Ping timeout: 268 seconds) 2018-01-31T23:27:46Z stylewarning: jasom: of course you can do that; the idea of the exercise was to just provide a small convenience without extra packages and the like 2018-01-31T23:28:03Z stylewarning: and of course it's not possible, with a macro, to change the package over the lexical scope of the macro 2018-01-31T23:28:15Z z3t0 joined #lisp 2018-01-31T23:28:54Z jasom: stylewarning: short of walking the entire tree and replacing the symbols, I can't think of a way. If it were easy that would violate a core part of lisp's macro hygiene 2018-01-31T23:29:08Z Cymew_ joined #lisp 2018-01-31T23:29:22Z stylewarning: jasom: Sometimes I do wish it were possible to selectively turn that stuff off. 2018-01-31T23:29:42Z jasom: stylewarning: sbcl lets you disable package locks, so you can on at least one specific implementation 2018-01-31T23:29:43Z z3t0 quit (Read error: Connection reset by peer) 2018-01-31T23:29:57Z z3t0 joined #lisp 2018-01-31T23:30:48Z Cymew quit (Ping timeout: 240 seconds) 2018-01-31T23:30:49Z stylewarning: jasom: I guess I meant it would be nice to selectively turn it off 2018-01-31T23:31:04Z stylewarning: to e.g. write a macro like WITH-DEGREES 2018-01-31T23:31:12Z jasom: stylewarning: you can disable it for the lexical scope of a declaration 2018-01-31T23:31:33Z stylewarning: oh, that I didn't know 2018-01-31T23:31:56Z stylewarning: Lexical or dynamic scope? 2018-01-31T23:32:07Z jasom: stylewarning: there is one of each 2018-01-31T23:32:17Z stylewarning: How do I do that 2018-01-31T23:32:24Z jasom: declaration enable/disable-package-locks is lexical 2018-01-31T23:32:43Z jasom: macro with-unlocked-packages is dynamic 2018-01-31T23:33:18Z Cymew_ quit (Ping timeout: 240 seconds) 2018-01-31T23:33:23Z stylewarning: jasom: I didn't know about that. Awesome! 2018-01-31T23:33:25Z jasom: (locally (declare (sb-ext:disable-package-locks sin cos tan)) ...) 2018-01-31T23:34:17Z stylewarning: jasom: I need to learn more about these neat features of SBCL. I usually scan the manual every so often, but I guess I missed/forgot this. 2018-01-31T23:36:39Z scymtym: stylewarning: speaking of which: we just made the manual look a little nicer and documented the different kinds of timeouts in SBCL 2018-01-31T23:36:52Z stylewarning: scymtym: even better news! I'll check it out 2018-01-31T23:36:54Z EvW1 quit (Ping timeout: 252 seconds) 2018-01-31T23:38:06Z LiamH quit (Quit: Leaving.) 2018-01-31T23:41:40Z pmetzger joined #lisp 2018-01-31T23:44:08Z Bike joined #lisp 2018-01-31T23:45:39Z didi: scymtym: Please, keep the Info manual! 2018-01-31T23:49:36Z scymtym: didi: we just applied a different stylesheet to the HTML version. does that alleviate your concerns? 2018-01-31T23:51:19Z didi: scymtym: It does. Thank you. 2018-01-31T23:54:44Z varjagg joined #lisp 2018-01-31T23:56:24Z EvW joined #lisp 2018-01-31T23:56:53Z stylewarning: The most useful lisp implementation manual has been LispWorks' collection. 2018-01-31T23:57:22Z pmetzger quit (Remote host closed the connection) 2018-01-31T23:59:23Z varjagg quit (Ping timeout: 256 seconds)