2016-11-30T00:03:26Z JammyHammy joined #lisp 2016-11-30T00:03:41Z xaotuk quit (Ping timeout: 260 seconds) 2016-11-30T00:04:07Z Valheru joined #lisp 2016-11-30T00:06:46Z robotoad joined #lisp 2016-11-30T00:13:24Z younder: Bug in linedit: The Bell character is printed on screen when error. FIX: In ~/quicklisp/dists/quicklisp/software/linedit-20150709-git there is a terminal.lisp where defmethob bell is defined. I just removed the output. 2016-11-30T00:13:37Z Tex_Nick joined #lisp 2016-11-30T00:14:45Z younder: (defmethod beep ((b terminal)) (declare (ignore b terminal))) OK. not ideal, but much less annoying 2016-11-30T00:16:00Z test1600 quit (Ping timeout: 246 seconds) 2016-11-30T00:16:25Z pillton joined #lisp 2016-11-30T00:16:33Z pierpa quit (Ping timeout: 260 seconds) 2016-11-30T00:17:58Z younder: Anyhow this is where the Bell character on the screen comes from. It is sendt to *error-output* which is why you can't edit it. 2016-11-30T00:19:59Z williamyaoh: Hmm, could you send a bell, then a backspace character to *error-output*? 2016-11-30T00:21:05Z robotoad quit (Max SendQ exceeded) 2016-11-30T00:22:06Z younder: What you want is a beep. Not a character on the screen. \007 is beep and that works from the terminal, but #\Bell prints a bell character. 2016-11-30T00:23:24Z younder: Since terminal beep is disabled by default anyhow. This defacto amounts to doing nothing. 2016-11-30T00:23:25Z robotoad joined #lisp 2016-11-30T00:24:39Z al-damiri joined #lisp 2016-11-30T00:25:35Z sellout- joined #lisp 2016-11-30T00:26:56Z williamyaoh quit (Quit: leaving) 2016-11-30T00:31:04Z younder: I mapped C-t to C-M-f (forward-word) etc as well. That used to crash the REPL 2016-11-30T00:31:57Z mishoo quit (Ping timeout: 260 seconds) 2016-11-30T00:32:01Z younder: In command-keys.lisp 2016-11-30T00:32:28Z ebrasca quit (Remote host closed the connection) 2016-11-30T00:33:55Z jleija joined #lisp 2016-11-30T00:37:19Z klltkr joined #lisp 2016-11-30T00:37:19Z klltkr quit (Changing host) 2016-11-30T00:37:19Z klltkr joined #lisp 2016-11-30T00:43:38Z fourier joined #lisp 2016-11-30T00:44:44Z BlueRavenGT joined #lisp 2016-11-30T00:45:03Z ovenpasta quit (Ping timeout: 244 seconds) 2016-11-30T00:46:10Z Einwq quit (Ping timeout: 256 seconds) 2016-11-30T00:48:28Z fourier quit (Ping timeout: 260 seconds) 2016-11-30T00:48:43Z arescorpio joined #lisp 2016-11-30T00:49:09Z Einwq joined #lisp 2016-11-30T00:49:39Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T00:53:08Z BlueRavenGT quit (Read error: Connection reset by peer) 2016-11-30T00:53:54Z NeverDie joined #lisp 2016-11-30T00:54:18Z shdeng joined #lisp 2016-11-30T00:56:06Z slyrus_ quit (Ping timeout: 250 seconds) 2016-11-30T00:58:45Z FreeBirdLjj joined #lisp 2016-11-30T01:00:10Z fisxoj joined #lisp 2016-11-30T01:00:46Z fisxoj quit (Remote host closed the connection) 2016-11-30T01:05:40Z warweasle joined #lisp 2016-11-30T01:11:48Z akkad: arm64 allegro. nice 2016-11-30T01:14:39Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T01:17:33Z papachan quit (Quit: Saliendo) 2016-11-30T01:17:46Z Petit_Dejeuner joined #lisp 2016-11-30T01:19:25Z moei quit (Quit: Leaving...) 2016-11-30T01:21:04Z paul0 joined #lisp 2016-11-30T01:22:17Z FreeBirdLjj joined #lisp 2016-11-30T01:24:08Z Einwq quit (Ping timeout: 256 seconds) 2016-11-30T01:25:41Z Linear_z2 left #lisp 2016-11-30T01:27:08Z EvW quit (Ping timeout: 245 seconds) 2016-11-30T01:30:26Z rlatimore quit (Read error: No route to host) 2016-11-30T01:31:18Z floatingman quit (Ping timeout: 245 seconds) 2016-11-30T01:35:22Z floatingman joined #lisp 2016-11-30T01:38:10Z Guest63307 joined #lisp 2016-11-30T01:41:44Z Keep0wer joined #lisp 2016-11-30T01:42:28Z warweasle quit (Quit: brb, changing connections) 2016-11-30T01:43:20Z warweasle joined #lisp 2016-11-30T01:46:12Z Josh_2 joined #lisp 2016-11-30T01:47:12Z Jubb joined #lisp 2016-11-30T01:47:51Z LooneyTunes quit (Ping timeout: 258 seconds) 2016-11-30T01:47:58Z Guest63307 quit (Ping timeout: 252 seconds) 2016-11-30T01:48:07Z robotoad quit (Ping timeout: 260 seconds) 2016-11-30T01:51:50Z warweasle quit (Remote host closed the connection) 2016-11-30T01:54:48Z robotoad joined #lisp 2016-11-30T01:58:45Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-11-30T01:59:24Z fortitude joined #lisp 2016-11-30T02:07:03Z test1600 joined #lisp 2016-11-30T02:16:35Z vicfred joined #lisp 2016-11-30T02:17:14Z krwq joined #lisp 2016-11-30T02:22:25Z warweasle joined #lisp 2016-11-30T02:24:04Z rpg quit (Ping timeout: 250 seconds) 2016-11-30T02:24:56Z Valheru quit (Read error: Connection reset by peer) 2016-11-30T02:26:50Z rpg joined #lisp 2016-11-30T02:28:48Z tmtwd joined #lisp 2016-11-30T02:29:19Z k33p0w3r joined #lisp 2016-11-30T02:32:34Z Keep0wer quit (Ping timeout: 250 seconds) 2016-11-30T02:36:21Z warweasle quit (Ping timeout: 248 seconds) 2016-11-30T02:39:21Z CEnnis91 quit (Quit: Connection closed for inactivity) 2016-11-30T02:40:23Z ASau quit (Ping timeout: 250 seconds) 2016-11-30T02:44:19Z krwq quit (Remote host closed the connection) 2016-11-30T02:44:38Z fourier joined #lisp 2016-11-30T02:45:31Z sellout- quit (Quit: Leaving.) 2016-11-30T02:47:46Z paul0 quit (Quit: Leaving) 2016-11-30T02:48:14Z sellout- joined #lisp 2016-11-30T02:48:37Z fourier quit (Ping timeout: 240 seconds) 2016-11-30T02:59:05Z ASau joined #lisp 2016-11-30T02:59:23Z fortitude quit (Ping timeout: 244 seconds) 2016-11-30T03:02:35Z defaultxr joined #lisp 2016-11-30T03:04:42Z robotoad quit (Quit: robotoad) 2016-11-30T03:06:00Z Jubb quit (Remote host closed the connection) 2016-11-30T03:07:33Z Jubb joined #lisp 2016-11-30T03:11:05Z robotoad joined #lisp 2016-11-30T03:20:03Z TDT quit (Quit: TDT) 2016-11-30T03:20:28Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T03:23:17Z CEnnis91 joined #lisp 2016-11-30T03:30:36Z arescorpio quit (Quit: Leaving.) 2016-11-30T03:31:58Z FreeBirdLjj joined #lisp 2016-11-30T03:33:47Z Jubb quit (Remote host closed the connection) 2016-11-30T03:34:24Z Jubb joined #lisp 2016-11-30T03:38:13Z Tex_Nick left #lisp 2016-11-30T03:38:33Z JuanDaugherty quit (Quit: Hibernate, reboot, exeunt, etc.) 2016-11-30T03:39:25Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-30T03:40:35Z avalokite joined #lisp 2016-11-30T03:42:35Z cpape quit (Read error: Connection reset by peer) 2016-11-30T03:42:48Z cpape joined #lisp 2016-11-30T03:44:37Z k4rtik quit (Ping timeout: 240 seconds) 2016-11-30T03:45:55Z EvW joined #lisp 2016-11-30T03:50:50Z k4rtik joined #lisp 2016-11-30T03:54:00Z al-damiri quit (Quit: Connection closed for inactivity) 2016-11-30T03:56:45Z rszeno joined #lisp 2016-11-30T03:57:12Z avalokite quit (Ping timeout: 246 seconds) 2016-11-30T03:59:29Z kobain quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2016-11-30T04:01:57Z LooneyTunes joined #lisp 2016-11-30T04:10:14Z Harag quit (Ping timeout: 252 seconds) 2016-11-30T04:11:20Z warweasle joined #lisp 2016-11-30T04:20:37Z Josh_2 quit (Ping timeout: 260 seconds) 2016-11-30T04:29:57Z eschatologist quit (Quit: ZNC 1.6.3+deb2 - http://znc.in) 2016-11-30T04:35:14Z eschatologist joined #lisp 2016-11-30T04:35:44Z eschatologist quit (Client Quit) 2016-11-30T04:36:37Z eschatologist joined #lisp 2016-11-30T04:40:03Z EvW quit (Ping timeout: 245 seconds) 2016-11-30T04:44:20Z nowhereman quit (Remote host closed the connection) 2016-11-30T04:44:55Z warweasle quit (Ping timeout: 265 seconds) 2016-11-30T04:46:54Z warweasle joined #lisp 2016-11-30T04:47:04Z bluezone quit (Quit: Connection closed for inactivity) 2016-11-30T04:47:59Z jleija quit (Quit: leaving) 2016-11-30T04:55:21Z warweasle quit (Read error: Connection reset by peer) 2016-11-30T04:56:03Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T04:56:33Z karswell` joined #lisp 2016-11-30T04:57:17Z karswell quit (Ping timeout: 240 seconds) 2016-11-30T04:58:31Z m_zr0 quit (Ping timeout: 260 seconds) 2016-11-30T04:59:17Z william3 joined #lisp 2016-11-30T05:03:49Z william3 quit (Ping timeout: 250 seconds) 2016-11-30T05:08:27Z pillton quit (Remote host closed the connection) 2016-11-30T05:10:06Z tmtwd quit (Ping timeout: 244 seconds) 2016-11-30T05:18:55Z tmtwd joined #lisp 2016-11-30T05:21:43Z ASau quit (Ping timeout: 245 seconds) 2016-11-30T05:32:24Z robotoad quit (Quit: robotoad) 2016-11-30T05:33:35Z beach: Good morning everyone! 2016-11-30T05:35:39Z sdothum quit (Quit: ZNC - 1.6.0 - http://znc.in) 2016-11-30T05:36:31Z Reinisch quit (Quit: Leaving...) 2016-11-30T05:36:50Z vlatkoB joined #lisp 2016-11-30T05:40:39Z vicfred quit (Quit: Leaving) 2016-11-30T05:42:53Z Jubb quit (Remote host closed the connection) 2016-11-30T05:45:00Z robotoad joined #lisp 2016-11-30T05:46:56Z QwertyDragon joined #lisp 2016-11-30T05:47:56Z QwertyDragon left #lisp 2016-11-30T05:49:49Z robotoad quit (Read error: Connection reset by peer) 2016-11-30T05:52:32Z Harag joined #lisp 2016-11-30T05:56:22Z ahungry: morning 2016-11-30T06:06:07Z elurin joined #lisp 2016-11-30T06:11:25Z BlueRavenGT joined #lisp 2016-11-30T06:17:10Z fourier joined #lisp 2016-11-30T06:21:48Z fourier quit (Ping timeout: 250 seconds) 2016-11-30T06:28:26Z pillton joined #lisp 2016-11-30T06:32:42Z william_1 joined #lisp 2016-11-30T06:33:39Z william_1 is now known as williamyaoh 2016-11-30T06:34:42Z Harag quit (Ping timeout: 246 seconds) 2016-11-30T06:42:02Z neoncontrails quit (Remote host closed the connection) 2016-11-30T06:42:14Z Karl_Dscc joined #lisp 2016-11-30T06:47:33Z tmtwd quit (Ping timeout: 248 seconds) 2016-11-30T06:49:57Z BlueRavenGT quit (Ping timeout: 260 seconds) 2016-11-30T06:57:35Z MoALTz_ joined #lisp 2016-11-30T06:57:51Z alpert joined #lisp 2016-11-30T06:58:29Z oleo quit (Quit: Leaving) 2016-11-30T07:00:21Z MoALTz quit (Ping timeout: 248 seconds) 2016-11-30T07:03:37Z Karl_Dscc quit (Remote host closed the connection) 2016-11-30T07:03:46Z Davidbrcz joined #lisp 2016-11-30T07:05:21Z Arathnim quit (Ping timeout: 260 seconds) 2016-11-30T07:06:19Z jackdaniel: lately I encounter a pattern, that I define a variable being a collection (property list or hashtable), and to not expose it (I may want to change implementation in the future - maybe database or switch from plist to ht), I provide a functional interface for it: #'register-xxx, #'remove-xxx, #'reigstered-xxx. Is it a bad idea to provide a macro to simplify such definitions? 2016-11-30T07:07:00Z tmtwd joined #lisp 2016-11-30T07:07:15Z flip214: jackdaniel: what would the macro do? 2016-11-30T07:07:31Z flip214: provide these functions? 2016-11-30T07:07:44Z flip214: don't know whether it's worth the effort... 2016-11-30T07:07:57Z williamyaoh quit (Ping timeout: 246 seconds) 2016-11-30T07:08:38Z jackdaniel: basically what I type by hand: `(progn (defparameter ,name (make-hash-table)) (defun ,(symbolicate 'register- ,name) (setf …))) 2016-11-30T07:08:44Z jackdaniel: well, writing such macro is trivial 2016-11-30T07:09:24Z pillton: It would be if (register-xxx a b) was equivalent to (register (xxx-registrations a) b). 2016-11-30T07:09:36Z Bike: oh, i've done that sometimes 2016-11-30T07:10:53Z fourier joined #lisp 2016-11-30T07:10:57Z scymtym quit (Ping timeout: 240 seconds) 2016-11-30T07:11:01Z flip214: jackdaniel: but the searching for is (or might be) different each time 2016-11-30T07:11:27Z jackdaniel: flip214: from the interface perspective its not 2016-11-30T07:11:47Z jackdaniel: for prototypes I usually use hash table, but later (preserving the interface) I may change it to whatever I like 2016-11-30T07:12:16Z william_1 joined #lisp 2016-11-30T07:12:21Z william_1 is now known as williamyaoh 2016-11-30T07:12:29Z bocaneri joined #lisp 2016-11-30T07:13:42Z flip214: well, if you find a nice abstraction -- lots of things use this pattern 2016-11-30T07:15:40Z jackdaniel: drawbacks of that I can see are: readibility (I'm not especially keen with symbols appearning out of the blue in the package) and it is arguable whenever such syntatic sugar is worth having such macro. 2016-11-30T07:18:28Z pillton: You could have (define-registrar xxx :add register-xxx :remove deregister-xxx). 2016-11-30T07:20:51Z jackdaniel: right, that sounds like a good idea 2016-11-30T07:21:21Z jackdaniel: thanks 2016-11-30T07:21:55Z Keep0wer joined #lisp 2016-11-30T07:22:14Z Keep0wer quit (Max SendQ exceeded) 2016-11-30T07:22:40Z Keep0wer joined #lisp 2016-11-30T07:22:56Z Keep0wer quit (Max SendQ exceeded) 2016-11-30T07:23:23Z k33p0w3r quit (Ping timeout: 245 seconds) 2016-11-30T07:23:44Z Keep0wer joined #lisp 2016-11-30T07:24:01Z Keep0wer quit (Max SendQ exceeded) 2016-11-30T07:24:33Z Keep0wer joined #lisp 2016-11-30T07:24:51Z Keep0wer quit (Max SendQ exceeded) 2016-11-30T07:25:18Z Keep0wer joined #lisp 2016-11-30T07:28:11Z trueneu joined #lisp 2016-11-30T07:30:06Z elurin left #lisp 2016-11-30T07:33:40Z flamebeard joined #lisp 2016-11-30T07:36:04Z fourier quit (Ping timeout: 250 seconds) 2016-11-30T07:36:10Z gingerale joined #lisp 2016-11-30T07:36:28Z deank joined #lisp 2016-11-30T07:37:28Z tmtwd quit (Ping timeout: 265 seconds) 2016-11-30T07:39:08Z caretic joined #lisp 2016-11-30T07:39:50Z caretic left #lisp 2016-11-30T07:42:31Z neoncontrails joined #lisp 2016-11-30T07:44:52Z fiddlerwoaroof: jackdaniel: what's the advantage over making register/deregister/etc. be generic functions? 2016-11-30T07:45:23Z pillton: The global variable is private I gather. 2016-11-30T07:47:02Z pillton: I would assume that define-registrar would expand in to code that applies generic functions though. 2016-11-30T07:47:54Z fiddlerwoaroof: (defparameter xxx (make-hash-table)) (defmethod register ((registry (eql xxx)) ...))... 2016-11-30T07:47:54Z fiddlerwoaroof: 2016-11-30T07:48:14Z fiddlerwoaroof: Or something like that, then switch to a class when you want to use a db instead of a hash table 2016-11-30T07:48:14Z terpri quit (Read error: Connection reset by peer) 2016-11-30T07:48:47Z terpri joined #lisp 2016-11-30T07:49:15Z jackdaniel: so you basically expose xxx object if you mandate, that user provides it to the function 2016-11-30T07:49:18Z jackdaniel: that's for one 2016-11-30T07:50:01Z jackdaniel: the second problem with this is that names should be meaningful, like (register-search-provider :wonderful-provider (lambda (obj) nil)) 2016-11-30T07:50:30Z jackdaniel: because it is a part of a funcionality, stock name "register" isn't meaningful here 2016-11-30T07:50:43Z jackdaniel: it's basically singleton collection with setters/getters/listers 2016-11-30T07:51:11Z pillton: jackdaniel: There are some systems for defining namespaces. e.g. https://github.com/guicho271828/lisp-namespace 2016-11-30T07:51:31Z Harag joined #lisp 2016-11-30T07:51:47Z pillton: jackdaniel: Not sure that project satisfies your use case though. 2016-11-30T07:52:06Z pillton: jackdaniel: It does provide support for lexical registrations though. 2016-11-30T07:52:26Z jackdaniel: maybe I didn't express my need clear. I want to have a variable internally with a funcitonal interface exported. The question is whenever it is /elegant enough/ to simplify creation of it with a macro :) 2016-11-30T07:52:53Z Bike: well, fuck elegance, it's simple and easy and that's enough 2016-11-30T07:52:58Z jackdaniel: I know what I want to do and how 2016-11-30T07:53:03Z jackdaniel: right 2016-11-30T07:53:16Z Bike: no need to think about it too much really 2016-11-30T07:53:44Z fiddlerwoaroof: You'll discover whether or not it's elegant, once you come back to the code in a month :) 2016-11-30T07:53:55Z jackdaniel: you've got a point here, but I have gathered a nice idea how to avoid implicit symbol creation, so it's not a waste of time happily 2016-11-30T07:54:05Z jackdaniel: ↑ was directed to Bike 2016-11-30T07:59:54Z Beetny joined #lisp 2016-11-30T08:03:12Z angavrilov joined #lisp 2016-11-30T08:03:23Z shka_ joined #lisp 2016-11-30T08:03:42Z Davidbrcz quit (Ping timeout: 244 seconds) 2016-11-30T08:10:04Z stepnem joined #lisp 2016-11-30T08:12:19Z sword quit (Ping timeout: 250 seconds) 2016-11-30T08:12:39Z igam joined #lisp 2016-11-30T08:17:59Z avalokite joined #lisp 2016-11-30T08:24:21Z `JRG joined #lisp 2016-11-30T08:24:48Z mishoo joined #lisp 2016-11-30T08:28:59Z Bike quit (Quit: natural) 2016-11-30T08:30:34Z shikhin quit (Ping timeout: 244 seconds) 2016-11-30T08:30:42Z shikhin joined #lisp 2016-11-30T08:31:48Z fouric quit (Ping timeout: 250 seconds) 2016-11-30T08:37:15Z scymtym joined #lisp 2016-11-30T08:37:51Z nowhere_man joined #lisp 2016-11-30T08:43:01Z `JRG quit (Ping timeout: 260 seconds) 2016-11-30T08:44:46Z moei joined #lisp 2016-11-30T08:52:18Z Joreji joined #lisp 2016-11-30T08:53:38Z williamyaoh: :quit 2016-11-30T08:53:43Z williamyaoh: whoops 2016-11-30T08:53:46Z williamyaoh quit (Quit: leaving) 2016-11-30T08:54:42Z gingerale quit (Remote host closed the connection) 2016-11-30T09:02:10Z fouric joined #lisp 2016-11-30T09:03:48Z hhdave joined #lisp 2016-11-30T09:05:29Z vlatkoB quit (Ping timeout: 260 seconds) 2016-11-30T09:05:36Z Oddity quit (Ping timeout: 250 seconds) 2016-11-30T09:07:02Z vlatkoB joined #lisp 2016-11-30T09:07:39Z zooey quit (Ping timeout: 245 seconds) 2016-11-30T09:08:20Z hhdave quit (Ping timeout: 265 seconds) 2016-11-30T09:14:42Z Einwq joined #lisp 2016-11-30T09:15:02Z zooey joined #lisp 2016-11-30T09:15:07Z shka joined #lisp 2016-11-30T09:15:44Z trueneu quit (Max SendQ exceeded) 2016-11-30T09:16:11Z shka_ quit (Ping timeout: 268 seconds) 2016-11-30T09:25:51Z nostoi joined #lisp 2016-11-30T09:28:30Z Harag quit (Ping timeout: 252 seconds) 2016-11-30T09:28:50Z reverse_light quit (Remote host closed the connection) 2016-11-30T09:29:07Z DeadTrickster quit (Ping timeout: 265 seconds) 2016-11-30T09:29:36Z varjag joined #lisp 2016-11-30T09:31:18Z ssice quit (Read error: Connection reset by peer) 2016-11-30T09:31:47Z FreeBirdLjj joined #lisp 2016-11-30T09:32:09Z DeadTrickster joined #lisp 2016-11-30T09:36:11Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2016-11-30T09:37:49Z DeadTrickster quit (Ping timeout: 265 seconds) 2016-11-30T09:39:51Z DeadTrickster joined #lisp 2016-11-30T09:46:49Z DeadTrickster quit (Ping timeout: 252 seconds) 2016-11-30T09:49:09Z strelox joined #lisp 2016-11-30T09:49:10Z william3 joined #lisp 2016-11-30T09:53:49Z defaultxr quit (Ping timeout: 260 seconds) 2016-11-30T10:02:38Z mishoo quit (Ping timeout: 256 seconds) 2016-11-30T10:04:43Z [jlk] joined #lisp 2016-11-30T10:04:56Z younder: hrm.. lineinfo has a terminfo.lisp, but instead of reading the terminfo it hardcodes the values. It looks like he intened to read it from a file but in the end tok the terminfo file and 'massaged' it into a working definition. (emacs is great for that) 2016-11-30T10:06:37Z shka quit (Ping timeout: 252 seconds) 2016-11-30T10:06:57Z william3 quit (Remote host closed the connection) 2016-11-30T10:16:18Z Colleen_ joined #lisp 2016-11-30T10:16:31Z pierpa joined #lisp 2016-11-30T10:16:58Z neoncont_ joined #lisp 2016-11-30T10:17:52Z unbalanced joined #lisp 2016-11-30T10:18:03Z paroneay` joined #lisp 2016-11-30T10:18:19Z beaky1 joined #lisp 2016-11-30T10:18:40Z alpert quit (Remote host closed the connection) 2016-11-30T10:18:47Z nicdev` joined #lisp 2016-11-30T10:19:11Z askatasuna quit (Ping timeout: 258 seconds) 2016-11-30T10:19:13Z angular_mike_ quit (Ping timeout: 258 seconds) 2016-11-30T10:19:13Z p_l quit (Ping timeout: 258 seconds) 2016-11-30T10:19:16Z alpert joined #lisp 2016-11-30T10:19:18Z unbalancedparen quit (Read error: Connection reset by peer) 2016-11-30T10:19:18Z zacts quit (Ping timeout: 258 seconds) 2016-11-30T10:19:18Z alphor quit (Ping timeout: 258 seconds) 2016-11-30T10:19:18Z brichot quit (Ping timeout: 258 seconds) 2016-11-30T10:19:18Z mtd quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z les quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z varjag quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z neoncontrails quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z paroneayea quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z seg quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z Cymew quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z beaky quit (Ping timeout: 258 seconds) 2016-11-30T10:19:19Z vsync quit (Ping timeout: 258 seconds) 2016-11-30T10:19:21Z yeticry quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z Khisanth quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z younder quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z N3vYn quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z Colleen quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z cpt_nemo quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z AeroNotix quit (Ping timeout: 258 seconds) 2016-11-30T10:19:22Z nicdev quit (Ping timeout: 258 seconds) 2016-11-30T10:19:23Z mrSpec quit (Ping timeout: 258 seconds) 2016-11-30T10:19:23Z Colleen_ is now known as Colleen 2016-11-30T10:19:38Z aeth quit (Ping timeout: 258 seconds) 2016-11-30T10:19:40Z drmeister quit (Ping timeout: 258 seconds) 2016-11-30T10:19:40Z shymega quit (Ping timeout: 258 seconds) 2016-11-30T10:19:40Z jself quit (Ping timeout: 258 seconds) 2016-11-30T10:19:40Z el-mikl quit (Ping timeout: 258 seconds) 2016-11-30T10:19:40Z frug72 quit (Ping timeout: 258 seconds) 2016-11-30T10:20:14Z vsync joined #lisp 2016-11-30T10:20:15Z brichot joined #lisp 2016-11-30T10:20:21Z mtd joined #lisp 2016-11-30T10:20:59Z p_l joined #lisp 2016-11-30T10:21:10Z yeticry joined #lisp 2016-11-30T10:21:29Z el-mikl joined #lisp 2016-11-30T10:21:31Z aeth joined #lisp 2016-11-30T10:21:53Z ski_ joined #lisp 2016-11-30T10:22:02Z wyan quit (Ping timeout: 252 seconds) 2016-11-30T10:22:29Z ghostlight quit (Ping timeout: 256 seconds) 2016-11-30T10:22:33Z frug72 joined #lisp 2016-11-30T10:23:03Z alphor joined #lisp 2016-11-30T10:24:00Z arrsim_ joined #lisp 2016-11-30T10:24:04Z angular_mike_ joined #lisp 2016-11-30T10:24:23Z wyan joined #lisp 2016-11-30T10:24:27Z mrSpec joined #lisp 2016-11-30T10:24:28Z AeroNotix joined #lisp 2016-11-30T10:24:30Z shymega joined #lisp 2016-11-30T10:24:32Z seg joined #lisp 2016-11-30T10:24:51Z mrSpec is now known as Guest68459 2016-11-30T10:25:03Z les joined #lisp 2016-11-30T10:25:12Z askatasuna joined #lisp 2016-11-30T10:25:18Z drmeister joined #lisp 2016-11-30T10:25:44Z arrsim quit (Ping timeout: 258 seconds) 2016-11-30T10:25:45Z mikaelj quit (Ping timeout: 258 seconds) 2016-11-30T10:25:45Z ski quit (Ping timeout: 258 seconds) 2016-11-30T10:25:45Z brucem quit (Ping timeout: 258 seconds) 2016-11-30T10:25:55Z nhandler quit (Ping timeout: 622 seconds) 2016-11-30T10:25:55Z arrsim_ is now known as arrsim 2016-11-30T10:26:34Z mikaelj joined #lisp 2016-11-30T10:27:03Z jself joined #lisp 2016-11-30T10:27:25Z nhandler joined #lisp 2016-11-30T10:27:51Z Khisanth joined #lisp 2016-11-30T10:27:52Z brucem joined #lisp 2016-11-30T10:29:01Z alpert quit (Remote host closed the connection) 2016-11-30T10:29:36Z alpert joined #lisp 2016-11-30T10:29:52Z alpert quit (Remote host closed the connection) 2016-11-30T10:30:08Z alpert joined #lisp 2016-11-30T10:30:29Z N3vYn joined #lisp 2016-11-30T10:32:16Z younder joined #lisp 2016-11-30T10:33:08Z FreeBirdLjj joined #lisp 2016-11-30T10:33:16Z MolluskEmpire joined #lisp 2016-11-30T10:35:54Z otjura joined #lisp 2016-11-30T10:36:30Z cpt_nemo joined #lisp 2016-11-30T10:37:09Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2016-11-30T10:37:15Z klltkr quit (Ping timeout: 246 seconds) 2016-11-30T10:40:49Z zacts joined #lisp 2016-11-30T10:41:04Z ghostlight joined #lisp 2016-11-30T10:42:27Z neoncont_ quit (Ping timeout: 260 seconds) 2016-11-30T10:44:10Z ovenpasta joined #lisp 2016-11-30T10:46:09Z Guest68459 quit (Changing host) 2016-11-30T10:46:09Z Guest68459 joined #lisp 2016-11-30T10:47:01Z el-mikl quit (Ping timeout: 260 seconds) 2016-11-30T10:47:10Z test1600 quit (Quit: Leaving) 2016-11-30T10:47:53Z el-mikl joined #lisp 2016-11-30T10:48:11Z Guest68459 left #lisp 2016-11-30T10:51:13Z tanuzzo quit (Ping timeout: 260 seconds) 2016-11-30T10:51:56Z DeadTrickster joined #lisp 2016-11-30T10:58:01Z tanuzzo joined #lisp 2016-11-30T11:01:07Z beaky1 is now known as beaky 2016-11-30T11:01:13Z william3 joined #lisp 2016-11-30T11:02:36Z younder: aah 'infocmp' decompiles terminfo into text. 2016-11-30T11:04:21Z gniourf quit (Ping timeout: 250 seconds) 2016-11-30T11:06:17Z nowhere_man quit (Ping timeout: 240 seconds) 2016-11-30T11:07:26Z nullniverse quit (Quit: Leaving) 2016-11-30T11:08:40Z DeadTrickster quit (Ping timeout: 258 seconds) 2016-11-30T11:13:20Z [jlk] quit (Remote host closed the connection) 2016-11-30T11:15:12Z varjag joined #lisp 2016-11-30T11:16:58Z hhdave joined #lisp 2016-11-30T11:17:17Z gniourf joined #lisp 2016-11-30T11:23:15Z nostoi quit (Quit: Verlassend.) 2016-11-30T11:25:51Z ovenpasta quit (Ping timeout: 260 seconds) 2016-11-30T11:27:09Z MoALTz_ is now known as MoALTz 2016-11-30T11:28:08Z loke`: Hello 2016-11-30T11:30:03Z heddwch quit (Ping timeout: 260 seconds) 2016-11-30T11:31:18Z Oddity joined #lisp 2016-11-30T11:31:24Z clog quit (Ping timeout: 265 seconds) 2016-11-30T11:32:09Z ovenpasta joined #lisp 2016-11-30T11:32:52Z heddwch joined #lisp 2016-11-30T11:35:11Z Oddity quit (Read error: Connection reset by peer) 2016-11-30T11:36:31Z otjura quit (Quit: Konversation terminated!) 2016-11-30T11:36:56Z shdeng quit (Quit: Leaving) 2016-11-30T11:37:09Z Xach: ahoy loke` 2016-11-30T11:37:16Z loke`: Hello Xach 2016-11-30T11:37:20Z loke`: What's happening? 2016-11-30T11:39:56Z mishoo joined #lisp 2016-11-30T11:40:46Z Xach: external-format hacking 2016-11-30T11:41:29Z loke`: In what context? 2016-11-30T11:41:37Z marusich quit (Ping timeout: 240 seconds) 2016-11-30T11:41:39Z loke`: External formats should be easy these days. UTF-8 or bust? 2016-11-30T11:42:28Z Xach: loke`: web client 2016-11-30T11:42:47Z loke`: Xach: For what? 2016-11-30T11:43:03Z DeadTrickster joined #lisp 2016-11-30T11:43:08Z loke`: Hello Dea 2016-11-30T11:43:12Z loke`: Hello DeadTrickster 2016-11-30T11:43:16Z younder: In my case I am messing with the lineedit package. Unraveling out the terminfo interface. 2016-11-30T11:45:54Z seg quit (Ping timeout: 265 seconds) 2016-11-30T11:46:02Z loke` is hypothesising about the ability to reimplement the Emacs core in CL. 2016-11-30T11:46:17Z loke`: Still wondering if I should actually start that project. 2016-11-30T11:46:39Z flip214: loke`: isn't that what Second-Climacs, hemlock, etc. have done or tried? 2016-11-30T11:47:13Z loke`: flip214: jackdaniel pointed me to an attempt to do it for Hemlock, but I don't know the results. 2016-11-30T11:47:16Z loke`: Any other attempts? 2016-11-30T11:47:42Z flip214: loke`: second-climacs? 2016-11-30T11:47:50Z loke`: My idea is basically to implement the native functions (1188 of them) in CL, so that the rest of Emacs (the Lisp parts) can run on top of it. 2016-11-30T11:48:12Z flip214: loke`: http://cliki.net/CL-Emacs 2016-11-30T11:48:54Z isoraqathedh: It's somewhat annoying that paredit automatically matches [] and in CL even though that pair doesn't have any special meaning in it. 2016-11-30T11:48:57Z younder: Just added C-Arrow-left for move-word-forward etc after understanding the cryptic escape codes generated. 2016-11-30T11:49:16Z flip214: oh, and there's another try at that, see neomacs, https://github.com/adolenc/cl-neovim/issues/1 2016-11-30T11:49:28Z loke`: flip214: Right. Those are Emacs-like editrs in CL. My idea would be to base the work on one of those, but actually implementing the core Emacs functions in it, so that Emacs Lisp code (this includes all the Elisp that is part of Emacs itself0 can run on it. 2016-11-30T11:49:39Z isoraqathedh: I'm not sure if setting the keys [ and ] to self-insert mode will bork Elisp. 2016-11-30T11:49:44Z loke`: That is what I'm wondering if anyone has ever attempted (and got anywehre) 2016-11-30T11:49:46Z isoraqathedh: elisp-mode, rather. 2016-11-30T11:50:14Z seg joined #lisp 2016-11-30T11:50:46Z loke`: isoraqathedh: There is a way to csutmise which symbols are considered parens in Paredit. 2016-11-30T11:50:57Z isoraqathedh: But is it global? 2016-11-30T11:51:03Z isoraqathedh: I would want [] to match in Elisp but not in CL. 2016-11-30T11:54:02Z loke`: isoraqathedh: What if you locally remove pareid-wrap-square from paredit-wrap-commands 2016-11-30T11:54:03Z loke`: ? 2016-11-30T11:55:55Z loke`: isoraqathedh: Right, so you do it only locally. 2016-11-30T11:56:17Z loke`: You set it buffer0local in the init-hook for Lisp-mode 2016-11-30T11:56:44Z attila_lendvai joined #lisp 2016-11-30T11:58:04Z justinabrahms quit (Quit: ZNC - http://znc.in) 2016-11-30T11:58:29Z marusich joined #lisp 2016-11-30T12:00:31Z justinabrahms joined #lisp 2016-11-30T12:01:02Z nowhere_man joined #lisp 2016-11-30T12:01:04Z younder: is there a portable way of sb-ext:posix-getenv 2016-11-30T12:01:14Z HammyJammy joined #lisp 2016-11-30T12:01:20Z scymtym: younder: uiop:getenv 2016-11-30T12:02:19Z scymtym: younder: hasn't the terminfo extraction from lineinfo already happened? there is a terminfo project in quicklisp that seems to be just that 2016-11-30T12:03:16Z younder: I am having probles mapping C-Left arrow etc. it crashes lineedit. 2016-11-30T12:03:18Z william3 quit (Remote host closed the connection) 2016-11-30T12:04:59Z JammyHammy quit (Ping timeout: 244 seconds) 2016-11-30T12:05:27Z Oddity joined #lisp 2016-11-30T12:05:27Z Oddity quit (Changing host) 2016-11-30T12:05:28Z Oddity joined #lisp 2016-11-30T12:17:23Z william3 joined #lisp 2016-11-30T12:26:15Z al-damiri joined #lisp 2016-11-30T12:30:43Z Beetny quit (Ping timeout: 260 seconds) 2016-11-30T12:32:19Z ebrasca joined #lisp 2016-11-30T12:34:38Z FreeBirdLjj joined #lisp 2016-11-30T12:34:55Z gniourf quit (Ping timeout: 258 seconds) 2016-11-30T12:39:04Z mishoo quit (Ping timeout: 268 seconds) 2016-11-30T12:39:05Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2016-11-30T12:39:18Z neoncontrails joined #lisp 2016-11-30T12:43:44Z Keep0wer quit (Quit: Leaving) 2016-11-30T12:46:14Z kobain joined #lisp 2016-11-30T12:47:31Z igam: loke: have a look at http://tromey.com/blog/?p=709 http://tromey.com/blog/?p=751 2016-11-30T12:48:32Z igam: loke: I propose another way to integrate emacs into Common Lisp: write a C compiler targetting Common Lisp. Then you will be able to compile the emacs C code and run it in a Common Lisp implementation; add emacs-lisp <-> Common-Lisp FFI; profit! 2016-11-30T12:48:39Z gniourf joined #lisp 2016-11-30T12:51:14Z brucem quit (Changing host) 2016-11-30T12:51:14Z brucem joined #lisp 2016-11-30T12:51:29Z phoe: aw geez not again 2016-11-30T12:51:51Z papachan joined #lisp 2016-11-30T12:51:55Z igam: loke: I started https://framagit.org/com-informatimago/com-informatimago/tree/master/languages/c11 2016-11-30T12:52:03Z brucem: morning 2016-11-30T12:52:08Z igam: phoe: just giving references. 2016-11-30T12:54:44Z igam: loke: also, Hemlock contains some emacs lisp stuff. 2016-11-30T12:55:57Z krrrcks quit (Ping timeout: 240 seconds) 2016-11-30T12:56:55Z william3 quit (Remote host closed the connection) 2016-11-30T12:57:29Z m00natic joined #lisp 2016-11-30T12:58:35Z krrrcks joined #lisp 2016-11-30T12:58:43Z cibs quit (Ping timeout: 268 seconds) 2016-11-30T13:00:10Z cibs joined #lisp 2016-11-30T13:02:44Z dddddd joined #lisp 2016-11-30T13:03:40Z clog joined #lisp 2016-11-30T13:07:14Z william3 joined #lisp 2016-11-30T13:08:05Z sdothum joined #lisp 2016-11-30T13:09:53Z marusich quit (Quit: Leaving) 2016-11-30T13:11:00Z freehck joined #lisp 2016-11-30T13:11:36Z marusich joined #lisp 2016-11-30T13:14:44Z MolluskEmpire quit (Ping timeout: 256 seconds) 2016-11-30T13:17:23Z avalokite quit (Ping timeout: 250 seconds) 2016-11-30T13:18:04Z nowhere_man quit (Remote host closed the connection) 2016-11-30T13:18:06Z deank quit (Remote host closed the connection) 2016-11-30T13:18:27Z nowhere_man joined #lisp 2016-11-30T13:20:45Z MolluskEmpire joined #lisp 2016-11-30T13:23:26Z travv0 joined #lisp 2016-11-30T13:24:00Z loke`: igam: I'm not sure that's a very good idea. 2016-11-30T13:24:17Z loke`: You'll end up with all the drawbacks of Emacs with none of the benefits. 2016-11-30T13:26:13Z igam: loke`: nope. The only drawback we'd keep, is that we'd still have to use emacs lisp code. But the problem it solves is that we could use emacs lisp code without having to rewrite it entirely (and third party libraries) in Common Lisp, which we cannot do. Then we can use Common Lisp for our own emacs extensions, and we can use FFI, threads, whatever the underlying CL implementation provides. 2016-11-30T13:27:09Z igam: Agreed, it'd be better if all the emacs code was rewritten cleanly in CL, but this will never happen (until you have an AI and several centuries processor time to do it). 2016-11-30T13:27:38Z flip214: igam: a CL decompiler might be more reasonable ;) 2016-11-30T13:27:48Z igam: (Happily, the AI will be able to rewrite it in less than a day on Amazon cloud, but you'll still have to pay for the century proessor time). 2016-11-30T13:27:55Z igam: flip214: what do you mean? 2016-11-30T13:28:14Z flip214: instead of a AI to convert, just decompile the binary to CL code. 2016-11-30T13:28:29Z flip214: *an AI 2016-11-30T13:29:02Z igam: Oh, and the big advantage of implementing a C -> CL translator, is that we won't have to maintain emacs, mostly. We will just have merge new versions and recompile them. And it'll work with any target future CL implementation too. 2016-11-30T13:29:32Z igam: Oh, and another advantage is that you'll be able to use this C compiler to compile other stuff. Perhaps c-python and ruby implementations, etc. 2016-11-30T13:30:01Z igam: flip214: read tromey blog, and my answer. 2016-11-30T13:31:14Z loke`: igam: But you'll still be using the current ELisp implementaiton, just that it's compiled by a CL compiler instead of C. 2016-11-30T13:31:26Z loke`: The elisp code won't run in CL 2016-11-30T13:31:57Z loke`: igam: Well, being able to compile C into Lisp certainly has plenty of benefits. 2016-11-30T13:32:03Z loke`: I just don't think Emacs is the main one. 2016-11-30T13:32:14Z loke`: I'd love to have a C-compiler that tagets Lisp. 2016-11-30T13:32:22Z loke`: Didn't the Lisp machines of yore have that? 2016-11-30T13:32:30Z igam: loke`: the emacs code will be compiled by the CL compiler and will be running inside the CL implementation. 2016-11-30T13:32:46Z igam: loke`: each C function will be compiled as a CL function, that you can call from Cl. 2016-11-30T13:32:52Z igam: What more do you want? 2016-11-30T13:33:16Z igam: Oh, elisp. elisp will be compiled to byte code and will be executed by a C VM compiled to CL, ie. a CL function. 2016-11-30T13:33:27Z igam: How is it not running in CL? 2016-11-30T13:33:30Z loke`: igam: Right. But I wanted to have the Elisp objects being actual CL objects. An elisp cons call literally be a CL cons. An elisp closure would be a CL closure. The only thing that would be problematic are Emacs strings, which can't be mapped directly to CL strings. 2016-11-30T13:33:38Z lemonpie: lol, this is absurd 2016-11-30T13:33:41Z igam: Now, indeed, you have to have a FFI to be able to call an elisp function from CL. 2016-11-30T13:33:57Z loke`: igam: Right. That's what I wanted to avoid. 2016-11-30T13:34:08Z loke`: I wanted the Lisp engine to _be_ CL. 2016-11-30T13:34:08Z igam: But you won't do that much, since we're CL programmers, we'll write our stuff in CL, relying on CL libraries, not on elisp libraries. 2016-11-30T13:34:23Z loke`: igam: True, but Emacs users won't switch that easily. 2016-11-30T13:34:40Z igam: The elisp code is only used because it implements features we don't want to do without, but that we don't have the means to re-implement in CL, such as org-mode. 2016-11-30T13:34:45Z loke`: My hope was to end up with somethat that could actually replace the C engine in Emacs. 2016-11-30T13:35:23Z weeber1 joined #lisp 2016-11-30T13:35:24Z igam: loke`: the mapping of elisp types to CL types can be implemented by the VM. Ie. yes, we'll have to rewrite/adapt a few headers. 2016-11-30T13:35:33Z loke`: igam: I fully understand your idea, I think. It's just we have different ideals here. In my vision, Elisp would simply be a DSL for CL. 2016-11-30T13:35:44Z igam: This will be the value add we'll provide, and this will be what we'll have to maintain! 2016-11-30T13:36:32Z igam: loke`: This is what hemlock does, just implementing elisp macros and functions in CL. The problem here is that we don't have resources to do a complete enough job for it to be useful, or even usable with the smallest elisp library. 2016-11-30T13:37:32Z igam: The alternative of course would be to be South African, earn a lot of money doing anything but CL, and then instead of going to space and financing ubuntu, or financing tesla and spacex, you'd finance heavily CL developments. 2016-11-30T13:38:03Z igam: (possibly being South African is optional, I'm not sure). 2016-11-30T13:38:32Z igam: loke`: Lisp machines had Zeta-C; sources available, difficult to port to Common Lisp. 2016-11-30T13:38:55Z igam: And it's an old C, nowadays you'll want most of C11. 2016-11-30T13:40:24Z loke`: igam: Well, I haven't written a single line of code for any of this myself, so there's that. 2016-11-30T13:41:30Z igam: loke`: I've completed the C pre-processor of my C11 C->CL translator, and started the parser. 2016-11-30T13:41:33Z loke`: igam: I looked at writing a code generator for LLVM that targets Lisp. I quickly gave up on that since their backends work on an instruction level. I.e. they have an asusmption of some basic behaviour of the underlying architecture, such as having registers. :-) 2016-11-30T13:42:00Z william3 quit (Remote host closed the connection) 2016-11-30T13:42:07Z igam: loke`: this could still be a good idea to pursue, since it could give results rapidly. 2016-11-30T13:42:17Z brucem: loke`: You'd be better starting from how WebAssembly and asm.js generation from LLVM happens. 2016-11-30T13:42:30Z igam: (deftype registers () (vector 16)) 2016-11-30T13:43:01Z loke`: brucem: Yes. But I don't want that :-) 2016-11-30T13:43:13Z loke`: I'd like a C function to a lisp defun 2016-11-30T13:43:40Z brucem: loke`: I don't mean to use WebAssembly or asm.js ... just that a lot of the issues that you would or did run into have been dealt with there. 2016-11-30T13:43:44Z flip214: loke`: interpreted, via FFI, or a _real_ translation? 2016-11-30T13:43:55Z loke`: flip214: the C code? 2016-11-30T13:44:12Z loke`: flip214: Well, if you want to use LLVM, you're going to end up with functions that contains lots and lots of SETQ :-) 2016-11-30T13:44:15Z william3 joined #lisp 2016-11-30T13:44:27Z flip214: clang can give you an AST... you "only" have to convert it to the right notation. 2016-11-30T13:44:29Z igam: loke`: so, translating C to lisp at a high level would be very nice. But: 1- we would now have to maintain cl-emacs. The current maintainers of GNU emacs wouldn't take this CL sources (they prefer guile). 2016-11-30T13:45:29Z william3 quit (Remote host closed the connection) 2016-11-30T13:45:42Z william3 joined #lisp 2016-11-30T13:45:47Z igam: AST in the C world is not so much a good point as it could be with other programming languages. (and even worse for C++). Ie, the "Abstract" part is all but. 2016-11-30T13:45:58Z loke`: actually, it's rms that dislikes CL 2016-11-30T13:46:06Z loke`: (for completely irrational reasons) 2016-11-30T13:46:36Z igam: Or, say, hysterical ;-) 2016-11-30T13:46:49Z loke`: igam: Another alternative would be to use the Emacs module system to load, say, ECL into it and provide a CL->elisp bridge. 2016-11-30T13:47:07Z loke`: That's probably the fastest way to get CL into Emacs. Should be doable in a weekend. 2016-11-30T13:47:15Z igam: loke`: yes, nowadays it's a possibility. 2016-11-30T13:49:32Z shka joined #lisp 2016-11-30T13:50:35Z loke`: igam: What can the c11 project do at the moment? 2016-11-30T13:50:42Z weeber1 quit (Quit: leaving) 2016-11-30T13:51:02Z igam: Pre-process source files. 2016-11-30T13:51:34Z loke`: Does it build an AST? 2016-11-30T13:51:36Z Blukunfando quit (Ping timeout: 250 seconds) 2016-11-30T13:52:21Z igam: https://framagit.org/com-informatimago/com-informatimago/blob/master/languages/c11/scratch.lisp#L48 2016-11-30T13:52:57Z igam: No, it only tokenize the source for the purposes of the pre-processor. 2016-11-30T13:53:13Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-11-30T13:53:36Z loke`: igam: I see. So lots of hard work to get it to a functioning system. 2016-11-30T13:53:53Z ski_ is now known as ski 2016-11-30T13:54:04Z loke`: I wonder if a GCC backend would be better (less low-level). I've never tried, and is there documentation on this? 2016-11-30T13:54:23Z attila_lendvai joined #lisp 2016-11-30T13:54:23Z attila_lendvai quit (Changing host) 2016-11-30T13:54:23Z attila_lendvai joined #lisp 2016-11-30T13:55:15Z igam: Well, apparently, the parser can already do a few things like https://framagit.org/com-informatimago/com-informatimago/blob/master/languages/c11/tests/expressions.sexp from expressions.c ; but it remains some bugs in the grammar… 2016-11-30T13:55:49Z igam: loke`: Well, I've not looked a the latest gcc (6 and now 7), but basically, gcc sources, and it's not simple. 2016-11-30T13:55:52Z loke`: "apparently"? :-) You forgot your own code? 2016-11-30T13:56:03Z igam: loke`: yes, it's more than one year. 2016-11-30T13:56:07Z loke`: It's not simple for LLVM either. :-) 2016-11-30T13:56:44Z loke`: But what brucem said, one should be able to base it on asm.js. 2016-11-30T13:56:59Z alpert quit (Remote host closed the connection) 2016-11-30T13:57:34Z alpert joined #lisp 2016-11-30T13:57:47Z igam: Now, the happy thing is that after the parser (perhaps I'll have a few weeks available in 2017 to work on it), code generation should be simple enough, since it's generating CL code :-) 2016-11-30T13:58:24Z igam: The difficulty is to generate the right CL code so that we're close enough to gcc semantics for the emacs kernel to run successfully. 2016-11-30T13:58:46Z travv0 quit (Remote host closed the connection) 2016-11-30T13:59:08Z loke`: Hmm... Looking at the emscripten compiler code, and there is no C code in there. It's all JS!? 2016-11-30T13:59:45Z loke`: And python code in there too 2016-11-30T14:01:56Z alpert quit (Ping timeout: 258 seconds) 2016-11-30T14:03:18Z deank joined #lisp 2016-11-30T14:07:00Z Harag joined #lisp 2016-11-30T14:07:02Z FreeBirdLjj joined #lisp 2016-11-30T14:08:39Z travv0 joined #lisp 2016-11-30T14:10:22Z avalokite joined #lisp 2016-11-30T14:13:12Z cromachina quit (Read error: Connection reset by peer) 2016-11-30T14:13:59Z younder: Well you are not going to write a C compier in a couple of weeks. To CL or othewise. 2016-11-30T14:15:13Z travv0 quit (Remote host closed the connection) 2016-11-30T14:15:20Z igam: younder: "a" C compiler, you could write it in a week end. But a "C11" or "C89" compiler able to compile the emacs sources, it's a whole other affair, indeed. 2016-11-30T14:15:27Z phoe: younder: hold my beer 2016-11-30T14:16:44Z phoe: emacs sources probably require GNU compiler extensions, correct? 2016-11-30T14:17:34Z younder: Then there are the performance issues. Both speed and memory use would be throgh the roof. 2016-11-30T14:18:08Z rpg joined #lisp 2016-11-30T14:18:10Z younder: s/spees/CPU usage/ 2016-11-30T14:19:02Z phoe: we can run it first and then gradually replace the reinterpreted C code with better CL primitives. 2016-11-30T14:19:29Z younder: Are you going to compile the libraries as well or use CFFI 2016-11-30T14:20:03Z oGMo: you realize that "compile to X" does not produce readable, usable code in X :P 2016-11-30T14:20:26Z igam: phoe: yes, it uses a few extensions. 2016-11-30T14:20:34Z SAL9000 quit (Ping timeout: 265 seconds) 2016-11-30T14:21:11Z Tex_Nick joined #lisp 2016-11-30T14:21:38Z igam: younder: well, we don't care. Once the project will be completed, we'll have available multi-tera-transistor chips running at 5 or 6 GHz, and 128 GB of RAM will be the minimum. 2016-11-30T14:21:40Z travv0 joined #lisp 2016-11-30T14:22:18Z DeadTrickster quit (Ping timeout: 246 seconds) 2016-11-30T14:22:22Z igam: oGMo: read above: it doesn't matter because CLers don't have the resources to maintain emacs, and emacs maintainers won't maintain a CL source. 2016-11-30T14:23:12Z igam: Also, I'm a little disappointed by the "FFI" integrated in emacs-25, ie. the module system: you cannot just load any random shared library, you have to define an emacs plugin… 2016-11-30T14:23:20Z oGMo: how would having emacs in CL be at all helpful to begin with :P 2016-11-30T14:23:22Z lemonpie: maintaining emacs is almost certainly easier than maintaining a C to CL compiler 2016-11-30T14:23:32Z oGMo: ^ 2016-11-30T14:23:56Z oGMo: you'd be better off working on climacs or something if you're that inclined 2016-11-30T14:24:18Z igam: oGMo: because with the addition of FFI elisp<->CL, you can now write emacs extensions in CL, and use emacs packages from CL programs. imagine: (emacs:doctor) or (emacs:tetris) from CL! 2016-11-30T14:24:21Z varjag quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2016-11-30T14:24:23Z oGMo: an elisp in CL would probably be an easier thing to maintain ;) then you could run all the emacs code, because *handwave* 2016-11-30T14:24:46Z oGMo: igam: eh 2016-11-30T14:24:48Z igam: lemonpie: How many GNU emacs maintainers? How many CLers? 2016-11-30T14:25:03Z oGMo: i have no idea why i would do that, rather than use SDL or curses or something 2016-11-30T14:25:13Z oGMo: emacs has a crap api and is rather slow 2016-11-30T14:25:20Z igam: oGMo: there's already an elisp in CL, hidden in Hemlock: it's useless, because it's not 100% of emacs and therefore org-mode doesn't run on it! 2016-11-30T14:25:32Z oGMo: igam: thus *handwave* ;) 2016-11-30T14:25:41Z dlowe: someone tried rewriting the emacs core to CL, but it was a lot harder than they had guessed and it fizzled. 2016-11-30T14:25:49Z igam: And emacs has a motherload of third party packages that you'd want to use. 2016-11-30T14:25:54Z oGMo: dlowe: doubtless 2016-11-30T14:26:00Z dlowe: guile-emacs seems a lot more reasonable of a strategy 2016-11-30T14:26:18Z igam: Look it's very easy to understand the problem: just use Hemlock for one day. Lisp programming is quite acceptable in Hemlock. But all the rest is entirely lacking. 2016-11-30T14:26:18Z macdavid313 joined #lisp 2016-11-30T14:26:21Z dlowe: a nice new CL implementation might be one that runs on guile2 2016-11-30T14:26:27Z hydraz quit (Quit: Bai.) 2016-11-30T14:26:35Z dlowe: igam: no tramp? the horror. 2016-11-30T14:26:45Z igam: Similary you could have fun with edwin, which is an emacs clone written in mit-scheme. Very nice and good for scheme programming and customization. But it doesn't have org-mode and so on. 2016-11-30T14:26:45Z hydraz joined #lisp 2016-11-30T14:26:46Z hydraz quit (Changing host) 2016-11-30T14:26:46Z hydraz joined #lisp 2016-11-30T14:27:25Z oGMo: emacs does have org-mode; CL adds nothing to this; use emacs for org-mode 2016-11-30T14:27:38Z igam: dlowe: while theyre rewritting the core in guile, we can implement a guile to CL translator. 2016-11-30T14:28:02Z igam: oGMo: this is the unix solution. We want to integrate eveyrthing inside a single lisp image. 2016-11-30T14:28:04Z dlowe: igam: guile2 is now a platform for lispy languages and supports both elisp and scheme 2016-11-30T14:28:15Z oGMo: igam: _you_ may want to 2016-11-30T14:28:15Z igam: dlowe: emacs is not written in guile yet. 2016-11-30T14:28:25Z dlowe: https://www.emacswiki.org/emacs/GuileEmacs 2016-11-30T14:28:25Z oGMo: doing so is a rather terrible idea however 2016-11-30T14:28:41Z lemonpie: afaik guilemacs works well enough to run org 2016-11-30T14:28:50Z dlowe: anyway, my point is that it would probably be straightforward to add CL to the mix 2016-11-30T14:29:11Z dlowe: It would be less nice than sbcl or ccl, but probably more nice than clisp 2016-11-30T14:29:33Z igam: Do they have a schedule to phase out C for guile? 2016-11-30T14:29:49Z DeadTrickster joined #lisp 2016-11-30T14:30:15Z dlowe: guilemacs is not an emacs effort 2016-11-30T14:30:17Z dlowe: so no 2016-11-30T14:31:07Z rlatimore joined #lisp 2016-11-30T14:31:13Z dlowe: If it becomes more popular than C emacs, they'll probably just switch one day. 2016-11-30T14:31:20Z dlowe: as happened with gcc 2016-11-30T14:31:53Z LiamH joined #lisp 2016-11-30T14:32:05Z dlowe: I mean, it's just replacing elisp, not the rest of it 2016-11-30T14:32:06Z phoe: Guilemacs's Not Usable C Compiler? 2016-11-30T14:32:12Z dlowe: and it's kind of the rest of it that's the problem 2016-11-30T14:32:13Z phoe: ^ 2016-11-30T14:32:22Z phoe: the rest is pretty ugly 2016-11-30T14:32:30Z freehck quit (Ping timeout: 250 seconds) 2016-11-30T14:32:32Z phoe: but once it's somewhat isolated, it can be rewritten in a better way 2016-11-30T14:32:35Z phoe: it just takes manpower 2016-11-30T14:32:56Z dlowe: it takes more than that, it takes coordination 2016-11-30T14:33:14Z igam: dlowe: Oh, it's a replacement for elisp. Not useful for our purpose. 2016-11-30T14:34:01Z lemonpie: it's a replacement for the elisp VM, it's expected emacs addons would still be written in elisp on guilemacs 2016-11-30T14:34:14Z dlowe: or scheme 2016-11-30T14:34:28Z dlowe: or (if someone added it) CL 2016-11-30T14:34:32Z lemonpie: yes, but they don't assume everyone will switch to the scheme interface 2016-11-30T14:37:08Z igam: ok. 2016-11-30T14:37:56Z igam: It's not bad, they're addressing the high level (elisp), and tromey and I want to address the low level (C code of emacs). Perhaps eventually we'll be able to merge and a cool and nice emacs new generation. 2016-11-30T14:38:02Z igam: entirely written in lisp. 2016-11-30T14:38:21Z igam: We'll need an implementation of guile written in CL; any taker? 2016-11-30T14:39:52Z mishoo joined #lisp 2016-11-30T14:40:25Z EvW joined #lisp 2016-11-30T14:40:40Z phoe: where's the language spec 2016-11-30T14:40:59Z mrottenkolber joined #lisp 2016-11-30T14:41:14Z jackdaniel: guile is scheme (with some extensions) 2016-11-30T14:41:31Z dlowe isn't explaining again. 2016-11-30T14:42:17Z phoe: uh 2016-11-30T14:42:22Z phoe: why do you want to implement guile in CL 2016-11-30T14:42:29Z phoe: if it's not guile that you want to replace? 2016-11-30T14:42:40Z lemonpie: what I don't understand is... if CL purity is so important to this, why would you even consider a C->CL transpiler ? 2016-11-30T14:43:26Z jackdaniel: as far as I understand the discussion it's more about being able to run emacs modules in CL editor 2016-11-30T14:43:43Z oGMo: it would not be a CL editor 2016-11-30T14:43:44Z jackdaniel: to do that, you need reasonable subset of emacs itself reimplemented (including elisp) 2016-11-30T14:43:44Z dlowe: idea: use guile elisp using CL FFI 2016-11-30T14:44:08Z dlowe: guile is *intended* to be used as a library 2016-11-30T14:44:45Z dlowe: that way you can implement the editor bits in CL, then use guile for elisp evaluation 2016-11-30T14:44:46Z oGMo: dlowe: that seems slightly more reasonable, if such a thing exists in this discussion ;) 2016-11-30T14:44:50Z jackdaniel: just like ecl (not widely known fact I'm afraid) 2016-11-30T14:44:57Z dlowe: oGMo: no, none of this is remotely reasonable 2016-11-30T14:45:38Z dlowe: jackdaniel: ecl suffers from the problem that people who like CL to want embedded CL will also write their whole program in CL :) 2016-11-30T14:45:49Z oGMo: but if guilemacs people can already run CL, then surely CL->guile->elisp is vaguely possible, but will still not produce "a CL editor" 2016-11-30T14:45:57Z oGMo: err, already run elisp 2016-11-30T14:46:00Z oGMo: need more coffee 2016-11-30T14:46:37Z warweasle joined #lisp 2016-11-30T14:46:53Z lemonpie: just rewrite the emacs core/VM in CL and convince RMS of the supreriority of CL purity by example :P 2016-11-30T14:46:59Z phoe reads guile spec, "Generic Function Invocation" 2016-11-30T14:47:00Z oGMo: ECL is a great example here though; imagine if someone wanted some CL thing "in C," and used ECL to compile CL to C to do so 2016-11-30T14:47:08Z jackdaniel: oGMo: discussion has started with a question, how hard would it be to implement elisp for climacs 2016-11-30T14:47:12Z phoe: stallman really hates CL if he let this happen 2016-11-30T14:47:14Z oGMo: the results would not be useful, obviously 2016-11-30T14:47:27Z oGMo: jackdaniel: oh, well, "hard," next question ;) 2016-11-30T14:48:16Z lemonpie: he's not even on the maintainer team anymore anyway :D 2016-11-30T14:48:26Z oGMo: if someone doesn't immediately understand this they've not used emacs more than trivially .. never touched elisp etc 2016-11-30T14:48:31Z lemonpie: besides, he's been pragmatic on occasion... 2016-11-30T14:49:51Z jackdaniel: oGMo: I don't understand, why embedding CL in C application wouldn't be useful? 2016-11-30T14:50:00Z warweasle: oGMo: That's a really good idea...IMHO. 2016-11-30T14:50:07Z oGMo: jackdaniel: that's not what i said 2016-11-30T14:50:26Z jackdaniel: could you rephrase? My english isn't perfect :( 2016-11-30T14:50:36Z lemonpie: ECL *does* produce smaller standalone binaries than SBCL, so there's that 2016-11-30T14:51:06Z lemonpie: iirc ~3MB vs ~40MB 2016-11-30T14:51:33Z jackdaniel: if you use strip, trivial application (given libecl is already in the system, not a monolithic build), yields 600KB 2016-11-30T14:52:13Z flip214: lemonpie: yeah, but needs a separate shared object with ~12MB, too. 2016-11-30T14:52:56Z jackdaniel: flip214: after stripping – 3MB 2016-11-30T14:53:03Z jackdaniel: and it's one for all applications (shared object) 2016-11-30T14:53:18Z oGMo: jackdaniel: really? well .. say someone wanted alexandria in C. using ECL to compile to C would be of little help 2016-11-30T14:53:31Z Reinisch joined #lisp 2016-11-30T14:53:37Z lemonpie: my problem with ECL atm, is that windows (yeah yeah) building has been broken for something like 3 years 2016-11-30T14:53:54Z jackdaniel: lemonpie: afaik it works fine now 2016-11-30T14:54:16Z jackdaniel: oGMo: I sometimes embed swank in C application 2016-11-30T14:54:18Z oGMo: calling into ECL for all the functions from C would, afaik, be nontrivial 2016-11-30T14:54:21Z jackdaniel: to introspect its state from outside 2016-11-30T14:54:28Z warweasle: lemonpie: It should also build with C++. 2016-11-30T14:54:38Z lemonpie: jackdaniel: i tried like 2-3 months ago and it was still broken, but i will have another look when i get chance 2016-11-30T14:54:39Z flip214: jackdaniel: how do you inspect, then? 2016-11-30T14:54:56Z flip214: needs some FFI bindings to your C code, or is there some easier way? 2016-11-30T14:55:21Z jackdaniel: oGMo: cl_funcall(...) 2016-11-30T14:55:54Z jackdaniel: flip214: if you have ECL linked in, you may use CL->C compiler, so you may use ordinary ffi 2016-11-30T14:55:56Z rumbler31 joined #lisp 2016-11-30T14:56:03Z oGMo: jackdaniel: ok i'm wrong, calling into lisp from ECL looks way easier than i remember 2016-11-30T14:56:04Z jackdaniel: ECL may load additional objects with dlopen to the working application 2016-11-30T14:56:05Z lemonpie: last time I tried getting into ECL from C was reasonably trivial if you've ever used any embedded language before 2016-11-30T14:56:21Z lemonpie: (add a comma after 'tried') 2016-11-30T14:56:21Z avalokite quit (Read error: Connection reset by peer) 2016-11-30T14:56:28Z oGMo: in fact it looks nothing like i remember, i must be thinking of something else 2016-11-30T14:56:32Z jackdaniel: "normal" ffi is linked in as well 2016-11-30T14:56:57Z Joreji quit (Ping timeout: 246 seconds) 2016-11-30T14:57:00Z igam: lemonpie: the problem the C->CL transpiler solves, is the lack of resources. 2016-11-30T14:57:09Z oGMo: you still need special API and wrapping from C to all the calls, but that'd presumably be easy enough 2016-11-30T14:57:18Z lemonpie: igam, unless you get more than 2 developers for it, i don't see how 2016-11-30T14:57:37Z warweasle: lemonpie: You mean the lisp curse? 2016-11-30T14:57:59Z igam: lemonpie: a C compiler can be written alone. It would be faster with more people, but you don't need a lot. 2016-11-30T14:58:32Z jackdaniel: oGMo: here is some example https://common-lisp.net/project/ecl/posts/ECL-Quarterly-Volume-V.html#orgheadline10 2016-11-30T14:58:45Z lemonpie: warweasle: no, igam is proposing himself (and possibly tomey) write the transpiler, so it already has less maintainers than any of the existing attempts to port emacs 2016-11-30T14:59:16Z oGMo: jackdaniel: yeah i found http://vwood.github.io/embedded-ecl.html too 2016-11-30T14:59:20Z lemonpie: i mean, sure you *maybe* could convince some other CL users to join in, but that still means a smaller set of maintainers than a CL native emacs core would have 2016-11-30T14:59:36Z igam: rewriting (or translating) emacs core in CL would have two big defects: 1- require a lot of resources to do it (it's more difficult to do a high level transformation of the source code than just a compiler targetting CL), 2- require a lot of resources to maintain it, because emacs maintainers won't turn CLispers overnight: they won't adopt our CL sources of emacs. 2016-11-30T14:59:38Z jackdaniel adds to bookmarks 2016-11-30T14:59:57Z oGMo: jackdaniel: i must be thinking of old stuff to make calls into CMUCL or similar 2016-11-30T15:00:01Z jackdaniel: recently I've added documentation for native binaries building from ECL: https://common-lisp.net/project/ecl/static/ecldoc/Extensions.html#System-building 2016-11-30T15:00:06Z flip214 quit (Ping timeout: 246 seconds) 2016-11-30T15:00:15Z lemonpie: and earlier you bemoaned that emacs has more maintainers than a CL emacs could acrue - by which I assume you're assuming emacs has more maintainers than CL users worldwide, a claim I'd doubt, but even assuming it's true.... 2016-11-30T15:00:51Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T15:00:56Z arbv joined #lisp 2016-11-30T15:01:22Z igam: But indeed, making libecl into an emacs module would be a good thing. It'll have to happen. 2016-11-30T15:01:28Z lemonpie: so by limiting your potential maintainers to CL users that want to work on a C->CL transpiler, who now need to be both experts in CL *and* C, it just seems to be narrowing your maintainence scope even more 2016-11-30T15:02:22Z jackdaniel: then we could build gcc with our lisp C ! ;-) 2016-11-30T15:03:33Z FreeBirdLjj joined #lisp 2016-11-30T15:03:57Z igam: jackdaniel: indeed, one advantage of C->CL is that it can be a generic tool, applicable to other problems. 2016-11-30T15:06:16Z lemonpie: ironically, i suspect a C->scheme transpiler would be easier than C->CL 2016-11-30T15:06:31Z phoe: lemonpie: would be 2016-11-30T15:06:32Z TMA: jackdaniel: that would be a good stress test by the way 2016-11-30T15:06:40Z phoe: Scheme has a 60-page standard 2016-11-30T15:06:49Z phoe: CL's standard is over 1000 pages IIRC 2016-11-30T15:07:09Z phoe: oh waittt 2016-11-30T15:07:14Z jackdaniel: most of the problems would emerge from the fact, that many C programs depend on pointer arithmetic (what is unconformant of course) 2016-11-30T15:07:16Z phoe: you want to transpile C into Scheme 2016-11-30T15:07:19Z phoe: not the other way around 2016-11-30T15:07:31Z igam: lemonpie: I don't think it would make a big difference. The biggest problem will be to reproduce enough C semantics to be able to translate correctly emacs C sources. 2016-11-30T15:07:47Z igam: phoe: what matters is the size of the C11 standard! 2016-11-30T15:07:54Z lemonpie: igam, i see problems with setjmp/longjmp and goto translation 2016-11-30T15:08:07Z igam: Goto is good. 2016-11-30T15:08:23Z lemonpie: does SBCL do TCO ? 2016-11-30T15:08:42Z jackdaniel: lemonpie: it can, but it doesn't by default I think 2016-11-30T15:08:56Z jackdaniel: TCO is confusing from the debugging standpoint 2016-11-30T15:09:00Z lemonpie: ah, yes, it's the new interpreter, i remember seeing it in there when i tried it a few months ago 2016-11-30T15:09:56Z igam: there are 24 occurences of longjmp or setjmp in emacs-25.1/src/ 2016-11-30T15:10:13Z Cymew joined #lisp 2016-11-30T15:10:13Z igam: Perhaps they'll have to be handled ad-hoc or manually? 2016-11-30T15:10:41Z igam: lemonpie: good point! 2016-11-30T15:10:59Z phoe: igam: ho shit, yes 2016-11-30T15:11:14Z phoe: jackdaniel: yes, it does, and it does it by default 2016-11-30T15:11:22Z phoe: try running (defun foo () (foo)) (foo) in SBCL 2016-11-30T15:11:32Z phoe: it should go into a loop instead of blowing the stack. 2016-11-30T15:11:38Z phoe: lemonpie: ^ 2016-11-30T15:11:47Z lemonpie: phoe, fair enough 2016-11-30T15:11:54Z phoe: but it is not required to 2016-11-30T15:12:03Z lemonpie: my sbcl here is terribly ood 2016-11-30T15:12:25Z jackdaniel: phoe: tail recursion is easier than general tail call optimization 2016-11-30T15:12:31Z igam: well, 21 occurences. 2016-11-30T15:13:10Z jackdaniel: phoe: try (defun foo () (bar)) (defun bar () (foo)) 2016-11-30T15:13:13Z jackdaniel: and call (foo) 2016-11-30T15:14:25Z jackdaniel: bbl, see you \o 2016-11-30T15:14:28Z Blkt quit (Remote host closed the connection) 2016-11-30T15:14:28Z fe[nl]ix quit (Remote host closed the connection) 2016-11-30T15:14:44Z Blkt joined #lisp 2016-11-30T15:14:45Z fe[nl]ix joined #lisp 2016-11-30T15:15:09Z rumbler31 quit (Read error: Connection reset by peer) 2016-11-30T15:15:39Z rumbler31 joined #lisp 2016-11-30T15:16:19Z dyelar joined #lisp 2016-11-30T15:16:46Z flip214 joined #lisp 2016-11-30T15:16:46Z flip214 quit (Changing host) 2016-11-30T15:16:46Z flip214 joined #lisp 2016-11-30T15:18:13Z marusich quit (Ping timeout: 258 seconds) 2016-11-30T15:25:12Z igam: (defun foo () (bar)) (declaim (inline foo)) (defun bar () (foo)) ;-) 2016-11-30T15:26:38Z oleo joined #lisp 2016-11-30T15:27:20Z rippa joined #lisp 2016-11-30T15:29:54Z edgar-rft: Is that your implementation of Emacs Lisp? 2016-11-30T15:30:14Z alpert joined #lisp 2016-11-30T15:31:46Z Ioann joined #lisp 2016-11-30T15:32:26Z travv0 quit (Remote host closed the connection) 2016-11-30T15:34:24Z alpert quit (Ping timeout: 246 seconds) 2016-11-30T15:35:31Z yeticry quit (Ping timeout: 260 seconds) 2016-11-30T15:36:34Z yeticry joined #lisp 2016-11-30T15:36:39Z william3 quit (Remote host closed the connection) 2016-11-30T15:37:12Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T15:38:05Z NeverDie_ joined #lisp 2016-11-30T15:40:53Z NeverDie quit (Ping timeout: 248 seconds) 2016-11-30T15:41:12Z william3 joined #lisp 2016-11-30T15:43:22Z cibs quit (Ping timeout: 268 seconds) 2016-11-30T15:44:50Z cibs joined #lisp 2016-11-30T15:47:14Z rlatimore quit (Quit: WeeChat 1.6) 2016-11-30T15:49:23Z jurov: I heard Lisp machines did have C interpreter, it was even used for easier debugging. 2016-11-30T15:50:01Z TDT joined #lisp 2016-11-30T15:50:22Z william3 quit (Remote host closed the connection) 2016-11-30T15:51:18Z rlatimore joined #lisp 2016-11-30T15:51:43Z Harag quit (Ping timeout: 245 seconds) 2016-11-30T15:52:46Z dlowe: Pretty sure they wrote a compiler 2016-11-30T15:52:53Z dlowe: maybe an interpreter too 2016-11-30T15:53:04Z ovenpasta: jurov: https://github.com/vsedach/Vacietis 2016-11-30T15:53:05Z dlowe: All you need is a bunch of operations on an array of unsigned bytes 2016-11-30T15:53:07Z Trystam joined #lisp 2016-11-30T15:53:08Z Trystam quit (Changing host) 2016-11-30T15:53:08Z Trystam joined #lisp 2016-11-30T15:53:16Z dlowe: I was so disappointed when I looked at Vacietis 2016-11-30T15:53:21Z White_Flame: basically the webasm model 2016-11-30T15:53:35Z Xach: dlowe: why? 2016-11-30T15:53:37Z White_Flame: jurov: but it wasn't just C; there were a number of languages supported by the symbolics boxes 2016-11-30T15:53:58Z White_Flame: presumably all compiled to the native CPU lisp-friendly architecture 2016-11-30T15:54:18Z jurov: no, no array of bytes, some clever pointer emulation was discussed 2016-11-30T15:54:25Z dlowe: Xach: Eh, just that I was hoping for less of a VM. The problem was my expectation, not the project. 2016-11-30T15:54:46Z dlowe: I was still trying to get my mud into CL 2016-11-30T15:55:04Z Th30n joined #lisp 2016-11-30T15:55:41Z Tristam quit (Ping timeout: 260 seconds) 2016-11-30T15:55:55Z NeverDie joined #lisp 2016-11-30T15:56:01Z Trystam is now known as Tristam 2016-11-30T15:56:17Z ovenpasta: dlowe: the problem is that C code can be written very badly. a struct can be an array and there can be an array of structs and then you pass some item of the array somewhere else modify it and then expect that on the calling side all is syncronized. then the simplest way will be to implement the stuff as arrays and indexes 2016-11-30T15:57:10Z White_Flame: or, you just let it run slower by actually reinterpreting pointers wherever a cast was compiled in 2016-11-30T15:57:47Z White_Flame: I don't know how finnicky the C environment was; presumably it would catch things faster than just naked pointers against memory bytes 2016-11-30T15:58:31Z NeverDie_ quit (Ping timeout: 244 seconds) 2016-11-30T15:58:40Z rippa quit (Read error: Connection reset by peer) 2016-11-30T15:58:49Z jurov: White_Flame: maybe it's better to leave C largely intact, but use something like valgrind to access C variables 2016-11-30T15:59:15Z ebrasca quit (Remote host closed the connection) 2016-11-30T15:59:29Z dlowe: alternatively, just recompile your project into a shared library, and use FFI to import it, then convert it to CL bit-by-bit while always having a running copy. 2016-11-30T15:59:39Z White_Flame: I think it's better to have a very strict execution environment, especially if you're just going to bring it there to debug 2016-11-30T15:59:44Z ovenpasta: other problem is interacting of converted code with ffi code 2016-11-30T15:59:45Z dlowe: you will end up with some super ugly CL, but it'll work 2016-11-30T16:00:01Z JuanDaugherty joined #lisp 2016-11-30T16:00:15Z dlowe: You might even want to write a CL layer that uses only alien types. 2016-11-30T16:00:21Z papachan quit (Ping timeout: 260 seconds) 2016-11-30T16:00:23Z White_Flame: C is just too much of a mess to let it run free 2016-11-30T16:00:55Z White_Flame: now, I'm also talking from a developer perspective. From a C library use perspective, then having a marshalled sandbox does make more sense 2016-11-30T16:01:17Z igam: jurov: it was Zeta-C, sources available (google for them), but written in Zeta-Lisp, not in Common Lisp, and targetting Lisp Machine, not Common Lisp or x86. And implements an old C, not C11. Therefore it would be rather hard to use for the purpose. You could still have fun with it for historical reasons. 2016-11-30T16:01:39Z william3 joined #lisp 2016-11-30T16:01:51Z igam: And indeed, as White_Flame mentions, once upon a time, Lisp Machines were the #1 Ada workstations. 2016-11-30T16:02:09Z FreeBirdLjj joined #lisp 2016-11-30T16:02:43Z macin joined #lisp 2016-11-30T16:02:48Z igam: Vacietis is special: it implements reader macros to read a subset of C sources as lisp code. Unfortunately, this is way insuficient to process emacs sources. 2016-11-30T16:03:19Z macin left #lisp 2016-11-30T16:04:27Z manuel__ joined #lisp 2016-11-30T16:05:57Z william3 quit (Ping timeout: 240 seconds) 2016-11-30T16:06:18Z igam: White_Flame: Already, C is not Turing Complete: https://tdotc.wordpress.com/2012/11/20/on-the-turing-completeness-of-c-part-2/ 2016-11-30T16:06:49Z vhost- quit (Ping timeout: 250 seconds) 2016-11-30T16:07:43Z lemonpie: yes, when you define 'turing complete' to be something other than it traditionally means, good show *slow clap* 2016-11-30T16:08:02Z Petit_Dejeuner: I guess we can't write a lisp implementation in C now. :( 2016-11-30T16:08:14Z zeroish joined #lisp 2016-11-30T16:08:34Z igam: lemonpie: there are stronger arguments too. For example, the C11 standard (and neither the previous ones) don't imply that there is enough stack to be able to call any function from main! 2016-11-30T16:08:37Z lemonpie: and if your definition of turing completeness hinges on actual infinite storage, no language is turing complete 2016-11-30T16:08:59Z jdz quit (Ping timeout: 250 seconds) 2016-11-30T16:09:01Z Petit_Dejeuner: Maybe a system that requires and support hot loading? 2016-11-30T16:09:09Z jdz joined #lisp 2016-11-30T16:09:22Z Petit_Dejeuner: The operator just has to pull out and push in SD cards all day for paging. 2016-11-30T16:09:24Z paroneay` is now known as paroneayea 2016-11-30T16:09:30Z igam: lemonpie: lisp is: (loop repeat (read) collect t) 2016-11-30T16:09:43Z igam: lemonpie: it is not bounded (but by the available memory). 2016-11-30T16:10:05Z lemonpie: igam main() {start: puts("hello world\n"); goto start;} 2016-11-30T16:10:09Z lemonpie: checkmate 2016-11-30T16:10:17Z igam: On the other hand, C doesn't define any operator to access an unlimited amount of memory. 2016-11-30T16:10:33Z BusFactor1 joined #lisp 2016-11-30T16:10:42Z White_Flame: lemonpie: that's still a function call... 2016-11-30T16:10:49Z igam: lemonpie: my loop is an algorithm, a turing machine. Your loop is not an algorithm (never terminates) therefore not a turing machine. 2016-11-30T16:10:57Z igam: Don't compare apples with quetches. 2016-11-30T16:11:42Z rippa joined #lisp 2016-11-30T16:11:52Z papachan joined #lisp 2016-11-30T16:14:29Z LiamH quit (Ping timeout: 248 seconds) 2016-11-30T16:16:16Z william3 joined #lisp 2016-11-30T16:16:40Z rippa quit (Ping timeout: 260 seconds) 2016-11-30T16:17:24Z travv0 joined #lisp 2016-11-30T16:18:16Z rippa joined #lisp 2016-11-30T16:19:28Z rjmacready joined #lisp 2016-11-30T16:20:46Z william3 quit (Remote host closed the connection) 2016-11-30T16:21:12Z robotoad joined #lisp 2016-11-30T16:25:37Z edgar-rft quit (Quit: edgar-rft) 2016-11-30T16:28:26Z beach: Are there any potential problems to have a :FILE component in an ASDF system definition be in a sub-directory, as in (:file "dir/filename")? 2016-11-30T16:28:38Z neoncontrails quit (Ping timeout: 250 seconds) 2016-11-30T16:28:58Z william3 joined #lisp 2016-11-30T16:29:07Z dlowe: I think I've done that before. 2016-11-30T16:29:14Z dlowe: and didn't have any problems 2016-11-30T16:29:19Z easye: gendl has a lot of those sort of definitions. 2016-11-30T16:30:08Z easye: I think the algorithm in ASDF thunks directly into a CL:MERGE-PATHNAMES, so you should be fine. 2016-11-30T16:30:12Z william3 quit (Remote host closed the connection) 2016-11-30T16:30:22Z beach: Excellent! Thanks! 2016-11-30T16:30:24Z william3 joined #lisp 2016-11-30T16:30:31Z flamebeard quit (Quit: Leaving) 2016-11-30T16:30:32Z eivarv joined #lisp 2016-11-30T16:31:11Z isBEKaml joined #lisp 2016-11-30T16:33:12Z mathrick quit (Ping timeout: 246 seconds) 2016-11-30T16:34:23Z easye: Anybody know of any UPnP library in CL? I am about to try to CFFI libupnp, but was wondering if someone had gone down this route before.. 2016-11-30T16:37:17Z rlatimore quit (Read error: Connection reset by peer) 2016-11-30T16:43:48Z loke` quit (Ping timeout: 245 seconds) 2016-11-30T16:45:51Z igam: easye: I don't know anything about UPnP per se, but if possible, consider writing it directly in Common Lisp instead of FFI to a C library. 2016-11-30T16:46:06Z LiamH joined #lisp 2016-11-30T16:51:21Z easye: UPnP is pretty badly specified from what I can gather. It uses SOAP RPC for gawds sake. All I want to do is to produce some conforming client traffic to observe what various servers tell me, so CFFI on an existing implmentation is more ideal for my purposes. 2016-11-30T16:51:28Z k4rtik quit (Remote host closed the connection) 2016-11-30T16:53:05Z slyrus_ joined #lisp 2016-11-30T16:53:11Z attila_lendvai: SOAP?! then I'd go with cffi, no doubt... you can even try the new cffi/c2ffi stuff if you're planning to do more cffi bridging in the future. 2016-11-30T16:53:33Z easye: Yeah, SOAP. Unbelievable. 2016-11-30T16:54:14Z dyelar quit (Quit: Leaving.) 2016-11-30T16:56:49Z LiamH quit (Ping timeout: 260 seconds) 2016-11-30T16:57:30Z nowhere_man quit (Ping timeout: 250 seconds) 2016-11-30T16:58:35Z william3 quit (Remote host closed the connection) 2016-11-30T17:01:12Z Ioann quit (Quit: WeeChat 1.6) 2016-11-30T17:01:21Z yrk joined #lisp 2016-11-30T17:01:28Z dyelar joined #lisp 2016-11-30T17:01:42Z defaultxr joined #lisp 2016-11-30T17:01:53Z yrk quit (Changing host) 2016-11-30T17:01:53Z yrk joined #lisp 2016-11-30T17:02:29Z phoe: geez 2016-11-30T17:02:36Z phoe: https://www.youtube.com/watch?v=FlZMVJ9A010 <- the first thing that comes to my mind when you say SOAP 2016-11-30T17:02:53Z isBEKaml quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2016-11-30T17:06:07Z easye: phoe: I'm not sure which is more incomprehensible, that video, or actually writing SOAP RPC code. 2016-11-30T17:07:05Z igam quit (Quit: Be seeing you!) 2016-11-30T17:12:08Z EvW quit (Ping timeout: 245 seconds) 2016-11-30T17:12:11Z defaultxr quit (Quit: brb) 2016-11-30T17:12:19Z Tex_Nick left #lisp 2016-11-30T17:12:38Z Bike joined #lisp 2016-11-30T17:13:24Z defaultxr joined #lisp 2016-11-30T17:13:30Z gingerale joined #lisp 2016-11-30T17:13:56Z defaultxr quit (Client Quit) 2016-11-30T17:14:22Z marusich joined #lisp 2016-11-30T17:15:29Z defaultxr joined #lisp 2016-11-30T17:15:35Z ASau joined #lisp 2016-11-30T17:16:32Z marusich quit (Client Quit) 2016-11-30T17:19:12Z slyrus_ quit (Ping timeout: 260 seconds) 2016-11-30T17:21:32Z papachan quit (Quit: Saliendo) 2016-11-30T17:22:58Z Tex_Nick joined #lisp 2016-11-30T17:25:57Z Petit_Dejeuner quit (Ping timeout: 248 seconds) 2016-11-30T17:26:55Z LiamH joined #lisp 2016-11-30T17:28:30Z TDT quit (Quit: TDT) 2016-11-30T17:29:19Z macdavid314 joined #lisp 2016-11-30T17:29:23Z dyelar quit (Remote host closed the connection) 2016-11-30T17:30:08Z papachan joined #lisp 2016-11-30T17:30:13Z macdavid313 quit (Ping timeout: 248 seconds) 2016-11-30T17:30:14Z macdavid314 is now known as macdavid313 2016-11-30T17:37:45Z hhdave quit (Ping timeout: 258 seconds) 2016-11-30T17:38:47Z dyelar joined #lisp 2016-11-30T17:44:58Z BlueRavenGT joined #lisp 2016-11-30T17:45:28Z klltkr joined #lisp 2016-11-30T17:45:28Z klltkr quit (Changing host) 2016-11-30T17:45:28Z klltkr joined #lisp 2016-11-30T17:48:12Z strelox quit (Remote host closed the connection) 2016-11-30T17:48:31Z wz1000 joined #lisp 2016-11-30T17:48:59Z Karl_Dscc joined #lisp 2016-11-30T17:49:31Z m00natic quit (Remote host closed the connection) 2016-11-30T17:49:58Z warweasle quit (Quit: brb) 2016-11-30T17:51:00Z k4rtik joined #lisp 2016-11-30T17:53:05Z kamog joined #lisp 2016-11-30T17:54:35Z shka quit (Quit: Konversation terminated!) 2016-11-30T17:54:51Z warweasle joined #lisp 2016-11-30T18:00:29Z sharkteeth joined #lisp 2016-11-30T18:01:39Z TDT joined #lisp 2016-11-30T18:06:37Z alpert joined #lisp 2016-11-30T18:15:03Z zacts quit (Ping timeout: 245 seconds) 2016-11-30T18:23:24Z payphone quit (Read error: Connection reset by peer) 2016-11-30T18:23:38Z payphone joined #lisp 2016-11-30T18:24:56Z neoncontrails joined #lisp 2016-11-30T18:30:17Z borodust: @all, are there any tools that help to pck foreign libraries for distribution with lisp image? 2016-11-30T18:30:27Z borodust: s/pck/pick/ 2016-11-30T18:30:34Z MolluskEmpire quit (Ping timeout: 268 seconds) 2016-11-30T18:31:17Z borodust: i mean, libraries that this image depends on 2016-11-30T18:33:58Z phoe: borodust: foreign libraries? 2016-11-30T18:34:09Z phoe: what do you mean? 2016-11-30T18:34:19Z phoe: if you have a project, then it declares its CFFI dependencies somewhere 2016-11-30T18:34:24Z phoe: you can pick the dependencies from that 2016-11-30T18:34:55Z borodust: foreign libraries, .so/.dll/.dylib 2016-11-30T18:35:35Z borodust: i mean, ofc i can do this manually, but that's insane, especially if project heavily depends on them 2016-11-30T18:35:59Z borodust: cuz those libraries can depend on other libraries and so on 2016-11-30T18:36:01Z rogersm joined #lisp 2016-11-30T18:36:18Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-30T18:36:58Z borodust: so I'm wondering if anyone already built the tool to grab all dependent libs together for distribution (when needed) 2016-11-30T18:39:20Z zacts joined #lisp 2016-11-30T18:41:04Z MrWoohoo quit (Ping timeout: 250 seconds) 2016-11-30T18:41:40Z frgo_ joined #lisp 2016-11-30T18:46:07Z rogersm quit (Quit: rogersm) 2016-11-30T18:46:48Z william3 joined #lisp 2016-11-30T18:47:51Z william3 quit (Remote host closed the connection) 2016-11-30T18:48:08Z william3 joined #lisp 2016-11-30T18:50:46Z papachan quit (Quit: Saliendo) 2016-11-30T18:55:04Z frgo_ quit (Remote host closed the connection) 2016-11-30T18:56:59Z william3 quit (Remote host closed the connection) 2016-11-30T18:58:36Z Davidbrcz joined #lisp 2016-11-30T18:59:18Z jurov: on linux, you can usually show used libs by ldd 2016-11-30T18:59:18Z MrWoohoo joined #lisp 2016-11-30T18:59:41Z jurov: but it depends on how lisp actually loads them 2016-11-30T19:02:14Z edgar-rft joined #lisp 2016-11-30T19:03:19Z DeadTrickster quit (Ping timeout: 265 seconds) 2016-11-30T19:03:41Z rjmacready quit (Ping timeout: 260 seconds) 2016-11-30T19:05:41Z DeadTrickster joined #lisp 2016-11-30T19:07:58Z william3 joined #lisp 2016-11-30T19:10:56Z shka joined #lisp 2016-11-30T19:14:45Z borodust: jurov: yeah, but then still manually filter/copy 2016-11-30T19:15:25Z borodust: i know how to find and pack them by hand, but that's not the way xD 2016-11-30T19:18:07Z fourier joined #lisp 2016-11-30T19:18:36Z borodust: it just can't be i'm the only one that feels that way 2016-11-30T19:22:20Z bocaneri quit (Read error: Connection reset by peer) 2016-11-30T19:28:19Z papachan joined #lisp 2016-11-30T19:32:49Z _death: you can use docker 2016-11-30T19:34:56Z nowhere_man joined #lisp 2016-11-30T19:37:26Z william3 quit (Remote host closed the connection) 2016-11-30T19:39:38Z mrottenkolber quit (Ping timeout: 268 seconds) 2016-11-30T19:40:17Z zygentoma joined #lisp 2016-11-30T19:41:33Z borodust: problem is, i need that for desktop app 2016-11-30T19:42:39Z borodust: with GUI 2016-11-30T19:42:50Z borodust: game even 2016-11-30T19:43:07Z borodust: *to be more specific 2016-11-30T19:43:45Z borodust: basically, problem is, i need to ship game for wide audience 2016-11-30T19:43:53Z borodust: linux, macos, win 2016-11-30T19:44:01Z _death: then you can look into your os's package management system.. just like any other app 2016-11-30T19:44:18Z borodust: linux is good, that's ok 2016-11-30T19:44:29Z warweasle: borodust: Didn't dto create a tool for packaging dependancies? 2016-11-30T19:44:33Z borodust: macos has homebrew, but it's not the thing average user has 2016-11-30T19:44:56Z borodust: warweasle: where i can find it?) 2016-11-30T19:45:04Z borodust: win is complete off 2016-11-30T19:45:32Z borodust: it has Chocolatey, but it isnt quite the thing for dependency management 2016-11-30T19:45:55Z william3 joined #lisp 2016-11-30T19:47:19Z borodust: btw, most any _other_ game ships dependencies with the distrib package 2016-11-30T19:47:55Z warweasle: borodust: I don't know. 2016-11-30T19:48:20Z borodust: warweasle: i heard he did, but no one knows where the tool is ;D 2016-11-30T19:48:32Z borodust: warweasle: i'll ask him later 2016-11-30T19:48:41Z gravicappa joined #lisp 2016-11-30T19:49:03Z mhd quit (Quit: Textual IRC Client: www.textualapp.com) 2016-11-30T19:50:53Z TDT_ joined #lisp 2016-11-30T19:51:04Z Jammyham joined #lisp 2016-11-30T19:51:16Z cibs quit (Ping timeout: 268 seconds) 2016-11-30T19:51:18Z dddddd quit (Quit: Hasta otra..) 2016-11-30T19:51:50Z neoncont_ joined #lisp 2016-11-30T19:52:03Z seg quit (Ping timeout: 244 seconds) 2016-11-30T19:52:32Z dddddd joined #lisp 2016-11-30T19:52:34Z fiddlerwoaroof: borodust: which is why steam doesn't work out of the box on my computer 2016-11-30T19:52:45Z cibs joined #lisp 2016-11-30T19:53:03Z fiddlerwoaroof: It's shipped dependencies don't (didn't) work on Debian, so you have to manually delete them after every update. 2016-11-30T19:53:10Z borodust: i'm not saying it is the good way 2016-11-30T19:53:21Z borodust: it's just the only way for win atm afaik 2016-11-30T19:54:06Z fiddlerwoaroof: Yeah, I wonder if there's some way to statically link the dependencies into the lisp image. 2016-11-30T19:54:09Z borodust: and i'm not sure requiring macos users to install anything to install game is a good idea either 2016-11-30T19:54:13Z neoncontrails quit (Ping timeout: 248 seconds) 2016-11-30T19:54:13Z TDT quit (Ping timeout: 248 seconds) 2016-11-30T19:54:13Z HammyJammy quit (Ping timeout: 248 seconds) 2016-11-30T19:54:13Z MoALTz quit (Ping timeout: 248 seconds) 2016-11-30T19:54:13Z TDT_ is now known as TDT 2016-11-30T19:54:27Z borodust: fiddlerwoaroof: u can't do this for LGPL and GPL libs 2016-11-30T19:54:42Z borodust: which is no go because if that 2016-11-30T19:55:04Z borodust: s/if/of/ 2016-11-30T19:55:06Z fiddlerwoaroof: Well, you can't use GPL libraries in a non-GPL game anyways. 2016-11-30T19:55:17Z borodust: game is MIT even 2016-11-30T19:55:32Z borodust: but, yeah 2016-11-30T19:55:44Z fiddlerwoaroof: LGPL is different, but if you have a GPL dependency, your game has to be GPL (AFAIK) 2016-11-30T19:56:01Z jackdaniel: combined work has to be GPL 2016-11-30T19:56:05Z borodust: true 2016-11-30T19:56:06Z jackdaniel: your code may be still licensed as MIT 2016-11-30T19:56:19Z borodust: isn't MIT compatible? 2016-11-30T19:56:29Z fiddlerwoaroof: Which is what companies like Adacore and Eiffel do to prevent commercial usage of their compilers without purchasing a license. 2016-11-30T19:56:50Z borodust: well, anyway, that's not the point 2016-11-30T19:56:56Z jackdaniel: MIT is GPL compatible, so you may combine MIT and GPL 2016-11-30T19:57:16Z fiddlerwoaroof: borodust: being compatible just means that you can link a MIT library from something distributed under the GPL 2016-11-30T19:57:16Z jackdaniel: but yes, effectively whole thing will be GPL 2016-11-30T19:57:17Z borodust: static linkig won't work, cuz most free libs are LGPL 2016-11-30T19:57:41Z borodust: and the game is MIT licensed 2016-11-30T19:58:09Z borodust: with sources and such 2016-11-30T19:58:35Z jackdaniel: regarding bundling some foreign libraries with game, I think qtools does that 2016-11-30T19:58:37Z warweasle: borodust: You don't have to distribute sources. You can just distribute object files. 2016-11-30T19:58:46Z jackdaniel: and in that case you want to talk with Shinmera 2016-11-30T19:59:10Z warweasle: borodust: Just as long as someone can recompile and link changes to the LGPL library. 2016-11-30T19:59:41Z jackdaniel: if you modify GPL'ed code it is enough to put it on your website and include in readme, where to fetch GPL sources from 2016-11-30T19:59:49Z borodust: warweasle: anyway, i need to distribute binaries for users 2016-11-30T19:59:57Z borodust: static linkig won't work 2016-11-30T20:00:15Z seg joined #lisp 2016-11-30T20:00:33Z warweasle: borodust: Then dlls are golden since a person could recompile the dll and just run your program to pick up the changes. 2016-11-30T20:03:04Z macdavid314 joined #lisp 2016-11-30T20:03:25Z macdavid313 quit (Ping timeout: 244 seconds) 2016-11-30T20:03:26Z macdavid314 is now known as macdavid313 2016-11-30T20:03:37Z LiamH quit (Ping timeout: 240 seconds) 2016-11-30T20:06:00Z neoncont_ quit (Ping timeout: 250 seconds) 2016-11-30T20:06:01Z vhost- joined #lisp 2016-11-30T20:06:36Z macdavid314 joined #lisp 2016-11-30T20:07:54Z macdavid313 quit (Ping timeout: 250 seconds) 2016-11-30T20:07:55Z macdavid314 is now known as macdavid313 2016-11-30T20:11:13Z iippo joined #lisp 2016-11-30T20:11:44Z Orion3k quit (Quit: Leaving) 2016-11-30T20:15:03Z Amplituhedron quit (Read error: Connection reset by peer) 2016-11-30T20:17:50Z Orion3k joined #lisp 2016-11-30T20:19:24Z iippo quit (Quit: Konversation terminated!) 2016-11-30T20:19:44Z Spelndid joined #lisp 2016-11-30T20:25:45Z gravicappa quit (Remote host closed the connection) 2016-11-30T20:29:05Z bobo joined #lisp 2016-11-30T20:29:18Z bobo left #lisp 2016-11-30T20:30:53Z swflint is now known as swflint_away 2016-11-30T20:31:05Z neoncontrails joined #lisp 2016-11-30T20:32:24Z puchacz joined #lisp 2016-11-30T20:33:37Z william3 quit (Remote host closed the connection) 2016-11-30T20:34:59Z varjag joined #lisp 2016-11-30T20:38:05Z william3 joined #lisp 2016-11-30T20:41:17Z scymtym quit (Ping timeout: 240 seconds) 2016-11-30T20:42:24Z william3 quit (Ping timeout: 250 seconds) 2016-11-30T20:44:05Z Th30n: Anyone knows if SBCL has a function which displays information on how an object/struct is laid out in memory? 2016-11-30T20:44:43Z Th30n: Or at least its memory size. 2016-11-30T20:45:39Z phoe: Th30n: http://stackoverflow.com/questions/12230499/memory-usage-by-objects-in-common-lisp 2016-11-30T20:45:45Z phoe: checking if there's anything for SBCL now. 2016-11-30T20:47:04Z phoe: oh 2016-11-30T20:47:05Z phoe: https://bugs.launchpad.net/sbcl/+bug/1636910 2016-11-30T20:47:40Z phoe: Th30n: look at the (defun get-object-size/octets ...) 2016-11-30T20:47:43Z phoe: it might be what you want 2016-11-30T20:48:05Z DeadTrickster: loke, Hello 2016-11-30T20:48:15Z Th30n: phoe: Eh, ok, thanks. 2016-11-30T20:48:39Z LiamH joined #lisp 2016-11-30T20:48:47Z rszeno quit (Quit: Leaving.) 2016-11-30T20:48:50Z Th30n: Already googled that, hoped someone had a better answer... 2016-11-30T20:50:34Z Xach: Th30n: what will you do with the info when you get it? 2016-11-30T20:52:18Z Th30n: Xach: Well, I'm interested in the internals, so that I can try to make some predictions on how would a proc. cache line be utilized. 2016-11-30T20:52:44Z Xach: Th30n: I suspect #sbcl or the sbcl-devel mailing list might at least get you started on a discussion about it. 2016-11-30T20:52:54Z Th30n: My second question was going to be, when can I expect arrays to store objects directly in a contigous block, instead of storing references. 2016-11-30T20:53:29Z Th30n: Xach: Thanks for reminding me, this is way to implementation dependant. 2016-11-30T20:53:34Z Th30n: s/to/too 2016-11-30T20:54:21Z Xach: Th30n: I remember a few posts from jsnell, nikodemus, and Xof on the topic, but that was a while ago. 2016-11-30T20:54:30Z Xach: People don't write like they did, the scoundrels. 2016-11-30T20:54:35Z vlatkoB quit (Remote host closed the connection) 2016-11-30T20:57:08Z Linear_z quit (Quit: Nettalk6 - www.ntalk.de) 2016-11-30T20:57:44Z fiddlerwoaroof: Yeah, Planet Lisp is way too quiet these days :) 2016-11-30T20:58:04Z Xach: I have a few drafts almost ready 2016-11-30T20:58:07Z Xach: But not quite 2016-11-30T20:58:21Z foom: you should get doug to write some blogs 2016-11-30T20:58:28Z Xach: I would very much like that 2016-11-30T20:58:53Z Xach: Would Doug go to a boston lisp meeting? 2016-11-30T20:58:56Z foom: He's been working on some great topics that could use wider exposure. 2016-11-30T20:59:43Z foom: I don't know if he would or not. :) 2016-11-30T21:00:00Z borodust: Xach, are there any docs on how to get self-hosted QL distro up and running? 2016-11-30T21:00:08Z Xach: borodust: no, I'm afraid not. 2016-11-30T21:00:17Z Th30n: Bye everyone, I better leave this for the weekend :) 2016-11-30T21:00:30Z Xach: borodust: peter seibel wrote some code to do it, but he based it on reading sources 2016-11-30T21:00:39Z Th30n quit (Quit: leaving) 2016-11-30T21:00:49Z Xach: the code i use is more complicated than general use would require 2016-11-30T21:01:12Z borodust: understood, I saw ppl doing it, but couldn't find the docs, now i know why :) 2016-11-30T21:01:23Z borodust: I'll check their sources 2016-11-30T21:01:32Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2016-11-30T21:01:58Z borodust: tnx 2016-11-30T21:02:37Z slyrus_ joined #lisp 2016-11-30T21:07:49Z swflint_away is now known as swflint 2016-11-30T21:07:58Z Xof: I am too busy blogging sarcastically about $work 2016-11-30T21:08:17Z Xof: and wondering how writing moodle plugins in php became part of my universe 2016-11-30T21:09:05Z Xof: on the topic of cache utilization I'd guess pkhuong would be your person 2016-11-30T21:10:25Z Xof: all specialized arrays store objects contiguously; non-vectors, adjustable arrays and vectors with fill pointers do so with one indirection to the data block 2016-11-30T21:11:02Z dddddd quit (Remote host closed the connection) 2016-11-30T21:11:51Z klltkr quit (Remote host closed the connection) 2016-11-30T21:12:56Z EvW1 joined #lisp 2016-11-30T21:13:11Z lisp105 quit (Ping timeout: 260 seconds) 2016-11-30T21:14:06Z hugo_dc joined #lisp 2016-11-30T21:14:06Z BlueRavenGT quit (Read error: Connection reset by peer) 2016-11-30T21:14:40Z puchacz quit (Quit: Konversation terminated!) 2016-11-30T21:17:13Z fourier: Xach: when is the promised crowd-funding campaign ? :) 2016-11-30T21:19:41Z M-moredhel quit (Remote host closed the connection) 2016-11-30T21:19:45Z Tetsuo[m] quit (Remote host closed the connection) 2016-11-30T21:19:45Z harlequin78[m] quit (Remote host closed the connection) 2016-11-30T21:19:55Z M-Illandan quit (Write error: Connection reset by peer) 2016-11-30T21:19:58Z RichardPaulBck[m quit (Read error: Connection reset by peer) 2016-11-30T21:19:58Z lugus35[m] quit (Write error: Connection reset by peer) 2016-11-30T21:19:58Z Omarnem0[m] quit (Read error: Connection reset by peer) 2016-11-30T21:19:58Z Xach: fourier: "soon" 2016-11-30T21:23:51Z ghostlight quit (Ping timeout: 268 seconds) 2016-11-30T21:28:17Z ghostlight joined #lisp 2016-11-30T21:30:32Z younder: Any chance asdf/uiop could be proposed as a new standard extention? It seems supported on all compilers run the portabillity layer. Compilers could then opt to incorperate it into the code. 2016-11-30T21:32:26Z Xach: younder: How would that differ from the current situation? 2016-11-30T21:32:41Z dyelar quit (Quit: Leaving.) 2016-11-30T21:33:32Z younder: In terms of functionality not much. It might provide compiler writers better oppertunity to optimize the code. 2016-11-30T21:34:01Z younder: I must admit I just started looking over the interface todauy. 2016-11-30T21:34:37Z fourier: Xach: :) 2016-11-30T21:35:40Z Xach: younder: To optimize what code? UIOP code? 2016-11-30T21:35:43Z fourier: younder: most current implementations even commercial supports/supplies it out of the box. Would be great if they would support QL by default as well... 2016-11-30T21:36:05Z younder: Mostly, yes 2016-11-30T21:36:56Z Xach: How would that be good? 2016-11-30T21:37:01Z Xach: That would be bad, I think. 2016-11-30T21:37:15Z younder: Oh, why? 2016-11-30T21:37:30Z Xach: Instead of the current instructions, they would be "If you are using implementation X, do this. If you are using implementation Y, do that. Otherwise, do the other thing." 2016-11-30T21:37:34Z swflint is now known as swflint_away 2016-11-30T21:37:55Z dyelar joined #lisp 2016-11-30T21:38:19Z fourier: Xach: why not? imaging downloading some implementation on a fresh machine. All you need to do to get going: (ql:quickload "my-stuff") 2016-11-30T21:38:46Z fourier: *some CL implementation. *you = average user 2016-11-30T21:38:59Z younder: But they are like that today. With the interface as a standard the conditionals could go away. 2016-11-30T21:39:12Z Xach: fourier: I do that all the time. I generally do curl -O https://beta.quicklisp.org/quicklisp.lisp, check the signature, and then (load "quicklisp.lisp") to install. 2016-11-30T21:39:30Z Xach: On windows, I use the browser and (load "~/Downloads/quicklisp.lisp") instead. 2016-11-30T21:39:37Z stepnem quit (Ping timeout: 240 seconds) 2016-11-30T21:39:44Z rumbler31 quit (Remote host closed the connection) 2016-11-30T21:40:11Z younder: I am thinking maintained CL's like ECL, SBCL, Allegro, LispWorks and perhaps ABCL. Not Coran fes 2016-11-30T21:40:15Z younder: corman 2016-11-30T21:40:27Z Xach: Corman Lisp is now maintained again. 2016-11-30T21:40:40Z fourier: Xach: I understand. it is just more steps to do, and makes adoption of the CL slower 2016-11-30T21:41:02Z Xach: fourier: There are many barriers that could be lower, and I like to work hard on lowering barriers, but that is not one I think is too high. 2016-11-30T21:41:20Z Xach: younder: Do you mean that when you start SBCL, UIOP is already a defined package? 2016-11-30T21:41:29Z younder: Oh, didn't know that. Anyhow if there isn't anyone the existing library should still work. 2016-11-30T21:41:40Z younder: Xach, yes 2016-11-30T21:42:09Z fourier: Xach: also it would be awesome to have a possibility to get an 1-line description and a link to the project page for packages as a part of ql api, as a part of system-apropos for example 2016-11-30T21:42:36Z fourier: Xach: think about list-packages command in Emacs 2016-11-30T21:43:01Z Xach: fourier: I would very much like to do that. 2016-11-30T21:43:18Z Xach: fourier: Including enough detail to check out or download things out for yourself 2016-11-30T21:43:23Z swflint_away is now known as swflint 2016-11-30T21:43:25Z Xach: (perhaps via a separate but related function) 2016-11-30T21:44:03Z fourier: Xach: it could be awesome to include it as a part of upcoming campaign 2016-11-30T21:44:16Z Xach: fourier: Well, that's lumped into the out-of-beta set of features. 2016-11-30T21:44:22Z Xach: younder: I think it would be hard to convince implementors of the value of doing that instead of letting things work as they do now. 2016-11-30T21:45:33Z fourier: Xach: 2016-11-30T21:45:38Z fourier: Awesome! 2016-11-30T21:47:16Z Guest87674 joined #lisp 2016-11-30T21:47:23Z younder: I wouldn't know. Has anyone asked? 2016-11-30T21:49:36Z sz0 quit (Quit: Connection closed for inactivity) 2016-11-30T21:49:42Z sellout- quit (Quit: Leaving.) 2016-11-30T21:51:55Z ovenpasta quit (Ping timeout: 244 seconds) 2016-11-30T21:52:32Z defaultxr quit (Quit: brb) 2016-11-30T21:53:42Z defaultxr joined #lisp 2016-11-30T21:55:15Z defaultxr quit (Client Quit) 2016-11-30T21:59:11Z scymtym joined #lisp 2016-11-30T21:59:55Z aeth: I need to implement a custom data structure. Is there a fast way to encode/decode floats in a non-portable way or would I have to make separate upgraded arrays for floats and unsigned-bytes? 2016-11-30T22:00:05Z kami joined #lisp 2016-11-30T22:00:12Z kami: Good evening. 2016-11-30T22:01:41Z kami: I'm wrestling with cffi again: http://paste.lisp.org/+74WE 2016-11-30T22:02:11Z kami: Which of the cffi functions do I have to call on buf to convert it to a lisp array? 2016-11-30T22:02:22Z quazimodo joined #lisp 2016-11-30T22:03:19Z kami: I've tried foreign-array-to-lisp and convert-from-foreign 2016-11-30T22:03:45Z White_Flame: aeth: by encode/decode, you mean conversion to their 32/64 bit representations, or breaking apart exponent/mantissa/sign? I've searched for the former a while ago, and didn't find anything. All the libs I looked into manually assemble the ieee bit format from the exp/man/sgn 2016-11-30T22:04:08Z White_Flame: certainly it could be a VOP of just a few instructions 2016-11-30T22:04:23Z aeth: White_Flame: any way to pack it in a fast way. https://github.com/marijnh/ieee-floats/blob/master/ieee-floats.lisp is not fast 2016-11-30T22:04:24Z White_Flame: at least in non-portable well-known cases 2016-11-30T22:04:39Z White_Flame: pack as in compress? 2016-11-30T22:05:02Z aeth: One of the operations in ieee-floats (I don't remember if it is encode/decode) is 15,000 CPU cycles, and iirc the other is 5,000 2016-11-30T22:05:04Z White_Flame: ok, so you do mean the bit representations' 2016-11-30T22:05:05Z manuel__ quit (Quit: manuel__) 2016-11-30T22:05:16Z White_Flame: yeah, I've not found anything that does it 2016-11-30T22:05:32Z White_Flame: in terms of C-style union stuff 2016-11-30T22:05:39Z heurist`_` joined #lisp 2016-11-30T22:05:46Z aeth: White_Flame: I don't mean compress, I mean put them in arrays of heterogeneous data 2016-11-30T22:05:54Z aeth: which took me a minute to look up the spelling of :-p 2016-11-30T22:06:07Z aeth: I missed an "e" originally 2016-11-30T22:06:11Z redcedar joined #lisp 2016-11-30T22:06:19Z kami: This is what happens when I use foreign-array-to-lisp: http://paste.lisp.org/+74WE/1 2016-11-30T22:06:24Z White_Flame: erm, an array holding element type T is a heterogenous array that can hold floats :_P 2016-11-30T22:06:34Z aeth: Yes, I mean an upgraded array 2016-11-30T22:07:25Z heurist_ quit (Ping timeout: 244 seconds) 2016-11-30T22:07:30Z quazimod1 joined #lisp 2016-11-30T22:08:27Z aeth: White_Flame: the only way I could even possibly beat a built-in hash table is if I use an upgraded array... probably because a T-typed array is close enough to a hash table conceptually 2016-11-30T22:08:45Z ovenpasta joined #lisp 2016-11-30T22:09:43Z White_Flame: what I would try is safety 0 and declarations to fake a union between a float array and a byte array 2016-11-30T22:09:56Z White_Flame: all hidden behind an api of course 2016-11-30T22:10:05Z aeth: I didn't try that. 2016-11-30T22:10:05Z LooneyTu` joined #lisp 2016-11-30T22:10:55Z aeth: If I do safety, etc., at 0 and just try to place a single-float directly into an '(unsigned-byte 32) array, I get #xC for all values of single-float. 2016-11-30T22:10:58Z aeth: (In SBCL) 2016-11-30T22:11:29Z White_Flame: #xC when read as a byte array? 2016-11-30T22:12:24Z fiddlerwoaroof: What about updating the unsigned-byte array from a displaced array with element-type 'single-float? 2016-11-30T22:12:27Z aeth: *oh* nevermind, I guess my examples were all of the same length 2016-11-30T22:12:43Z aeth: or... something? 2016-11-30T22:12:55Z fiddlerwoaroof: That's probably UB, but it might be interesting and predictable on SBCL 2016-11-30T22:13:37Z aeth: http://paste.lisp.org/+74WF 2016-11-30T22:13:49Z aeth: All of my examples before were 12 (i.e. #xC) 2016-11-30T22:14:14Z aeth: Now I'm getting some #x8000000C 2016-11-30T22:14:23Z aeth: (i.e. 2147483660) 2016-11-30T22:14:41Z aeth: I was hoping on reliable UB that I could (ab)use for the major implementations. 2016-11-30T22:14:58Z White_Flame: that's probably a NaN representation or something 2016-11-30T22:14:59Z younder: The cash in linedit happens in teminal.lisp at read-coord - flet (read-open-coord. It seems to fail to read some escape sequences like (#\Esc #\[ #\1 #\; #\5 #\C)). The #\; confuses it. 2016-11-30T22:15:47Z White_Flame: but still, you don't want to declare your value to try to cast; you should try delcaring the type of the array as float vs byte to try to cast it 2016-11-30T22:16:24Z Omarnem0[m] joined #lisp 2016-11-30T22:16:26Z White_Flame: that declaration you have will probably bleed out into the ftype, meaning the call site might do some stuff "for you" 2016-11-30T22:17:26Z ovenpasta quit (Remote host closed the connection) 2016-11-30T22:17:31Z ovenpasta1 joined #lisp 2016-11-30T22:17:39Z aeth: In case anyone is wondering what I'm doing this for, I'm working backwards on shka's list of how to hide an ECS (or something like an ECS) behind the MOP. This is step #5, or "memory allocator". 2016-11-30T22:18:04Z shka: aeth: great! 2016-11-30T22:18:22Z shka: aeth: mmap? 2016-11-30T22:18:34Z aeth: http://paste.lisp.org/+74WG 2016-11-30T22:18:46Z MoALTz joined #lisp 2016-11-30T22:18:46Z aeth: shka: I was just going to create buffers as upgraded arrays 2016-11-30T22:18:55Z shka: ah, ok 2016-11-30T22:18:56Z aeth: and encode all the relevant information that way 2016-11-30T22:18:57Z Guest87674 quit (Ping timeout: 240 seconds) 2016-11-30T22:19:10Z shka: i kinda hoped for mmap 2016-11-30T22:19:11Z aeth: It's the problem I happen to sort of know how to use because I've used buffers elsewhere, e.g. in OpenGL 2016-11-30T22:19:21Z aeth: s/the problem/the solution to the problem that/ 2016-11-30T22:19:25Z lugus35[m] joined #lisp 2016-11-30T22:19:25Z harlequin78[m] joined #lisp 2016-11-30T22:19:25Z M-moredhel joined #lisp 2016-11-30T22:19:25Z M-Illandan joined #lisp 2016-11-30T22:19:32Z Tetsuo[m] joined #lisp 2016-11-30T22:19:33Z RichardPaulBck[m joined #lisp 2016-11-30T22:19:52Z ovenpasta1 is now known as ovenpasta 2016-11-30T22:19:58Z aeth: Once I get the memory stuff, I'll go talk to axion and others in #lispgames about the higher level design part. 2016-11-30T22:20:35Z aeth: It probably won't be a pure ECS. There are (probably) good reasons why very few games do that. 2016-11-30T22:20:42Z shka: could you please divide this stuff so we can get separate allocator to hack on? 2016-11-30T22:20:57Z shka: i could use one 2016-11-30T22:21:12Z shka: and i don't have that much time to write it on my own 2016-11-30T22:21:49Z Davidbrcz quit (Ping timeout: 268 seconds) 2016-11-30T22:21:53Z younder reads up on XTerm control sequences CSI mode. 2016-11-30T22:22:43Z aeth: shka: I am using asdf's package-inferred-system for my engine stuff so that in theory any file (or set of files) could be spun off into its own library 2016-11-30T22:22:57Z aeth: shka: because I realize that lots of people could use components I write, but only I will be using my engine 2016-11-30T22:23:17Z aeth: (all imports/exports, dependencies, etc., are essentially per-file this way) 2016-11-30T22:23:45Z Einwq quit (Quit: Leaving) 2016-11-30T22:24:04Z shka: well, i don't have much interest in graphics, but i would like to build something to cache object to persistant storage 2016-11-30T22:24:28Z fiddlerwoaroof: shka: have you looked at manardb? 2016-11-30T22:24:44Z shka: nope 2016-11-30T22:24:49Z shka: what is it? 2016-11-30T22:25:13Z fiddlerwoaroof: It basically defines a metaclass that automatically persists instances of a class to a mmapped store 2016-11-30T22:25:28Z shka: yup, exactly what i had in mind 2016-11-30T22:25:39Z shka: nice 2016-11-30T22:25:42Z fiddlerwoaroof: It's a bit of a pain to change class definitions, but it seems to work 2016-11-30T22:26:13Z fiddlerwoaroof: (you have to patch it on OSX since OSX doesn't have mremap) 2016-11-30T22:26:33Z shka: i don't care about osx 2016-11-30T22:26:42Z shka: i'm fine if it works on linux 2016-11-30T22:26:52Z shka: and happy if it works on bsd 2016-11-30T22:28:12Z shka: fiddlerwoaroof: thanks for info 2016-11-30T22:28:41Z shka: also 2016-11-30T22:28:43Z shka: folks 2016-11-30T22:28:56Z shka: anybody happens to know how to use slack-client? 2016-11-30T22:29:04Z shka: no docs are present 2016-11-30T22:29:10Z fiddlerwoaroof: Hmm, which one? 2016-11-30T22:29:18Z shka: https://github.com/kkazuo/slack-client 2016-11-30T22:29:20Z fiddlerwoaroof: I wrote my own, because I could 2016-11-30T22:29:22Z shka: this one 2016-11-30T22:29:42Z shka: well, i would want to skip this part 2016-11-30T22:30:31Z shka: i'm organizing small hackathon with few of my buddies to teach them a little bit of lisp 2016-11-30T22:30:44Z zygentoma quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2016-11-30T22:30:54Z shka: writing slack bot seems to be reasonable project to start with 2016-11-30T22:31:22Z shka: but i need to connect to the slack first 2016-11-30T22:31:25Z gabriel_laddel joined #lisp 2016-11-30T22:31:57Z ghostlight quit (Ping timeout: 246 seconds) 2016-11-30T22:32:20Z shka: well, i guess i have to figure it out on my own 2016-11-30T22:32:32Z shka: just few functions so it shouldn't be that hard 2016-11-30T22:32:52Z fiddlerwoaroof: It's a bit of a mess, but: https://github.com/fiddlerwoaroof/slacker/blob/master/test-ui.lisp#L15 2016-11-30T22:32:58Z ferada: shka: i think look at the client.ros might be a good start 2016-11-30T22:33:21Z fiddlerwoaroof: shka: the client itself is here: https://github.com/fiddlerwoaroof/slacker/blob/master/slack-client.lisp 2016-11-30T22:33:28Z shka: ferada: very good point! 2016-11-30T22:33:31Z shka: fiddlerwoaroof: thanks! 2016-11-30T22:34:03Z william_1 joined #lisp 2016-11-30T22:34:06Z ghostlight joined #lisp 2016-11-30T22:34:08Z william_1 is now known as williamyaoh 2016-11-30T22:35:10Z fourier quit (Ping timeout: 256 seconds) 2016-11-30T22:35:17Z kami: Just for the records. This version works: http://paste.lisp.org/+74WE/2 2016-11-30T22:35:20Z kami: Good night. 2016-11-30T22:35:26Z shka: kami: good night 2016-11-30T22:36:54Z heurist__ joined #lisp 2016-11-30T22:37:31Z arbv quit (Quit: ZNC - http://znc.in) 2016-11-30T22:37:47Z fourier joined #lisp 2016-11-30T22:39:09Z heurist joined #lisp 2016-11-30T22:39:31Z arbv joined #lisp 2016-11-30T22:39:48Z heurist`_` quit (Ping timeout: 260 seconds) 2016-11-30T22:42:09Z heurist__ quit (Ping timeout: 260 seconds) 2016-11-30T22:42:31Z fourier: kami: use static-vector library for that 2016-11-30T22:44:05Z fourier: kami: no documentation whatsoever, but tests! typical lisp attitude: https://github.com/sionescu/static-vectors/issues/8 2016-11-30T22:44:56Z attila_lendvai: ...for a reason. 2016-11-30T22:45:29Z fourier: ...called lazyness 2016-11-30T22:46:05Z gabriel_laddel quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2016-11-30T22:46:32Z fiddlerwoaroof: The problem with documentation is that it doesn't maintain itself :) 2016-11-30T22:46:51Z younder: "You are a slacker, just like your father" BttF 2016-11-30T22:46:58Z fourier: the same with the code 2016-11-30T22:47:21Z fourier: ok bb all ;) 2016-11-30T22:47:33Z fiddlerwoaroof: So, if you're working on a library and changing things, it's difficult to keep the documentation in-sync and the documentation doesn't tell you what's not up to date 2016-11-30T22:50:36Z younder: Hence the litterate programming incetive. org-mode can be used to mix source and code 2016-11-30T22:50:38Z White_Flame: In Paredit, how do I insert a newline at the repl inside a balanced form without Ret automatically submitting it? 2016-11-30T22:50:50Z ecraven: C-q C-j maybe? 2016-11-30T22:50:51Z LiamH quit (Quit: Leaving.) 2016-11-30T22:51:05Z fiddlerwoaroof: I think just C-j might work? 2016-11-30T22:51:10Z attila_lendvai: fourier: called wise allocation of scarce resources. a test suite is a formal documentation. I haven't read much documentation since I'm coding in lisp, and hence I didn't write it either. 2016-11-30T22:51:14Z White_Flame: yep, it does. thankx 2016-11-30T22:51:54Z fiddlerwoaroof: younder: it's pretty well known that comments don't get updated to match the code they comment on, so I don't see how literate programming solves anything. 2016-11-30T22:52:07Z attila_lendvai: time spent on writing documentation should have been spent on the code, turning it into a shape that doesn't need documentation... 2016-11-30T22:52:32Z TDT quit (Quit: TDT) 2016-11-30T22:52:32Z fiddlerwoaroof: Plus, with eldoc and jump-to-source, it's often easier just to experiment on the fly 2016-11-30T22:52:36Z angavrilov quit (Ping timeout: 252 seconds) 2016-11-30T22:53:03Z attila_lendvai: over time I found that I get my answers faster by jumping to the source than by messing with documentation 2016-11-30T22:54:34Z prxq joined #lisp 2016-11-30T22:54:38Z younder: fiddlerwoaroof, Well you document data structures and key ideas. If yo need to document a function it usually means the function should be rewitten to be made clearer. Simularly examples are the easiest way to get people to greasp the point. If you care doing OO people need to know how you intended the objects to fit together. 2016-11-30T22:54:39Z marusich joined #lisp 2016-11-30T22:55:46Z fiddlerwoaroof: Yeah, having one or two examples is a good idea, but even then, it's better for them to be actual working-code rather than text. 2016-11-30T22:56:10Z White_Flame: right, sometimes simple test cases are the best bootstrapping documentation 2016-11-30T22:56:18Z fiddlerwoaroof: This might have to do with my learning style more than anything else, though. 2016-11-30T22:58:27Z dyelar quit (Quit: Leaving.) 2016-11-30T22:58:51Z manuel__ joined #lisp 2016-11-30T22:59:21Z rumbler31 joined #lisp 2016-11-30T22:59:26Z fiddlerwoaroof: ` 2016-11-30T22:59:36Z White_Flame: but in any case, since natural language tends to convey a lot of information, I tend to disagree with 'eliminate comments, make more code pieces with more names' 2016-11-30T23:01:09Z fiddlerwoaroof: The problem with comments is that unmaintained comments can be worse than useless 2016-11-30T23:01:57Z fiddlerwoaroof: So, if you tend to be obsessive about housekeeping, then comments and docstrings, etc. might be a good thing to do; otherwise, it's probably better to make your code as clear as possible 2016-11-30T23:03:05Z fiddlerwoaroof: I was listening to someone talking "code archeology" (i.e. reading codebases for fun/education) and he talked about how, he basically opens a file up and immediately deletes all the comments and reindents it. 2016-11-30T23:03:33Z rumbler31 quit (Ping timeout: 248 seconds) 2016-11-30T23:04:49Z Karl_Dscc quit (Remote host closed the connection) 2016-11-30T23:05:03Z d4ryus quit (Ping timeout: 245 seconds) 2016-11-30T23:07:39Z varjag quit (Ping timeout: 246 seconds) 2016-11-30T23:07:41Z d4ryus joined #lisp 2016-11-30T23:09:25Z eivarv quit (Quit: Sleep) 2016-11-30T23:09:27Z hugo_dc quit (Quit: Leaving) 2016-11-30T23:15:41Z sharkteeth quit (Quit: My iMac has gone to sleep. ZZZzzz…) 2016-11-30T23:16:06Z BlueRavenGT joined #lisp 2016-11-30T23:19:30Z williamyaoh quit (Quit: leaving) 2016-11-30T23:20:39Z swflint is now known as swflint_away 2016-11-30T23:21:03Z kregol joined #lisp 2016-11-30T23:23:38Z White_Flame: fiddlerwoaroof: the problem is that comments and documentation are two separate things 2016-11-30T23:23:59Z White_Flame: comments shouldn't be massive blocks of text at the top of the file. They should be inline immediately with what they do 2016-11-30T23:24:08Z kregol: ahh it's a wonderful day 2016-11-30T23:24:41Z White_Flame: documentation should be separate files which tackle higher level descriptions than source-line-level operation, which yes are hard to keep current 2016-11-30T23:25:35Z White_Flame: the docstring for a function really shouldn't go out of phase with its behavior very often. the comments describing what a few lines of code accomplishes should drift even less 2016-11-30T23:26:17Z swflint_away is now known as swflint 2016-11-30T23:26:18Z White_Flame: but it also does go along with trust & discipline in your team 2016-11-30T23:26:34Z White_Flame: of course, archeological digs into random codebases will yield random quality 2016-11-30T23:28:55Z White_Flame: I will say that if you break your code into a ton of one-time-use functions just to be able to name things, it becomes much less maintainable than inline behavior with comments, for most of the dogmatic examples I've seen 2016-11-30T23:29:17Z White_Flame: because then you need to touch multiple places in code and keep them in sync to change behavior 2016-11-30T23:29:33Z White_Flame: as opposed to changing an immediate computation and the comment above it (which if it's a bugfix, doesn't change the comment at all) 2016-11-30T23:32:03Z quadtan joined #lisp 2016-11-30T23:33:31Z gingerale quit (Remote host closed the connection) 2016-11-30T23:34:43Z Kaisyu quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2016-11-30T23:35:11Z FreeBirdLjj joined #lisp 2016-11-30T23:37:27Z fiddlerwoaroof: Hmm, it can do that if you break it up in certain ways, but if you make the right divisions, it tends to localize changes. 2016-11-30T23:38:42Z BlueRavenGT quit (Read error: Connection reset by peer) 2016-11-30T23:38:48Z prxq quit (Remote host closed the connection) 2016-11-30T23:39:54Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2016-11-30T23:42:30Z xaotuk joined #lisp 2016-11-30T23:42:43Z White_Flame: so here's a real example that I just wrote in real code: http://paste.lisp.org/display/332950 It's perfect for a comment. It's not reused anywhere, though it could be parameterized on the hour. The code is harder to read than the comment, but directly does what the comment describes 2016-11-30T23:43:58Z Kaisyu joined #lisp 2016-11-30T23:44:04Z whartung: is that inline or is it an entire function? 2016-11-30T23:44:09Z White_Flame: inline 2016-11-30T23:44:18Z Wojciech_K quit (Ping timeout: 256 seconds) 2016-11-30T23:44:27Z White_Flame: the context is that it's subtracted from another given universal time 2016-11-30T23:44:34Z zagura quit (Ping timeout: 250 seconds) 2016-11-30T23:44:46Z whartung: (let ((1am (…. (encode…))) ? 2016-11-30T23:45:07Z White_Flame: yep, that'd be reasonable, too 2016-11-30T23:45:19Z White_Flame: but "1am" isn't self-describing enough 2016-11-30T23:45:26Z fiddlerwoaroof: (apply 'encode-universal-time (list* 0 0 1 (nthcdr 3 (get-decoded-time)))) :) 2016-11-30T23:45:35Z White_Flame: a comment woudl still be warranted to describe what it holds, without mashing in an overly verbose variable name 2016-11-30T23:45:35Z manuel__ quit (Ping timeout: 244 seconds) 2016-11-30T23:45:42Z sharkteeth joined #lisp 2016-11-30T23:45:56Z whartung: 1am-today :) 2016-11-30T23:46:29Z fiddlerwoaroof: or ... (apply 'encode-universal-time `(0 0 1 ,@(nthcdr 3 (get-decoded-time)))) :) 2016-11-30T23:46:44Z ovenpasta quit (Ping timeout: 250 seconds) 2016-11-30T23:46:53Z fiddlerwoaroof: or ... (apply 'encode-universal-time 0 0 1 (nthcdr 3 (get-decoded-time))) 2016-11-30T23:47:17Z fiddlerwoaroof: Anyways, yeah, for something like that I probably wouldn't abstract it unless I had to reuse it 2016-11-30T23:48:10Z whartung: does get-decoded-time return a list? 2016-11-30T23:48:24Z fiddlerwoaroof: Never mind, it's multiple values 2016-11-30T23:48:40Z fiddlerwoaroof: so, you'd have to throw in a multiple-value-list 2016-11-30T23:49:38Z TDT joined #lisp 2016-11-30T23:49:54Z fiddlerwoaroof: (apply 'encode-universal-time 0 0 1 (nthcdr 3 (multiple-value-list (get-decoded-time)))) 2016-11-30T23:50:31Z White_Flame: but even in these more compacted code golf forms, they're still not "oh it's so readable you don't need comments" 2016-11-30T23:51:15Z fiddlerwoaroof: But, White_Flame, Wouldn't something like (multiple-value-apply 'encode-universal-time (substitute-values 0 0 1 (get-decoded-time))) be more readable? 2016-11-30T23:51:35Z White_Flame: more readable than "compute the current day's 1am in universal time"? 2016-11-30T23:51:42Z White_Flame: no 2016-11-30T23:51:59Z whartung: heh 2016-11-30T23:52:00Z swflint is now known as swflint_away 2016-11-30T23:52:25Z White_Flame: so yeah, just an example of why I disagree with "good code doesn't need comments" 2016-11-30T23:52:27Z fiddlerwoaroof: It seems to me that whether the comment helps would depend on the amount of stuff going on around those lines 2016-11-30T23:53:06Z White_Flame: you need to think way too much about the position of those arguments and remember which order get-decoded-time returns values in order to "read" that it calculates 1am today 2016-11-30T23:53:21Z fiddlerwoaroof: It might be better to leave that comment out, if you have a bunch of parallel date calculations and then, maybe, add another more general comment above the whole thing 2016-11-30T23:53:34Z White_Flame: there's a general comment above as well 2016-11-30T23:53:55Z White_Flame: but if you say 20 lines above "This computes X against 1am today..", then you've spatially separated the comment from the code too much 2016-11-30T23:54:02Z White_Flame: the top of the block should say what the block does 2016-11-30T23:54:12Z quadtan quit (Quit: Leaving) 2016-11-30T23:54:32Z White_Flame: If detail within the block needs to be commented in natural language, it should be right with the detail code 2016-11-30T23:54:45Z White_Flame: that's how you avoid the problem of drifting comment 2016-11-30T23:54:45Z White_Flame: s 2016-11-30T23:57:10Z fiddlerwoaroof: Yeah, I think it's often better to have a comment in the code rather than just a bunch of code, but it seems to me to be a matter of balance 2016-11-30T23:57:27Z fiddlerwoaroof: (incf *foo* 2) ; increment foo by two 2016-11-30T23:57:30Z fiddlerwoaroof: Doesn't help much :) 2016-11-30T23:58:21Z White_Flame: right, that's a "what", not a "why" 2016-11-30T23:58:35Z White_Flame: and it's a transliteration of the code, so it's absolutely redundant 2016-11-30T23:59:09Z White_Flame: and nobody ever writes comments like that or promotes writing comments like that, so I get kind of ticked off at responses to good commenting practice being subjected to such dumb examples :-P 2016-11-30T23:59:11Z fiddlerwoaroof: Well, even if it was a why, it might not help: you don't need to specify why you do each line of code in the comments. 2016-11-30T23:59:38Z White_Flame: it needs to be clear to an informed human reader 2016-11-30T23:59:45Z White_Flame: that's a subjective call, and an artistry 2016-11-30T23:59:59Z White_Flame: you can't convert that into policy