2017-05-03T00:01:18Z pillton: shrdlu68: I often use check-type (well something like it). You still get all of the benefits of declarations on implementations that do type inference. 2017-05-03T00:01:53Z pillton: That doesn't apply to the :type argument in defclass though. 2017-05-03T00:06:31Z shrdlu68: "declare considered harmful" 2017-05-03T00:07:40Z Ukari quit (Ping timeout: 240 seconds) 2017-05-03T00:12:10Z Jesin joined #lisp 2017-05-03T00:15:35Z pillton: That is an overreaction in my opinion. 2017-05-03T00:17:53Z shrdlu68: Indeed. (with-tongue-in-cheek... 2017-05-03T00:20:24Z oleo quit (Quit: irc client terminated!) 2017-05-03T00:25:15Z brendyn joined #lisp 2017-05-03T00:25:29Z pjb quit (Ping timeout: 276 seconds) 2017-05-03T00:29:09Z seg quit (Ping timeout: 260 seconds) 2017-05-03T00:30:12Z seg joined #lisp 2017-05-03T00:38:18Z shrdlu68 left #lisp 2017-05-03T00:46:05Z cromachina joined #lisp 2017-05-03T00:46:42Z smoon joined #lisp 2017-05-03T00:47:58Z sacculina quit (Quit: leaving) 2017-05-03T00:48:04Z Atrumx joined #lisp 2017-05-03T00:48:18Z PSEUDO_SUE joined #lisp 2017-05-03T00:48:32Z neoncontrails joined #lisp 2017-05-03T00:48:42Z BlueRavenGT joined #lisp 2017-05-03T00:50:59Z pjb joined #lisp 2017-05-03T00:55:10Z yrk quit (Read error: Connection reset by peer) 2017-05-03T00:55:28Z pjb quit (Ping timeout: 240 seconds) 2017-05-03T00:56:52Z smoon quit (Quit: smoon) 2017-05-03T00:59:01Z al-damiri quit (Quit: Connection closed for inactivity) 2017-05-03T01:00:34Z smoon joined #lisp 2017-05-03T01:03:10Z DeadTrickster quit (Ping timeout: 240 seconds) 2017-05-03T01:03:15Z quazimodo joined #lisp 2017-05-03T01:05:35Z sondr3 quit (Ping timeout: 240 seconds) 2017-05-03T01:07:49Z EvW1 joined #lisp 2017-05-03T01:10:52Z MrWoohoo joined #lisp 2017-05-03T01:15:32Z attila_lendvai quit (Ping timeout: 276 seconds) 2017-05-03T01:33:32Z reverse_light joined #lisp 2017-05-03T01:38:30Z stardiviner joined #lisp 2017-05-03T01:41:09Z smoon quit (Quit: smoon) 2017-05-03T01:42:59Z neoncontrails quit 2017-05-03T01:50:23Z rumbler31 joined #lisp 2017-05-03T01:50:56Z ryanwatkins joined #lisp 2017-05-03T01:54:20Z d4ryus1 joined #lisp 2017-05-03T01:56:52Z rumbler31 quit 2017-05-03T01:57:26Z d4ryus quit (Ping timeout: 240 seconds) 2017-05-03T01:59:19Z patrickwonders joined #lisp 2017-05-03T02:01:03Z Jesin quit (Quit: Leaving) 2017-05-03T02:03:54Z jameser joined #lisp 2017-05-03T02:04:27Z space_otter joined #lisp 2017-05-03T02:05:20Z patrickwonders quit (Quit: Colloquy for iPhone - http://colloquy.mobi) 2017-05-03T02:08:11Z Dotcra joined #lisp 2017-05-03T02:08:20Z mrcom quit (Read error: Connection reset by peer) 2017-05-03T02:08:37Z mrcom joined #lisp 2017-05-03T02:15:35Z PSEUDO_SUE quit (Quit: leaving) 2017-05-03T02:16:29Z PSEUDO_SUE joined #lisp 2017-05-03T02:21:37Z pez_ joined #lisp 2017-05-03T02:22:00Z pez_ is now known as Guest17574 2017-05-03T02:31:18Z papachan joined #lisp 2017-05-03T02:34:29Z jack_rabbit quit (Ping timeout: 255 seconds) 2017-05-03T02:36:59Z loke``: gnus 2017-05-03T02:37:01Z loke``: oops 2017-05-03T02:38:05Z EvW1 quit (Ping timeout: 255 seconds) 2017-05-03T02:56:09Z Ukari joined #lisp 2017-05-03T02:58:05Z Dotcra quit (Ping timeout: 240 seconds) 2017-05-03T03:01:13Z pillton: loke``: Which nick do we use? loke or loke``? 2017-05-03T03:01:29Z loke``: This is my work connection. 2017-05-03T03:01:34Z loke``: The other one is at home. :-) 2017-05-03T03:01:38Z scottj quit (Quit: leaving) 2017-05-03T03:01:46Z pillton tells loke`` about SSH. 2017-05-03T03:03:02Z aeth: refer to loke` as a compromise 2017-05-03T03:04:15Z Dotcra joined #lisp 2017-05-03T03:05:08Z adolf_stalin joined #lisp 2017-05-03T03:05:53Z loke``: pillton: I know about SSH, but at work I like to have my ERC sessions connected to my main Emacs session. 2017-05-03T03:05:58Z loke``: Since I do everything in Emacs. 2017-05-03T03:07:10Z pillton: I have a home Emacs and a work Emacs. 2017-05-03T03:08:38Z ryanwatkins quit (Read error: Connection reset by peer) 2017-05-03T03:09:16Z Jesin joined #lisp 2017-05-03T03:11:52Z Xach: emacs in the streets and emacs in the sheets 2017-05-03T03:14:54Z pilne quit (Quit: Quitting!) 2017-05-03T03:15:33Z loke``: Xach: Of course! 2017-05-03T03:17:16Z Dotcra quit (Quit: leaving) 2017-05-03T03:18:40Z schoppenhauer quit (Ping timeout: 255 seconds) 2017-05-03T03:20:31Z schoppenhauer joined #lisp 2017-05-03T03:26:44Z axion: is an array allowed to be stack allocated? 2017-05-03T03:26:50Z pillton: Yes. 2017-05-03T03:26:58Z axion: strange 2017-05-03T03:27:03Z axion: sbcl notes 2017-05-03T03:27:43Z pillton: An implementation is also allowed to ignore your request. 2017-05-03T03:27:51Z axion: Right...for any declaration 2017-05-03T03:33:21Z spos: axion: implementations cannot ignore special or notinline declarations 2017-05-03T03:34:30Z pillton: Strictly speaking they cannot ignore special declarations. 2017-05-03T03:34:49Z pillton: You can ignore notinline if your implementation chooses to not inline anything. 2017-05-03T03:37:20Z beach: Good morning everyone! 2017-05-03T03:38:03Z pillton: G'day beach. 2017-05-03T03:40:15Z myrkraverk joined #lisp 2017-05-03T03:41:11Z axion: Ah ok 2017-05-03T03:41:18Z axion: I'm wondering why this doesn't work... 2017-05-03T03:41:31Z axion: (let ((x (make-array 4 :element-type 'single-float)) (declare (dynamic-extent x)) ..) => ;compiles fine 2017-05-03T03:41:43Z axion: but a function that returns that array does not 2017-05-03T03:42:06Z axion: ; note: could not stack allocate: (MAKE-TEMP-ARRAY) 2017-05-03T03:42:22Z Bike: uh... if it returns it it can't be stack allocated. 2017-05-03T03:42:28Z Bike: or am i misunderstanding what you're saying. 2017-05-03T03:43:16Z Seanzheng joined #lisp 2017-05-03T03:43:31Z axion: I'm...not sure. Manual stack allocating is new to me. I'm following |3b|'s suggestion. 2017-05-03T03:43:54Z pillton: The stack allocation is only valid for the scope of the LET. 2017-05-03T03:44:08Z Seanzheng quit (Remote host closed the connection) 2017-05-03T03:44:12Z Bike: if that array escapes from the extent of the let form, your declaration is a lie 2017-05-03T03:44:22Z axion: It does not 2017-05-03T03:44:38Z pillton: "but a function that returns that array does not" 2017-05-03T03:45:41Z axion: So instead of (let ((x (make-array)) (declare (dynamic-extent x)) ..) i can't do (defun make-temp-array () (make-array ...) (let ((x (make-temp-array)) (declare (dynamic-extent x)) ..) ? 2017-05-03T03:45:54Z Bike: oh! that's what you meant! 2017-05-03T03:46:13Z Bike: Yes, as I recall from the SBCL manual it only works with literal make-array calls. 2017-05-03T03:46:20Z Ukari quit (Ping timeout: 276 seconds) 2017-05-03T03:46:35Z axion: That is unfortunate. Ok thanks. 2017-05-03T03:46:47Z Bike: Maybe try declaring make-temp-array inline 2017-05-03T03:46:53Z axion: I did :/ 2017-05-03T03:46:57Z axion: No effect 2017-05-03T03:47:01Z Bike: ah. no luck then 2017-05-03T03:47:33Z X-Scale quit (Quit: HydraIRC -> http://www.hydrairc.com <- Now with extra fish!) 2017-05-03T03:49:28Z TDT quit (Quit: TDT) 2017-05-03T03:49:36Z sword joined #lisp 2017-05-03T03:52:55Z rjid joined #lisp 2017-05-03T03:57:17Z pillton: I love the first sentence in the description for dynamic-extent. 2017-05-03T03:57:25Z pillton: clhs dynamic-extent 2017-05-03T03:57:25Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/d_dynami.htm 2017-05-03T03:58:15Z beach: Heh! 2017-05-03T03:58:25Z |3b|: yeah, hard thing to specify well without specifying implementation details (like having a stack) 2017-05-03T03:58:39Z pillton: I feel like I need some sort of stimulant to parse that. 2017-05-03T03:59:38Z rjid left #lisp 2017-05-03T03:59:56Z Ukari joined #lisp 2017-05-03T04:00:14Z pillton: What other optimisations does dynamic-extent enable? 2017-05-03T04:00:36Z pillton: I have only ever used it for stack allocation. 2017-05-03T04:01:29Z |3b| can't think of any other uses 2017-05-03T04:01:36Z Bike: i don't think it does, they just described it in a way not involving stacks, which is therefore gibberish 2017-05-03T04:02:09Z |3b|: though even just "put it on the stack" is a bit complicated with everything being references 2017-05-03T04:02:44Z Bike: to formally describe, for sure 2017-05-03T04:02:55Z Bike: the solution isn't a bad one. it's just gibberish 2017-05-03T04:04:45Z jleija quit (Quit: leaving) 2017-05-03T04:14:08Z smoon joined #lisp 2017-05-03T04:19:16Z smoon quit (Quit: smoon) 2017-05-03T04:19:29Z PSEUDO_SUE quit (Ping timeout: 276 seconds) 2017-05-03T04:19:30Z terpri quit (Read error: Connection reset by peer) 2017-05-03T04:20:26Z terpri joined #lisp 2017-05-03T04:22:11Z pillton: I guess a compiler could use (declare (type (unsigned-byte 8) x) (dynamic-extent x)) as a hint to move x in to a register. 2017-05-03T04:23:18Z Bike: you can do that just with the type 2017-05-03T04:24:35Z pillton: I was thinking if the implementation chose to return values on the heap. 2017-05-03T04:30:39Z Harag joined #lisp 2017-05-03T04:35:19Z Harag quit (Ping timeout: 260 seconds) 2017-05-03T04:36:22Z Ukari quit (Ping timeout: 264 seconds) 2017-05-03T04:39:52Z safe quit (Read error: Connection reset by peer) 2017-05-03T04:41:04Z p9s quit (Remote host closed the connection) 2017-05-03T04:41:37Z p9s joined #lisp 2017-05-03T04:46:08Z p9s quit (Ping timeout: 260 seconds) 2017-05-03T04:51:40Z kobain quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2017-05-03T04:52:38Z BlueRavenGT quit (Ping timeout: 276 seconds) 2017-05-03T05:03:49Z bigos_ joined #lisp 2017-05-03T05:04:15Z jack_rabbit joined #lisp 2017-05-03T05:08:52Z jack_rabbit quit (Ping timeout: 246 seconds) 2017-05-03T05:09:26Z Bock joined #lisp 2017-05-03T05:09:38Z dec0n joined #lisp 2017-05-03T05:10:01Z Ukari joined #lisp 2017-05-03T05:14:56Z Guest17574 quit (Quit: Page closed) 2017-05-03T05:15:04Z neuri8 quit (Ping timeout: 260 seconds) 2017-05-03T05:24:39Z ebrasca-afk is now known as ebrasca 2017-05-03T05:31:26Z jameser quit (Ping timeout: 240 seconds) 2017-05-03T05:35:26Z jameser joined #lisp 2017-05-03T05:39:01Z neuri8 joined #lisp 2017-05-03T05:40:32Z otjura joined #lisp 2017-05-03T05:41:40Z mishoo joined #lisp 2017-05-03T05:41:41Z Karl_Dscc joined #lisp 2017-05-03T05:41:57Z milanj quit (Quit: This computer has gone to sleep) 2017-05-03T05:47:26Z Ukari quit (Ping timeout: 240 seconds) 2017-05-03T05:47:33Z adolf_stalin quit (Remote host closed the connection) 2017-05-03T05:47:42Z vlatkoB joined #lisp 2017-05-03T05:54:11Z jack_rabbit joined #lisp 2017-05-03T05:56:44Z sellout- joined #lisp 2017-05-03T06:01:54Z onehrxn joined #lisp 2017-05-03T06:03:19Z sellout-1 joined #lisp 2017-05-03T06:04:29Z jack_rabbit quit (Ping timeout: 260 seconds) 2017-05-03T06:05:57Z sellout- quit (Ping timeout: 240 seconds) 2017-05-03T06:06:57Z onehrxn quit (Ping timeout: 240 seconds) 2017-05-03T06:08:07Z onehrxn joined #lisp 2017-05-03T06:09:39Z DeadTrickster joined #lisp 2017-05-03T06:10:05Z sellout-1 quit (Ping timeout: 240 seconds) 2017-05-03T06:10:44Z sellout- joined #lisp 2017-05-03T06:19:19Z otjura quit (Ping timeout: 240 seconds) 2017-05-03T06:20:31Z Karl_Dscc quit (Remote host closed the connection) 2017-05-03T06:25:37Z jack_rabbit joined #lisp 2017-05-03T06:29:29Z scymtym quit (Ping timeout: 276 seconds) 2017-05-03T06:31:07Z otjura joined #lisp 2017-05-03T06:32:01Z otjura quit (Client Quit) 2017-05-03T06:39:17Z jack_rabbit quit (Ping timeout: 255 seconds) 2017-05-03T06:40:58Z mishoo quit (Ping timeout: 240 seconds) 2017-05-03T06:50:13Z Ukari joined #lisp 2017-05-03T06:57:50Z gingerale joined #lisp 2017-05-03T06:58:44Z Ukari quit (Ping timeout: 276 seconds) 2017-05-03T07:04:16Z nowhereman quit (Ping timeout: 260 seconds) 2017-05-03T07:04:35Z jackdaniel: I have implemented package local nicknames in ECL (now it's ABCL, ECL and SBCL who support it) https://gitlab.com/embeddable-common-lisp/ecl/commit/1ee24e8e3d33427b647d1f9862a035593257e80e 2017-05-03T07:05:15Z mishoo joined #lisp 2017-05-03T07:05:26Z pillton applauds. 2017-05-03T07:05:30Z Guest82128 quit (Quit: Lost terminal) 2017-05-03T07:07:06Z sellout- quit (Quit: Leaving.) 2017-05-03T07:08:53Z vh0st- joined #lisp 2017-05-03T07:08:56Z vhost- quit (Ping timeout: 260 seconds) 2017-05-03T07:09:15Z Reinisch quit (Ping timeout: 268 seconds) 2017-05-03T07:10:29Z pillton: The commit for package local nicknames in SBCL goes all the way back to 2013. 2017-05-03T07:10:45Z Reinisch joined #lisp 2017-05-03T07:10:53Z pillton: All these years of whining and it was already there. 2017-05-03T07:11:32Z dim: jackdaniel: cool! CCL to go? ;-) 2017-05-03T07:11:52Z jackdaniel: I'd love to see it in CCL too :-) 2017-05-03T07:12:02Z jackdaniel: also, CDR for that would be fantastic 2017-05-03T07:13:38Z vhost- joined #lisp 2017-05-03T07:13:45Z vlatkoB_ joined #lisp 2017-05-03T07:13:57Z vh0st- quit (Ping timeout: 240 seconds) 2017-05-03T07:15:34Z o1e9 joined #lisp 2017-05-03T07:17:35Z vlatkoB quit (Ping timeout: 240 seconds) 2017-05-03T07:17:40Z loke``: jackdaniel: Yay! 2017-05-03T07:17:57Z loke``: ABCL, ECL and SBCL are the three CL implementations I use, and frankly, care about. :-) 2017-05-03T07:18:37Z jackdaniel: CCL is also great, but I'm glad ECL made into your top three \o/ 2017-05-03T07:18:44Z jackdaniel: s/made/made it/ 2017-05-03T07:18:59Z loke``: jackdaniel: CCL is good for something, but to me SBCL is better at all of theose things. 2017-05-03T07:19:26Z loke``: There are, however, things that ECL and ABCL does that neither SBCL nor CCL does. 2017-05-03T07:20:23Z loke``: The seamless C integration in ECL is great 2017-05-03T07:21:00Z seg_ joined #lisp 2017-05-03T07:21:18Z jackdaniel: I want to bundle tcc as an optional library in ECL (in case, when "normal" C compiler isn't available on the host – common scenario on Windows) 2017-05-03T07:21:47Z DeadTrickster: jackdaniel, hi, can you point me to something describing how ECL handles signals? 2017-05-03T07:22:10Z jackdaniel: but that has to wait for compiler refactor (switching between native and bytecode is hacky right now) 2017-05-03T07:22:17Z jackdaniel: DeadTrickster: sure, a minute 2017-05-03T07:22:47Z seg quit (Ping timeout: 276 seconds) 2017-05-03T07:23:47Z jackdaniel: https://common-lisp.net/project/ecl/static/manual/ch32.html 2017-05-03T07:23:54Z dim: in the main use case I have for CL (pgloader), CCL is better than SBCL and got to be my implementation of choice here; I can't remember being able to fully (ql:quickload "pgloader") in ECL tho 2017-05-03T07:24:18Z jackdaniel: DeadTrickster: this is a bit incomplete, there is lisp API for that as well 2017-05-03T07:24:49Z DeadTrickster: thx, strangely enough I just was there but section was empty 2017-05-03T07:25:14Z jackdaniel: you was in newdoc 2017-05-03T07:25:20Z jackdaniel: were° 2017-05-03T07:25:39Z jackdaniel: I'm rewriting documentation (really slowly) and filling missing gaps 2017-05-03T07:25:42Z jackdaniel: didn't get to signals yet 2017-05-03T07:26:26Z seg_ quit (Ping timeout: 240 seconds) 2017-05-03T07:26:48Z DeadTrickster: So I have two options - handle signals myself or let ECL runtime do it for me. Are there any signals that ECL uses internally (i.e. to do GCing like SBCL does)? 2017-05-03T07:26:55Z jackdaniel: DeadTrickster: functions you may be interested in are: catch-signal, get-signal-handler and set-signal-handler 2017-05-03T07:26:59Z jackdaniel: all in ext package 2017-05-03T07:27:07Z shifty joined #lisp 2017-05-03T07:27:16Z jackdaniel: src/c/unixint.d has some informative comments too (and implementation of course) 2017-05-03T07:27:26Z vhost- quit (Ping timeout: 240 seconds) 2017-05-03T07:27:47Z jackdaniel: regarding signals used by ECL, see main.d (you can configure it during the compilation which signals are used by the implementatino) 2017-05-03T07:28:47Z jackdaniel: ecl traps sigsegv, sigfpe, sigint, sigill, sigbus, sigpipe by default, but that may be turned off (in said main.d file) 2017-05-03T07:29:21Z jackdaniel: sigbus, sigpwr, sigxcpu are used by gc afair 2017-05-03T07:29:45Z vhost- joined #lisp 2017-05-03T07:30:02Z jackdaniel: loke``: CCL is much more conservative wrt heap use, something what bites me on SBCL over and over again ;-) 2017-05-03T07:30:12Z DeadTrickster: can I disable autoGC completely? 2017-05-03T07:30:12Z seg joined #lisp 2017-05-03T07:30:23Z jackdaniel: DeadTrickster: only from C API 2017-05-03T07:30:30Z jackdaniel: but yeah, it should work 2017-05-03T07:30:40Z jackdaniel: ECL uses boehmgc 2017-05-03T07:30:56Z jackdaniel: it may be disabled at runtime, but I haven't exported anything of it into lisp world 2017-05-03T07:31:01Z DeadTrickster: like I turn it off and call some ext: to collect when I want 2017-05-03T07:31:08Z jackdaniel: yes 2017-05-03T07:31:15Z DeadTrickster: awesome 2017-05-03T07:31:44Z DeadTrickster: I just read QT tutorial. what is c++14 bridge? 2017-05-03T07:31:48Z varjag joined #lisp 2017-05-03T07:31:56Z DeadTrickster: just a class to help dealing with cl_object? 2017-05-03T07:32:16Z jackdaniel: yes, I think it is in the examples/ 2017-05-03T07:32:25Z DeadTrickster: I'm intrigued by c++14 2017-05-03T07:32:25Z jackdaniel: also you may want to check out EQL5, awesome library 2017-05-03T07:32:40Z jackdaniel: supports qml, webkit etc 2017-05-03T07:33:15Z jackdaniel: I'm going to have a breakfast, see you later o/ (you may drop further questions on #ecl or on priv, I'll answer them when I'm back) 2017-05-03T07:33:31Z DeadTrickster: yeah, thanks see you 2017-05-03T07:34:34Z MoALTz joined #lisp 2017-05-03T07:34:43Z Harag joined #lisp 2017-05-03T07:36:08Z gargaml joined #lisp 2017-05-03T07:39:54Z shrdlu68 joined #lisp 2017-05-03T07:40:29Z shrdlu68: Good morning, folks. 2017-05-03T07:42:17Z smokeink joined #lisp 2017-05-03T07:45:37Z xantoz quit (Quit: WeeChat 1.4) 2017-05-03T07:46:52Z quazimodo quit (Ping timeout: 255 seconds) 2017-05-03T07:49:34Z scymtym joined #lisp 2017-05-03T07:52:31Z edgar-rft quit (Quit: edgar-rft) 2017-05-03T07:54:35Z smokeink quit (Ping timeout: 240 seconds) 2017-05-03T07:56:46Z smokeink joined #lisp 2017-05-03T07:58:18Z Bike quit (Quit: fd) 2017-05-03T07:58:31Z nirved joined #lisp 2017-05-03T08:01:03Z ogamita joined #lisp 2017-05-03T08:02:04Z ogamita: sorressean: I'd be interested in seeing how you format (or don't format) the code by default for yourself. Do you have a sample in git or lisppaste? 2017-05-03T08:02:07Z smokeink quit (Ping timeout: 246 seconds) 2017-05-03T08:03:03Z smokeink joined #lisp 2017-05-03T08:03:12Z hjudt_ quit (Quit: Lost terminal) 2017-05-03T08:04:12Z smokeink quit (Client Quit) 2017-05-03T08:05:45Z mazoe quit (Quit: rcirc on GNU Emacs 24.5.1) 2017-05-03T08:06:38Z hjudt joined #lisp 2017-05-03T08:10:16Z hhdave joined #lisp 2017-05-03T08:17:50Z defaultxr quit (Ping timeout: 255 seconds) 2017-05-03T08:20:58Z beach: Hello shrdlu68. 2017-05-03T08:21:47Z jack_rabbit joined #lisp 2017-05-03T08:25:43Z burtons joined #lisp 2017-05-03T08:29:35Z xaotuk joined #lisp 2017-05-03T08:30:10Z burtons quit (Ping timeout: 240 seconds) 2017-05-03T08:32:51Z shka joined #lisp 2017-05-03T08:34:17Z jack_rabbit quit (Ping timeout: 276 seconds) 2017-05-03T08:36:21Z space_otter quit (Remote host closed the connection) 2017-05-03T08:39:40Z xaotuk quit (Ping timeout: 240 seconds) 2017-05-03T08:45:49Z brendyn quit (Ping timeout: 255 seconds) 2017-05-03T08:55:45Z ebrasca quit (Remote host closed the connection) 2017-05-03T09:05:22Z Harag quit (Ping timeout: 258 seconds) 2017-05-03T09:11:08Z loke`` quit (Remote host closed the connection) 2017-05-03T09:12:43Z brendyn joined #lisp 2017-05-03T09:13:31Z Ven joined #lisp 2017-05-03T09:13:55Z Ven is now known as Guest98555 2017-05-03T09:15:12Z Ukari joined #lisp 2017-05-03T09:18:19Z Sigyn quit (Quit: NO HEARTBEAT, NO SERVICE.) 2017-05-03T09:18:52Z Sigyn joined #lisp 2017-05-03T09:19:29Z Harag joined #lisp 2017-05-03T09:22:58Z mingus quit (Remote host closed the connection) 2017-05-03T09:23:20Z mingus joined #lisp 2017-05-03T09:23:33Z ksool quit (Remote host closed the connection) 2017-05-03T09:23:53Z AntiSpamMeta quit (Remote host closed the connection) 2017-05-03T09:24:08Z AntiSpamMeta joined #lisp 2017-05-03T09:24:22Z sebboh` joined #lisp 2017-05-03T09:24:23Z djuber`` joined #lisp 2017-05-03T09:24:24Z frodef`` joined #lisp 2017-05-03T09:24:44Z xantoz joined #lisp 2017-05-03T09:25:54Z ksool joined #lisp 2017-05-03T09:25:57Z frodef` quit (Write error: Broken pipe) 2017-05-03T09:25:57Z djuber` quit (Write error: Broken pipe) 2017-05-03T09:25:58Z ksool quit (Changing host) 2017-05-03T09:25:58Z ksool joined #lisp 2017-05-03T09:25:59Z sebboh quit (Remote host closed the connection) 2017-05-03T09:30:48Z milanj joined #lisp 2017-05-03T09:34:05Z hexfive quit (Ping timeout: 276 seconds) 2017-05-03T09:36:17Z m00natic joined #lisp 2017-05-03T09:36:22Z MrBusiness quit (Ping timeout: 264 seconds) 2017-05-03T09:40:27Z attila_lendvai joined #lisp 2017-05-03T09:44:48Z stardiviner quit (Ping timeout: 260 seconds) 2017-05-03T09:45:47Z shrdlu68 quit (Ping timeout: 276 seconds) 2017-05-03T09:49:12Z OTS_ joined #lisp 2017-05-03T09:51:10Z burtons joined #lisp 2017-05-03T09:52:57Z Guest98555 quit (Ping timeout: 240 seconds) 2017-05-03T09:55:35Z Ven joined #lisp 2017-05-03T09:55:45Z burtons quit (Ping timeout: 268 seconds) 2017-05-03T09:56:11Z Ven is now known as Guest51495 2017-05-03T09:57:39Z OTS_: hey #lisp. Anyone able to show me how to write "INSERT INTO MyTable ( Column1, Column2) VALUES ( Value1, Value2), ( Value1, Value2)" using sqxl/datafly (https://github.com/fukamachi/datafly)? I need to insert more than one row per opertation. TY. 2017-05-03T09:58:48Z ogamita: Also, datafly is in quicklisp: (ql:quickload :datafly) 2017-05-03T09:59:58Z hlavaty joined #lisp 2017-05-03T10:04:27Z ogamita: OTS_: so, after (ql:quickload :datafly) type: (apropos "INSERT-INTO") locate the right one (I asume sxql:insert-into), move the cursor on it, type M-. to see the source of the macro, and see that it takes: defmacro insert-into (table &body clauses) several clauses. So my gues was good: (execute (insert-into :table (set= …) (set= …) (set= …))) 2017-05-03T10:07:08Z salva joined #lisp 2017-05-03T10:07:20Z ogamita: Ah, right, the examples in https://github.com/fukamachi/sxql seem to indicate that indeed, no multiple (set= ) can be put there. 2017-05-03T10:07:58Z ogamita: Probably sxql is missing the feature. It seems you would have to add a sxql statement and a macro to create it. 2017-05-03T10:08:05Z Guest51495 quit (Ping timeout: 268 seconds) 2017-05-03T10:08:10Z Ukari quit (Ping timeout: 255 seconds) 2017-05-03T10:08:46Z OTS_: ogamita: ok, thank you. I couldn't really get my head around whether the feature was missing or I couldn't find it. 2017-05-03T10:09:57Z ogamita: or perhaps, you could do it by creating two clauses, one to specify the columns and another, repeatable to list the values. Cf clause.lisp in sxql. 2017-05-03T10:10:58Z ogamita: So you would write something like: (execute (insert-into :some-table (columns :type :name) (value "int" "integer") (value "double" "floating point") …)) 2017-05-03T10:11:11Z Ven_ joined #lisp 2017-05-03T10:11:22Z ogamita: but definiely, you need to expand sxql. 2017-05-03T10:11:29Z ogamita: extend. 2017-05-03T10:11:57Z shka: anybody considered adding memory barriers to BT? 2017-05-03T10:12:05Z OTS_: that is daunting. 2017-05-03T10:13:27Z shka: well, without that i have no choice but to use SBCL stuff directly 2017-05-03T10:15:29Z agspathis joined #lisp 2017-05-03T10:16:57Z agspathis quit (Client Quit) 2017-05-03T10:19:15Z prole joined #lisp 2017-05-03T10:22:58Z pve joined #lisp 2017-05-03T10:26:10Z ogamita quit (Ping timeout: 255 seconds) 2017-05-03T10:26:37Z jameser quit (Ping timeout: 255 seconds) 2017-05-03T10:27:19Z stardiviner joined #lisp 2017-05-03T10:29:29Z shrdlu68 joined #lisp 2017-05-03T10:42:05Z EvW joined #lisp 2017-05-03T10:45:11Z python476 joined #lisp 2017-05-03T10:45:49Z quazimodo joined #lisp 2017-05-03T10:59:15Z stardiviner quit (Quit: WeeChat 1.7.1) 2017-05-03T11:02:04Z Harag quit (Read error: Connection reset by peer) 2017-05-03T11:02:40Z Harag joined #lisp 2017-05-03T11:03:49Z mejja joined #lisp 2017-05-03T11:08:41Z sondr3 joined #lisp 2017-05-03T11:11:10Z Harag quit (Ping timeout: 264 seconds) 2017-05-03T11:14:52Z Xach: the horro 2017-05-03T11:19:09Z nowhereman joined #lisp 2017-05-03T11:30:20Z hlavaty quit (Remote host closed the connection) 2017-05-03T11:36:28Z p9s joined #lisp 2017-05-03T11:40:11Z quazimodo quit (Ping timeout: 276 seconds) 2017-05-03T11:40:57Z ogamita joined #lisp 2017-05-03T11:41:23Z easye: Hmmm. Declaring types in DEFCLASS slots, and then SETF'ing such slots to values for which TYPEP should signal a runtime condition right? It does in CCL but not in SBCL. Is this implementation dependent behavior? 2017-05-03T11:41:47Z easye: err "for which TYPEP returns nil" 2017-05-03T11:42:29Z axion: Previously discussed, implementations are allowed to ignore DECLARE forms except for special and notinline 2017-05-03T11:42:42Z ogamita: easye: type declarations can be ignored. I don't know if defclass slot :type are considered declarations. 2017-05-03T11:43:31Z ogamita: Yes, it's a declaration plus: It effectively declares the result type of the reader generic function when applied to an object of this class. The consequences of attempting to store in a slot a value that does not satisfy the type of the slot are undefined. The :type slot option is further discussed in Section 7.5.3 (Inheritance of Slots and Slot Options). 2017-05-03T11:44:04Z oleo joined #lisp 2017-05-03T11:44:11Z ogamita: Declaration for the reader, and unspecified for the writer. Again, it's probably a good idea NOT to use :type… 2017-05-03T11:44:12Z axion: I use :type in slots purely for documentation 2017-05-03T11:44:24Z ogamita: (and instead, use check-type in the initializer and in the writers. 2017-05-03T11:44:38Z azzamsa joined #lisp 2017-05-03T11:44:46Z ogamita: axion: but if you make it wrong, you get unspecified behavior, which is worse than anything. 2017-05-03T11:45:09Z axion: This is true 2017-05-03T11:45:39Z ogamita: Typically, you have :type integer and you forget to give :initform 42 2017-05-03T11:49:26Z easye: Alright. Thanks for the lay of the land... 2017-05-03T12:05:58Z moei quit (Read error: Connection reset by peer) 2017-05-03T12:06:34Z moei joined #lisp 2017-05-03T12:06:56Z watersoul_ quit (Remote host closed the connection) 2017-05-03T12:07:14Z watersoul joined #lisp 2017-05-03T12:08:32Z Ven_ quit (Ping timeout: 260 seconds) 2017-05-03T12:11:47Z shrdlu68 left #lisp 2017-05-03T12:11:53Z Ven joined #lisp 2017-05-03T12:12:16Z Ven is now known as Guest31589 2017-05-03T12:13:11Z scymtym_ joined #lisp 2017-05-03T12:13:28Z oleo: morning 2017-05-03T12:15:26Z scymtym quit (Ping timeout: 255 seconds) 2017-05-03T12:16:00Z JuanDaugherty quit (Quit: Hibernate, reboot, exeunt, etc.) 2017-05-03T12:20:48Z EvW quit (Ping timeout: 240 seconds) 2017-05-03T12:21:17Z scymtym_ quit (Ping timeout: 255 seconds) 2017-05-03T12:21:26Z scymtym_ joined #lisp 2017-05-03T12:23:16Z EvW joined #lisp 2017-05-03T12:23:35Z Guest31589 quit (Ping timeout: 240 seconds) 2017-05-03T12:27:01Z Ven_ joined #lisp 2017-05-03T12:28:14Z Ven_ quit (Client Quit) 2017-05-03T12:29:34Z Ven_ joined #lisp 2017-05-03T12:33:49Z LiamH joined #lisp 2017-05-03T12:39:52Z ebrasca joined #lisp 2017-05-03T12:49:56Z NeverDie quit (Quit: http://radiux.io/) 2017-05-03T12:51:00Z dim quit (Ping timeout: 260 seconds) 2017-05-03T12:51:16Z dim joined #lisp 2017-05-03T12:52:22Z TDT joined #lisp 2017-05-03T12:52:28Z p9s quit (Read error: Connection reset by peer) 2017-05-03T12:52:52Z p9s joined #lisp 2017-05-03T12:54:31Z orivej quit (Read error: Connection reset by peer) 2017-05-03T12:59:58Z vibs29 left #lisp 2017-05-03T13:00:04Z vibs29 joined #lisp 2017-05-03T13:00:40Z idurand joined #lisp 2017-05-03T13:00:44Z shka: easye: sbcl will signal condition if safety is high enough 2017-05-03T13:00:47Z shka: i think it has to be 2 2017-05-03T13:05:01Z azzamsa quit (Ping timeout: 255 seconds) 2017-05-03T13:05:59Z quazimodo joined #lisp 2017-05-03T13:07:08Z p9s quit (Read error: Connection reset by peer) 2017-05-03T13:07:22Z p9s joined #lisp 2017-05-03T13:07:59Z EvW quit (Ping timeout: 260 seconds) 2017-05-03T13:09:13Z p9s_ joined #lisp 2017-05-03T13:09:14Z p9s quit (Read error: Connection reset by peer) 2017-05-03T13:10:55Z myrkraverk_ joined #lisp 2017-05-03T13:12:24Z didi joined #lisp 2017-05-03T13:13:52Z myrkraverk quit (Ping timeout: 260 seconds) 2017-05-03T13:14:05Z myrkraverk_ is now known as myrkraverk 2017-05-03T13:14:46Z didi: If while defining a structure I set :constructor to nil, who do I make a structure of this type now that there is no constructor? 2017-05-03T13:17:31Z Ven_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-05-03T13:17:46Z Ven joined #lisp 2017-05-03T13:18:10Z Ven is now known as Guest80741 2017-05-03T13:19:18Z dlowe: make-instance will still work, because a structure is a class of metaclass structure-class 2017-05-03T13:20:00Z dlowe: http://www.lispworks.com/documentation/HyperSpec/Body/t_stu_cl.htm 2017-05-03T13:20:08Z didi: dlowe: Ah, cool. Thank you. 2017-05-03T13:20:20Z dlowe: or maybe it's a subclass of structure-class 2017-05-03T13:20:23Z dlowe: anyway, it'll work. 2017-05-03T13:20:58Z dlowe: I pretty much always use classes over structures, since classes have well-defined redefinition semantics 2017-05-03T13:21:28Z idurand quit (Ping timeout: 266 seconds) 2017-05-03T13:22:41Z didi: In my mind structures are lower-level and more efficient to compute with, but I dunno. 2017-05-03T13:22:58Z Xach: they are more efficient. when is it worth it? for me, not often. 2017-05-03T13:24:05Z didi: I might revisit it. I formulated it based on ignorance, anyway. 2017-05-03T13:24:35Z Xach: I really do think it depends on your requirements. 2017-05-03T13:25:24Z didi: Thank you. 2017-05-03T13:26:04Z Xach: I think it's often a naive requirement that "things must be as fast as possible at runtime" 2017-05-03T13:26:11Z didi: Sure. 2017-05-03T13:26:20Z Xach: development time and flexibility count too 2017-05-03T13:26:27Z didi: Completely agree. 2017-05-03T13:26:40Z yrdz quit (Remote host closed the connection) 2017-05-03T13:27:05Z Xach: I remember when frodef`` was working on the movitz calling convention and asked if anyone else was shocked by the overhead required by supporting generic functions 2017-05-03T13:29:29Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2017-05-03T13:29:36Z Xach: So many cycles! 2017-05-03T13:29:42Z didi: :-) 2017-05-03T13:31:25Z didi: I battle my colleagues over this "fast runtime at all costs" obsession. 2017-05-03T13:32:20Z Harag joined #lisp 2017-05-03T13:35:03Z phoe: Does UIOP have any way of getting the path of the Lisp executable that is running? 2017-05-03T13:35:22Z phoe: An equivalent to Linux "readlink /proc/self/exe"? 2017-05-03T13:36:56Z burtons joined #lisp 2017-05-03T13:41:28Z orivej joined #lisp 2017-05-03T13:44:42Z jerme joined #lisp 2017-05-03T13:46:13Z ryanwatkins joined #lisp 2017-05-03T13:50:54Z loke___ joined #lisp 2017-05-03T13:52:50Z p9s_ quit (Read error: Connection reset by peer) 2017-05-03T13:54:45Z p9s joined #lisp 2017-05-03T13:55:59Z psacrifice joined #lisp 2017-05-03T13:59:05Z reverse_light quit (Remote host closed the connection) 2017-05-03T14:04:48Z cromachina quit (Read error: Connection reset by peer) 2017-05-03T14:06:26Z python476 quit (Ping timeout: 276 seconds) 2017-05-03T14:09:44Z orivej quit (Ping timeout: 258 seconds) 2017-05-03T14:10:36Z dec0n quit (Read error: Connection reset by peer) 2017-05-03T14:13:01Z orivej joined #lisp 2017-05-03T14:13:02Z scymtym__ joined #lisp 2017-05-03T14:15:08Z scymtym_ quit (Ping timeout: 260 seconds) 2017-05-03T14:17:26Z yrk joined #lisp 2017-05-03T14:18:01Z yrk quit (Changing host) 2017-05-03T14:18:01Z yrk joined #lisp 2017-05-03T14:18:45Z Bike joined #lisp 2017-05-03T14:20:20Z python476 joined #lisp 2017-05-03T14:20:55Z shifty quit (Ping timeout: 268 seconds) 2017-05-03T14:22:12Z oleo quit (Quit: irc client terminated!) 2017-05-03T14:24:17Z azzamsa joined #lisp 2017-05-03T14:25:17Z EvW joined #lisp 2017-05-03T14:31:34Z eazar001 joined #lisp 2017-05-03T14:32:26Z PSEUDO_SUE joined #lisp 2017-05-03T14:33:34Z yeticry_ joined #lisp 2017-05-03T14:34:25Z idurand joined #lisp 2017-05-03T14:35:31Z yeticry quit (Ping timeout: 246 seconds) 2017-05-03T14:35:48Z beach: didi: Also, you could use standard classes and wait until your favorite Common Lisp implementation implements my fast generic dispatch technique. 2017-05-03T14:36:08Z thinkpad quit (Ping timeout: 260 seconds) 2017-05-03T14:36:27Z didi: beach: Are you responsible for my favorite common lisp implementation, SBCL? ;-) 2017-05-03T14:36:35Z beach: I am not. 2017-05-03T14:36:38Z didi: Aww. 2017-05-03T14:36:42Z beach: didi: drmeister just implemented it in Clasp. You can check with him what kind of performance improvement it allows. 2017-05-03T14:37:16Z scymtym__ quit (Ping timeout: 240 seconds) 2017-05-03T14:37:23Z beach: didi: What I am trying to say is that one of these days, there might not be a whole lot of difference in performance. 2017-05-03T14:37:28Z didi: beach: I am afraid such inquire is out of my league. 2017-05-03T14:37:41Z didi: beach: I see. 2017-05-03T14:38:01Z thinkpad joined #lisp 2017-05-03T14:38:33Z beach: In other words, the difference is not intrinsic. It is due to the fact that the technique used in SBCL is no longer so good with current architectures. 2017-05-03T14:38:39Z yeticry_ quit (Remote host closed the connection) 2017-05-03T14:38:52Z didi: Interesting. 2017-05-03T14:39:07Z yeticry joined #lisp 2017-05-03T14:40:25Z rumbler31 joined #lisp 2017-05-03T14:43:49Z idurand quit (Remote host closed the connection) 2017-05-03T14:44:26Z oleo joined #lisp 2017-05-03T14:48:02Z attila_lendvai quit (Ping timeout: 276 seconds) 2017-05-03T14:53:38Z al-damiri joined #lisp 2017-05-03T14:54:32Z mishoo quit (Ping timeout: 276 seconds) 2017-05-03T14:55:11Z brendyn quit (Ping timeout: 276 seconds) 2017-05-03T14:56:35Z azzamsa quit (Ping timeout: 240 seconds) 2017-05-03T14:58:53Z rippa joined #lisp 2017-05-03T15:02:14Z warweasle joined #lisp 2017-05-03T15:10:33Z Guest80741 quit (Ping timeout: 260 seconds) 2017-05-03T15:11:31Z p9s quit (Remote host closed the connection) 2017-05-03T15:12:04Z p9s joined #lisp 2017-05-03T15:12:26Z Ven joined #lisp 2017-05-03T15:12:49Z Ven is now known as Guest37161 2017-05-03T15:16:34Z p9s quit (Ping timeout: 264 seconds) 2017-05-03T15:22:46Z LiamH quit (Quit: Leaving.) 2017-05-03T15:28:58Z keix joined #lisp 2017-05-03T15:32:05Z EvW quit (Ping timeout: 255 seconds) 2017-05-03T15:32:10Z switchy quit (Ping timeout: 240 seconds) 2017-05-03T15:33:53Z switchy joined #lisp 2017-05-03T15:34:55Z didi: How to I set the docstring of a structure constructor? 2017-05-03T15:36:05Z Bike: (setf (documentation #'constructor t) ...) i guess 2017-05-03T15:36:05Z Colleen: Bike: drmeister said 7 hours, 27 minutes, 33 seconds ago: What kind of extensive profiling report for the compiler. Profiling tools I've tried (Instruments and prof mainly) have been pretty useless - or I don't know how to use them. 2017-05-03T15:36:05Z Colleen: Bike: drmeister said 7 hours, 26 minutes, 11 seconds ago: Single instruction stepping through code has been frustrating as well because there are many instructions involved in doing things (which is the problem). GF dispatch appeared to be one of the problems because it was the first large number of instructions involved in a GF call. 2017-05-03T15:36:12Z mishoo joined #lisp 2017-05-03T15:36:13Z Bike: i don't think you can do it definitionally oh 2017-05-03T15:36:14Z didi: Bike: Thank you. 2017-05-03T15:37:27Z phoe: Which library can turn XML into something similar to the input code for CL-WHO? 2017-05-03T15:37:37Z phoe: I want to turn XML into S-expressions. 2017-05-03T15:38:29Z dlowe: cxml 2017-05-03T15:38:32Z dlowe: use the xmls-builder 2017-05-03T15:41:37Z didi: Hum. *slime-inspector* isn't showing my structure documentation. 2017-05-03T15:41:50Z didi: Tho (documentation (find-class 'channel) t) returns it. 2017-05-03T15:42:38Z quazimodo quit (Ping timeout: 276 seconds) 2017-05-03T15:43:11Z dlowe: there's a M-x slime-documentation 2017-05-03T15:43:18Z dlowe: that does not document slime :) 2017-05-03T15:43:32Z didi: :-) 2017-05-03T15:44:34Z didi: dlowe: How do I use it to show the documentation of a structure? 2017-05-03T15:47:35Z cross joined #lisp 2017-05-03T15:47:38Z phoe: dlowe: thanks. 2017-05-03T15:53:07Z Guest37161 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-05-03T15:55:08Z knobo quit (Ping timeout: 240 seconds) 2017-05-03T15:56:13Z drmeister: Regular ECL dispatch for a generic function that takes one argument is 320 instructions. Fastgf accomplishes the dispatch in 36 instructions. 2017-05-03T15:56:57Z beach: A very significant difference. 2017-05-03T16:00:41Z phoe: drmeister: Hey, that's an eightfold reduction. 2017-05-03T16:00:57Z beach: Does that number include ordinary function-call stuff like argument passing, pushing return address, saving registers, etc.? 2017-05-03T16:02:16Z beach: Also, what is a comparable number for SBCL? 2017-05-03T16:07:10Z beach: ... and the instruction count is not the entire story. A memory access can be significantly more expensive than a register operation, for instance. 2017-05-03T16:07:59Z ogamita quit (Ping timeout: 276 seconds) 2017-05-03T16:08:32Z didi quit (Ping timeout: 255 seconds) 2017-05-03T16:08:46Z loke___: beach: About 20 CPU cycles, it seems? 2017-05-03T16:09:23Z beach: loke___: For SBCL? 2017-05-03T16:09:27Z loke___: I created a GF with two methods, called that GF 10 to 100 million times. Roughly 15-20 cyles per invocation. 2017-05-03T16:09:36Z loke___: aaccroding to TIME 2017-05-03T16:09:41Z wheelsucker joined #lisp 2017-05-03T16:09:41Z loke___: beach: Yes SBCL 2017-05-03T16:10:04Z loke___: Hmm... wait a second. I used a static argument. It might have been able to tcompile-time optimise away the dynamic dispatch 2017-05-03T16:10:10Z loke___: Let me change that a bit 2017-05-03T16:12:16Z loke___: Added a call to RADNOM and an IF in order to randomise the argument type, and then the whole shebang is about 50 cycles. 2017-05-03T16:12:30Z loke___: More like 52 or so 2017-05-03T16:13:06Z beach: Still hard to compare with the number drmeister showed, but yeah, that gives an idea. 2017-05-03T16:13:07Z loke___: So it would make sense to assume that half of that is dynamic dispatch... So yeah, about 20 cycles? 2017-05-03T16:13:44Z beach: That means that drmeister still has some improvements to work on. :) 2017-05-03T16:14:27Z drmeister: I'm really puzzled what's going on. 2017-05-03T16:15:00Z drmeister: fastgf involves about 1/10th of the instructions of the original dispatch method. 2017-05-03T16:16:14Z drmeister: fastgf should have no impact on consing during GF dispatch. Test cases show that neither fastgf nor the original dispatch method do any consing once a few dummy calls are made to cache the effective methods. 2017-05-03T16:17:29Z drmeister: However, compiling a file with fastgf on is about 14% SLOWER and conses about 5% more memory overall. 2017-05-03T16:18:03Z drmeister starts slamming his head on the desk 2017-05-03T16:18:21Z deank joined #lisp 2017-05-03T16:23:30Z beach: Is that true if you compile the same file again? 2017-05-03T16:23:36Z varjag joined #lisp 2017-05-03T16:23:47Z shrdlu68 joined #lisp 2017-05-03T16:24:14Z beach: If you are taking lots of cache misses, then you are not necessarily measuring steady-state dispatch time. 2017-05-03T16:25:22Z FreeBirdLjj joined #lisp 2017-05-03T16:25:32Z orivej quit (Ping timeout: 276 seconds) 2017-05-03T16:26:39Z drmeister: These are long, slow experiments with distractions - I may be screwing things up. 2017-05-03T16:27:08Z drmeister: Is there a way to count cache misses? 2017-05-03T16:27:30Z drmeister: Could I rig TIME to give me cache misses? 2017-05-03T16:27:42Z pipping: video that goes along with drmeister slamming his head on the desk: https://www.youtube.com/watch?v=RrJnzBFzEEY 2017-05-03T16:27:49Z mishoo quit (Quit: (save-lisp-and-die)) 2017-05-03T16:30:54Z phoe: I have a tree of conses. I want to traverse this tree and, for any given list, if X is a string, then I want to destructively replace that X with (f x). 2017-05-03T16:31:02Z phoe: beach: did I get the "replace with" right this time? 2017-05-03T16:31:16Z phoe: uh, not if X is a string 2017-05-03T16:31:19Z beach: YESSSS!!! 2017-05-03T16:31:22Z phoe: if CAR of that list is a string 2017-05-03T16:31:24Z phoe: beach: yay! 2017-05-03T16:31:38Z beach: "by" is better than "with". 2017-05-03T16:32:52Z phoe: So basically: ("foo" ((("bar")) ("baz"))), I want "foo" to be replaced by the value of (f "foo"), "bar" - (f "bar"), and so on. 2017-05-03T16:33:35Z kobain joined #lisp 2017-05-03T16:33:56Z beach: So you would get ((f "foo") ((((f "bar"))) ((f "baz"))))? 2017-05-03T16:34:06Z phoe: beach: no no, the value of that function. 2017-05-03T16:34:14Z beach: Oh, I see. 2017-05-03T16:34:14Z phoe: I mean, uh. 2017-05-03T16:34:32Z phoe: I want (:foo (((:bar)) (:baz))) if the function is #'keywordize-string. 2017-05-03T16:34:38Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2017-05-03T16:34:53Z phoe: And the operation may be destructive. 2017-05-03T16:35:00Z beach: Yes, I see. And the occurrences to replace can only be the CAR of some CONS? 2017-05-03T16:35:21Z BlueRavenGT joined #lisp 2017-05-03T16:35:24Z beach: Can you have ("foo" "bar")? 2017-05-03T16:35:34Z phoe: But ("foo" "bar" "baz") - I want only the CAR to be transformed. 2017-05-03T16:35:36Z phoe: So, (:foo "bar" "baz"). 2017-05-03T16:35:39Z beach: Or even ("foo" . "bar") 2017-05-03T16:35:48Z phoe: beach: all lists are proper. 2017-05-03T16:35:48Z unbalancedparen joined #lisp 2017-05-03T16:35:55Z phoe: But I want only the CAR to be transformed. 2017-05-03T16:36:43Z beach: Sounds like a nice litter exercise. 2017-05-03T16:37:03Z beach: Can there be other atoms than strings? 2017-05-03T16:37:05Z phoe: Ayup. I just thought there's a generalized tool for that sort of things somewhere. 2017-05-03T16:37:24Z sellout- joined #lisp 2017-05-03T16:37:27Z phoe: Yes, numbers. 2017-05-03T16:37:30Z drmeister: Never mind. For some bizarre reason I can't unset an environment variable in bash. 2017-05-03T16:37:33Z beach: That sounds a bit too specialized for a general tool. 2017-05-03T16:37:43Z drmeister: That throws all of my last hour of careful timing out the window. 2017-05-03T16:37:43Z o1e9 quit (Quit: Ex-Chat) 2017-05-03T16:37:44Z scymtym joined #lisp 2017-05-03T16:37:49Z beach: drmeister: ? 2017-05-03T16:37:53Z phoe: beach: I see. 2017-05-03T16:37:58Z drmeister: Yes, exactly 2017-05-03T16:38:41Z otwieracz quit (Quit: leaving) 2017-05-03T16:39:04Z otwieracz joined #lisp 2017-05-03T16:39:25Z drmeister: I think I'm going crazy 2017-05-03T16:39:26Z drmeister: parameter 2017-05-03T16:39:43Z drmeister: https://www.irccloud.com/pastebin/0iEQnjUa/ 2017-05-03T16:40:19Z drmeister: I'm using the environment variable CLASP_FEATURES to turn on and off fastgf 2017-05-03T16:40:30Z Karl_Dscc joined #lisp 2017-05-03T16:40:32Z drmeister: export CLASP_FEATURES=enable-fastgf should turn it on 2017-05-03T16:40:36Z loke___ quit (Ping timeout: 260 seconds) 2017-05-03T16:40:41Z drmeister: export -n CLASP_FEATURES should turn it off 2017-05-03T16:40:51Z drmeister: This is in emacs M-x shell 2017-05-03T16:40:56Z beach: phoe: Something like: (defun do-stuff (expression function) (when (consp expression) (if (stringp (car expression)) (setf (car expression) (funcall function (car expression))) (mapc #'do-struff expression)))) 2017-05-03T16:41:26Z beach: Er, modulo passing the right arguments to the recursive call. 2017-05-03T16:41:27Z xaotuk joined #lisp 2017-05-03T16:41:28Z phoe: drmeister: unset? 2017-05-03T16:41:39Z phoe: $ unset CLASP_FEATURES 2017-05-03T16:41:43Z shrdlu68: ^ 2017-05-03T16:41:46Z onehrxn_ joined #lisp 2017-05-03T16:42:02Z drmeister: Is that how its supposed to be done. I've always used export -n 2017-05-03T16:42:04Z drmeister: https://www.irccloud.com/pastebin/XzQoMQlY/ 2017-05-03T16:42:08Z phoe: beach: Thanks. I'll work with that. 2017-05-03T16:42:08Z hhdave quit (Ping timeout: 268 seconds) 2017-05-03T16:42:15Z xaotuk quit (Client Quit) 2017-05-03T16:42:41Z p9s joined #lisp 2017-05-03T16:42:43Z phoe: drmeister: https://i.imgtc.com/9hd4UZi.png 2017-05-03T16:43:04Z phoe: Doesn't work on my machine, bash 4.4.0 on debian sid 2017-05-03T16:43:52Z hexfive joined #lisp 2017-05-03T16:44:02Z phoe: It seems that export -n does other stuff, https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-a-linux-vps 2017-05-03T16:44:05Z onehrxn quit (Ping timeout: 240 seconds) 2017-05-03T16:44:22Z drmeister: Well, clearly I've been using the wrong command. 2017-05-03T16:44:31Z shrdlu68: drmeister: I've always used unset, didn't even know export had an -n switch. 2017-05-03T16:46:27Z shrdlu68: "The -n option causes the export property to be removed from each name" 2017-05-03T16:47:05Z p9s quit (Ping timeout: 240 seconds) 2017-05-03T16:47:07Z shrdlu68: I guess that means it won't be exported, rather than that it will be removed. 2017-05-03T16:48:28Z keix quit (Remote host closed the connection) 2017-05-03T16:48:52Z discardedes quit (Read error: Connection reset by peer) 2017-05-03T16:48:54Z phoe: beach: http://paste.lisp.org/display/345737 <- it's working, thank you. 2017-05-03T16:49:38Z drmeister: Yep - fastgf requires more memory and takes more time. 2017-05-03T16:49:39Z TDT quit (Quit: TDT) 2017-05-03T16:49:44Z drmeister: WTF 2017-05-03T16:50:15Z beach: phoe: Great! 2017-05-03T16:50:26Z drmeister: It should be faster and have no impact on consing. 2017-05-03T16:50:28Z gargaml quit (Ping timeout: 240 seconds) 2017-05-03T16:50:48Z Baggers joined #lisp 2017-05-03T16:51:07Z ryanwatkins quit (Ping timeout: 258 seconds) 2017-05-03T16:58:15Z defaultxr joined #lisp 2017-05-03T17:00:05Z pilne joined #lisp 2017-05-03T17:00:14Z pipping: drmeister: actually, export -n, which exists in bash but not other shells, should have worked for you, in the following sense: http://dpaste.com/2WKXW3H 2017-05-03T17:02:15Z pipping: drmeister: it unexports the variable, so that the current shell still has access to it (as shown in phoe's paste) but any command (including new shells) you run won't 2017-05-03T17:04:09Z reinuseslisp joined #lisp 2017-05-03T17:07:03Z reinuseslisp quit (Quit: Leaving) 2017-05-03T17:11:25Z unbalancedparen quit (Quit: WeeChat 1.7.1) 2017-05-03T17:13:23Z dedmons quit (Quit: ZNC 1.6.3+deb1+trusty0 - http://znc.in) 2017-05-03T17:16:26Z sellout- quit (Quit: Leaving.) 2017-05-03T17:16:48Z dedmons joined #lisp 2017-05-03T17:19:13Z unbalancedparen joined #lisp 2017-05-03T17:21:07Z bigos_ quit (Quit: Leaving) 2017-05-03T17:24:50Z didi joined #lisp 2017-05-03T17:25:27Z m00natic quit (Remote host closed the connection) 2017-05-03T17:25:36Z didi: Can't I do something like (let ((x 0)) (loop for x = x ...)), i.e. reference a binding inside a `FOR VAR = VAR ...'? 2017-05-03T17:27:27Z phoe: didi: you can 2017-05-03T17:27:36Z phoe: (let ((x 0)) (loop for x = 0 do (print x) (force-output) (sleep 1))) 2017-05-03T17:27:50Z phoe: oh wait 2017-05-03T17:27:53Z didi: phoe: I want to change `0' to `x'. 2017-05-03T17:28:05Z phoe: (let ((x 0)) (loop for x = x do (print x) (force-output) (sleep 1))) 2017-05-03T17:28:07Z didi: Like I would do using DO: (do ((x x ...))) 2017-05-03T17:28:26Z phoe: this doesn't work. 2017-05-03T17:28:42Z phoe: I bet the variables are bound first, and only then they are assigned values. 2017-05-03T17:28:55Z didi: oic 2017-05-03T17:29:03Z phoe: so the latter X binding shadows the former one. 2017-05-03T17:29:50Z didi: Actually, I think the first binding shadows it. (let ((x 0)) (loop x = x then (1+ x) ...)) makes SBCL complain about defined bu never used X. 2017-05-03T17:29:53Z sellout- joined #lisp 2017-05-03T17:30:07Z didi: Hum. Maybe it is the first X. 2017-05-03T17:30:09Z didi: Bleh. 2017-05-03T17:30:24Z didi: phoe: Thank you. 2017-05-03T17:31:11Z phoe: didi: no problem 2017-05-03T17:34:46Z otjura joined #lisp 2017-05-03T17:35:34Z p9s joined #lisp 2017-05-03T17:35:47Z otjura: most straightforward way to prevent getting NIL or T in REPL when all I want to do is print string from function? 2017-05-03T17:37:15Z phoe: otjura: what do you mean? 2017-05-03T17:38:25Z otjura: phoe: when I call function that only has FORMAT in it, it also puts T or NIL into REPL after printing what it was meant 2017-05-03T17:38:27Z RedEight joined #lisp 2017-05-03T17:38:53Z beach: otjura: The REPL is not the right place for customizing user interaction like that. 2017-05-03T17:39:03Z otjura: but if I insist 2017-05-03T17:39:25Z beach: (progn (function blabla) (values)) 2017-05-03T17:39:53Z _death: you can patch slime to not show the ; No value comment 2017-05-03T17:39:53Z beach: ... where function is the name of your function, and blabla represents the arguments to your function. 2017-05-03T17:40:46Z _death: you can make it dependent on a variable and submit to slime dev 2017-05-03T17:40:55Z beach: _death: Maybe otjura is not using SLIME. 2017-05-03T17:40:59Z otjura: I am 2017-05-03T17:41:05Z Grue``: you'd need a REL instead of REPL if you don't want to have the result of evaluation printed 2017-05-03T17:41:23Z _death: beach: that's just my default assumption here ;) 2017-05-03T17:41:33Z didi protects his SLIME from _death 2017-05-03T17:42:27Z phoe: otjura: what you're seeing here are two things 2017-05-03T17:42:29Z otjura: specifically what I want is to stop this from returning NIL https://pastebin.com/3JaQND1s 2017-05-03T17:42:49Z phoe: 1) you get the FORMAT/PRINT/whatever printing to the screen 2017-05-03T17:42:58Z phoe: 2) you see the values returned by the evaluated form 2017-05-03T17:43:41Z phoe: what's important is, 2) is only implicitly printed, because you're in the REPL. it won't be printed to the screen in the final program when you ship it. 2017-05-03T17:44:14Z phoe: also, in Lisp, every evaluated expression returns something - so you will always get the return values printed by the REPL when the evaluation finishes. 2017-05-03T17:44:33Z phoe: even if it's no values - then your REPL will most likely print something like ";; No value" or similar. 2017-05-03T17:44:36Z otjura: I know that. which is why I'm asking how to get nothing back if I want. 2017-05-03T17:44:41Z phoe: (values) 2017-05-03T17:45:12Z phoe: At the end of your function body, put (values). 2017-05-03T17:45:17Z phoe: The function will return no values. 2017-05-03T17:45:45Z phoe: But beware - when you try to use missing values where actual values are expected, they will be coerced to NIL. 2017-05-03T17:45:53Z Grue``: Here's a simple REL: (loop (terpri) (princ "> ") (eval (read))) 2017-05-03T17:46:04Z phoe: so (eq nil (values)) ;=> T. 2017-05-03T17:46:14Z Grue``: just run it inside of SLIME, press C-c C-c to exit the infinite loop 2017-05-03T17:46:40Z didi: phoe: TIL 2017-05-03T17:47:45Z PSEUDO_SUE: stdout is line-buffered, though, so you'd need to flush it in order for the prompt to display 2017-05-03T17:48:10Z EvW joined #lisp 2017-05-03T17:48:20Z p9s quit (Remote host closed the connection) 2017-05-03T17:48:44Z Grue``: well, it works for me in slime/sbcl, probably because it flushes before READ 2017-05-03T17:48:53Z p9s joined #lisp 2017-05-03T17:48:56Z PSEUDO_SUE: so (loop (terpri) (princ "> ") (finish-output nil) (eval (read))) 2017-05-03T17:49:00Z PSEUDO_SUE: cool. 2017-05-03T17:49:24Z PSEUDO_SUE: i was just playing around in a terminal with "rlwrap sbcl". 2017-05-03T17:50:19Z psacrifice quit (Remote host closed the connection) 2017-05-03T17:50:20Z PSEUDO_SUE: but it's not an issue for CLISP either. 2017-05-03T17:50:55Z araujo quit (Quit: Leaving) 2017-05-03T17:51:06Z phoe quit (Ping timeout: 245 seconds) 2017-05-03T17:51:52Z MrBusiness joined #lisp 2017-05-03T17:53:18Z p9s quit (Ping timeout: 260 seconds) 2017-05-03T17:54:46Z dendisuhubdy joined #lisp 2017-05-03T17:56:01Z ozzloy_ is now known as ozzloy 2017-05-03T17:56:12Z ozzloy quit (Changing host) 2017-05-03T17:56:12Z ozzloy joined #lisp 2017-05-03T17:57:15Z otjura: speaking of SLIME, what bugs me is C-c C-c. then I end up tripping over fasls 2017-05-03T17:57:27Z otjura: wondering why nothing changes 2017-05-03T17:57:53Z eschulte joined #lisp 2017-05-03T17:58:15Z jasom: slightly better repl? (loop for form = (progn (terpri) (princ "> ") (read)) do (shiftf /// // / (multiple-value-list (eval form))) (shiftf *** ** * (car /)) (shiftf +++ ++ + form)) 2017-05-03T18:02:02Z Bike: (setf - (read)) 2017-05-03T18:02:18Z jerme quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2017-05-03T18:02:26Z dendisuhubdy quit (Remote host closed the connection) 2017-05-03T18:03:17Z p_l: beach: btw, do you know that latest Multics software release is from this year? :) 2017-05-03T18:03:23Z _death: (loop (respond (think (read)))) 2017-05-03T18:03:36Z shrdlu68: How does format directive ~i work? It's not indenting... 2017-05-03T18:05:04Z _death: you first need to understand the pretty-printer 2017-05-03T18:05:24Z shrdlu68 sign 2017-05-03T18:05:44Z bigos_ joined #lisp 2017-05-03T18:05:57Z shrdlu68 s/sign/sigh/ 2017-05-03T18:07:57Z otjura: how big of a difference there is between system and package= 2017-05-03T18:08:26Z _death: http://weitz.de/packages.html 2017-05-03T18:08:30Z ebrasca is now known as ebrasca-afk 2017-05-03T18:09:32Z otjura: aha 2017-05-03T18:10:34Z sebboh` quit (Changing host) 2017-05-03T18:10:34Z sebboh` joined #lisp 2017-05-03T18:11:06Z sebboh` is now known as sebboh 2017-05-03T18:11:10Z hhdave joined #lisp 2017-05-03T18:11:12Z hhdave quit (Read error: Connection reset by peer) 2017-05-03T18:12:48Z didi: Packages were hard to me to understand. I like them. 2017-05-03T18:13:08Z didi: Well, packages vs. modules vs. systems vs. ... 2017-05-03T18:13:55Z dedmons quit (Ping timeout: 240 seconds) 2017-05-03T18:15:13Z dedmons joined #lisp 2017-05-03T18:16:49Z _death: slime inspector should have a "raw view" mode.. then I could recommend doing `C-c I (find-package "CL")` 2017-05-03T18:19:54Z _death: still you can just do `M-.' on the result of find-package and see what a package really is 2017-05-03T18:20:06Z Ven joined #lisp 2017-05-03T18:20:29Z Ven is now known as Guest48770 2017-05-03T18:21:48Z _death: (oh, it assumes you have the sources available.. I take too many things for granted) 2017-05-03T18:23:11Z onehrxn_ quit (Remote host closed the connection) 2017-05-03T18:23:49Z onehrxn joined #lisp 2017-05-03T18:25:42Z Bock quit (Remote host closed the connection) 2017-05-03T18:26:41Z phoe joined #lisp 2017-05-03T18:27:12Z Baggers left #lisp 2017-05-03T18:27:50Z eschatologist quit (Excess Flood) 2017-05-03T18:28:21Z eschatologist joined #lisp 2017-05-03T18:32:51Z NeverDie joined #lisp 2017-05-03T18:34:26Z grublet joined #lisp 2017-05-03T18:34:53Z Marumarsu joined #lisp 2017-05-03T18:38:01Z enzuru joined #lisp 2017-05-03T18:38:03Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2017-05-03T18:39:27Z myrkraverk quit (Ping timeout: 240 seconds) 2017-05-03T18:39:32Z myrkraverk_ joined #lisp 2017-05-03T18:41:04Z TDT joined #lisp 2017-05-03T18:41:34Z phoe: (defvar *foo* 2 "docstring") 2017-05-03T18:41:39Z phoe: (defparameter *foo* 2 "docstring") 2017-05-03T18:41:49Z phoe: Why does SLIME color only the docstring for DEFVAR? 2017-05-03T18:42:08Z myrkraverk_ is now known as myrkraverk 2017-05-03T18:43:52Z phoe: https://i.imgtc.com/Kjj98qu.png <- can anyone confirm? 2017-05-03T18:45:06Z didi: phoe: I do not confirm. 2017-05-03T18:45:12Z didi: Maybe it is your color scheme? 2017-05-03T18:45:43Z phoe: didi: it's zenburn in my case. 2017-05-03T18:46:00Z didi: Actually, mine doesn't color either. Both have the same color of regular strings. 2017-05-03T18:46:07Z didi: I am using the default. 2017-05-03T18:46:10Z phoe: Huh. 2017-05-03T18:49:08Z p9s joined #lisp 2017-05-03T18:50:46Z otjura quit (Quit: Konversation terminated!) 2017-05-03T18:51:01Z eschatologist quit (Ping timeout: 268 seconds) 2017-05-03T18:52:00Z eschatologist joined #lisp 2017-05-03T18:54:06Z p9s quit (Ping timeout: 268 seconds) 2017-05-03T18:57:17Z ivo_ joined #lisp 2017-05-03T18:58:00Z drmeister: pipping: Thank you. 2017-05-03T19:00:00Z mateuszb joined #lisp 2017-05-03T19:01:02Z phoe: uh 2017-05-03T19:01:06Z phoe: why http://ccl.clozure.com/irc-logs/lisp/ has no current month? 2017-05-03T19:09:58Z aeth: There is a http://ccl.clozure.com/irc-logs/lisp/2017-05/ 2017-05-03T19:10:22Z phoe: Oh, a folder. 2017-05-03T19:11:19Z bigos_ quit (Ping timeout: 255 seconds) 2017-05-03T19:11:50Z shka quit (Quit: Konversation terminated!) 2017-05-03T19:14:00Z sondr3 quit (Read error: Connection reset by peer) 2017-05-03T19:14:21Z bigos_ joined #lisp 2017-05-03T19:14:33Z sondr3 joined #lisp 2017-05-03T19:17:33Z AeroNotix: Any of the commonqt maintainers in here? 2017-05-03T19:17:50Z AeroNotix: eudoxia / Shinmera? 2017-05-03T19:18:56Z phoe: AeroNotix: you can find Shinmera on #shirakumo 2017-05-03T19:19:51Z AeroNotix: he has his own channel... wut 2017-05-03T19:20:28Z shka joined #lisp 2017-05-03T19:21:19Z Marumarsu quit (Ping timeout: 260 seconds) 2017-05-03T19:21:41Z PSEUDO_SUE quit (Ping timeout: 276 seconds) 2017-05-03T19:22:51Z Bike: well, it's for his big software project. 2017-05-03T19:23:05Z PSEUDO_SUE joined #lisp 2017-05-03T19:23:36Z AeroNotix: figured that now but made me confused for a sec :) 2017-05-03T19:24:55Z sondr3 quit (Ping timeout: 240 seconds) 2017-05-03T19:26:33Z sondr3 joined #lisp 2017-05-03T19:32:05Z jerme joined #lisp 2017-05-03T19:32:31Z dwchandler joined #lisp 2017-05-03T19:33:03Z dwchandler left #lisp 2017-05-03T19:33:29Z jerme quit (Client Quit) 2017-05-03T19:36:32Z sebboh: Is it just me or does this https://github.com/tkych/donuts/blob/6ebbdc15afd8f32cf5a473e1049e9343b4aecf88/src/shell.lisp#L60 not observe the exit code of the dot process at all? 2017-05-03T19:38:38Z sebboh: I think ideally it would do so and present the contents of STDERR if the exit code is non-zero. So, I looked at trivial-shell to see how to do that. There's some like, error handling stuff. I don't know how to use that. Does the way shell.lisp invokes dot on line 60 there happen to make some kind of stream available that I could just get ahold of right there on the spot, that the original author didn't take advantage of? 2017-05-03T19:39:20Z sebboh: (p.s. for me, 'present' means (log:error ...) ala log4cl/log4slime.) 2017-05-03T19:40:27Z shka quit (Ping timeout: 240 seconds) 2017-05-03T19:41:48Z impulse quit (Ping timeout: 260 seconds) 2017-05-03T19:42:38Z sebboh: oh, oh, trivial-shell:shell-command does a (multiple-value-bind (output error status) ...) at the end! so I just need to.. inspect those values! 2017-05-03T19:44:28Z vlatkoB_ quit (Remote host closed the connection) 2017-05-03T19:49:53Z p9s joined #lisp 2017-05-03T19:49:59Z yrdz joined #lisp 2017-05-03T19:52:09Z shka joined #lisp 2017-05-03T19:53:00Z rpg joined #lisp 2017-05-03T19:53:24Z rpg: Repeat question: Anyone an expert with CL-DOT? I'm trying to ensure that a tree graph generated that way renders its children left to right in the order they appear in the points-to methods. But at least sometimes, they are coming out backward. 2017-05-03T19:53:35Z JuanDaugherty joined #lisp 2017-05-03T19:54:58Z p9s quit (Ping timeout: 264 seconds) 2017-05-03T20:01:42Z attila_lendvai joined #lisp 2017-05-03T20:07:50Z rpg: Is michaelw ever around here? 2017-05-03T20:08:00Z sebboh: rpg, I'm no CL-DOT expert but I've made one commit that got merged in. :) Maybe you could render your graph as a picture, then draw on it with a paint program to show what you want to change, then also pastebin your DOT language file that the your graph came from (and the CL too if you see fit) and I'll take a look. 2017-05-03T20:08:22Z sebboh: !seen michaelw 2017-05-03T20:08:54Z sebboh: sorry, wrong channel for !seen 2017-05-03T20:09:14Z rpg: sebboh: I found what the issue is. The problem is that CL-DOT walks the graph approximately depth first, but returns its nodelist (and edge list) in reverse order, building it by push. When I change the return value to (values (reverse nodes) (reverse edges)), my tree is rendered as it should be. 2017-05-03T20:09:47Z froggey quit (Quit: Lost terminal) 2017-05-03T20:09:58Z rpg: s/CL-DOT/format-graph-from-roots/ 2017-05-03T20:10:56Z rpg: I think a proper fix would involve topologically sorting the results, since I think graph-pointed-to-by can make a hash of the ordering. 2017-05-03T20:11:23Z sebboh: neat. You're a cl-dot expert, by the way... 2017-05-03T20:11:28Z pjb joined #lisp 2017-05-03T20:11:40Z Xach: the first and only 2017-05-03T20:11:45Z rpg: the problem, of course, is you can have cyclic graphs, in which case you can't do what I suggest..... 2017-05-03T20:12:01Z rpg: But if you build the graph only forwards, my trick works. 2017-05-03T20:12:11Z rpg: oh, and it's acyclic. 2017-05-03T20:13:10Z rpg: anyway, I don't see any reason, other than efficiency, not to reverse the nodelist. 2017-05-03T20:13:12Z attila_lendvai: I have an FFI for graphviz, hu.dwim.graphviz. it needs a little care because it uses obsolete CFFI api by now. but is anyone using it besides our old projects? 2017-05-03T20:13:18Z froggey joined #lisp 2017-05-03T20:13:31Z pjb: attila_lendvai: post it on lisp guild todo list. 2017-05-03T20:15:33Z akkad: attila_lendvai: you are hu.dwim? 2017-05-03T20:15:46Z sebboh: rpg, I see. Well, I'm not quite sure what topological sorting means. But I know that several of the graphviz layout engines, notably 'dot' consider node order when rendering. I.e. graph { foo; bar; } is different than graph { bar; foo; }. Therefor, at first glance, I'm worried that sorting would prevent a graph author from controlling which of those two options she gets in the final product. 2017-05-03T20:15:51Z attila_lendvai: akkad: I'm one of the 4 guys 2017-05-03T20:17:09Z rpg: sebboh: The problem is that CL-DOT *already* prevents the graph author from controlling the options they get in the final project, by arbitrarily pushing the nodes onto a list, and returning them in an order quite different from the order in which they were generated. 2017-05-03T20:17:25Z rpg: sebboh: I.e., it's not me breaking this -- it's pre-broken by the original author. 2017-05-03T20:17:33Z attila_lendvai: pjb: where can I read a bird's eye view about this lisp guild? 2017-05-03T20:17:59Z akkad: attila_lendvai: nice work 2017-05-03T20:18:23Z sebboh: attila_lendvai: I'm a big fan of hu.dwim! I didn't successfully use hu.dwim.graphviz, but it seems to be more complete than other graphviz-related CL projects. I really appreciate that your group publishes a lot of internal stuff on that .. website. App. Whatever it is. :) 2017-05-03T20:18:49Z sebboh: rpg, now I'm tracking what you are saying. 2017-05-03T20:18:52Z akkad: the json parser is fast 2017-05-03T20:19:38Z attila_lendvai: akkad: thanks! my heart is bleeding because we put a lot of effort into all that infrastructure and we applied it only twice in two projects. although, now a small third one is on the way... but it's still a lot of value lying there unused 2017-05-03T20:20:34Z sebboh: re: LISP Guild: https://github.com/Lisp-Guild/lisp-todo/issues 2017-05-03T20:20:43Z ivo_ quit (Remote host closed the connection) 2017-05-03T20:21:00Z attila_lendvai: sebboh: would you use it if there was an updated FFI for graphviz? I've been thinking to rebase it on top of cffi/c2ffi... it would be a complete overhaul. 2017-05-03T20:21:42Z attila_lendvai: I found the TODO finally, but I don't have any idea what it is meant to be. is it like a general LISP todo database where bored hackers can help in? 2017-05-03T20:21:56Z attila_lendvai: or who can add what kind of entries, and how 2017-05-03T20:23:45Z sebboh: attila_lendvai: I'm just an amateur. If anything, I think you should document the documentation system/build system/repo storage/website thing that is dwim.hu... It seems like a lot of work went into it, and *maybe* I can clone that thing, but I haven't been able to figure out how... ;) 2017-05-03T20:25:20Z sebboh: I mean git clone, and put my own projects into the same presentation system. 2017-05-03T20:27:03Z sebboh: well, forget my last comment, that very thing is right there in front of me. 2017-05-03T20:27:08Z sebboh: Nice work. 2017-05-03T20:28:01Z rpg: sebboh: Looks like I might be able to add spurious, invisible edges between the children of a tree node that have the ordering attribute as "out". 2017-05-03T20:28:02Z attila_lendvai: I've recently made a dockerfile for a project. I'll probably make one for the dwim.hu site and reinstall it as a docker image. it'll be in the hu.dwim.home repo (that runs on dwim.hu) 2017-05-03T20:28:11Z jwolp joined #lisp 2017-05-03T20:28:37Z rpg: oh, wait -- that just locks them to the order in the input, but that's exactly what CL-DOT garbles. 2017-05-03T20:28:49Z sebboh: attila_lendvai: I guess a lot of people like docker, but I think these step-by-step instructions are more valuable. 2017-05-03T20:28:51Z shrdlu68 left #lisp 2017-05-03T20:30:15Z sebboh: rpg, well, so you could try to solve this at the cl-dot layer, or at the graphviz layer... I'm not a graphviz expert either, but certainly more comfortable in that domain than lisp in general. You know about 'rank'? 2017-05-03T20:30:47Z sebboh: also what layout engine are you using? 2017-05-03T20:31:54Z attila_lendvai: sebboh: it's using dojotoolkit.org on the client side 2017-05-03T20:32:33Z rpg: sebboh: Note that it's not the top-to-bottom order that's messed up, it's the left to right order. 2017-05-03T20:35:47Z gingerale quit (Remote host closed the connection) 2017-05-03T20:36:14Z phoe: Using DRAKMA, how can I do HTTPS certificate pinning? 2017-05-03T20:37:20Z phoe: I want to make a request only if the server correctly identifies itself according to a public key that I have in my Lisp image. 2017-05-03T20:39:33Z sebboh: Sounds like you're using dot, ok. Well, yeah see what I said about pastebins ^^. My first concern is: is there some transformation of the DOT language file that results in the graph you want, where "transformation" means changing the order of expressions in the file (or buffer or whatever) or adding rank= type hints, but not changing the structure (which nodes have an edge between them, etc). 2017-05-03T20:40:25Z sebboh: the answer to that question differentiates a "layout problem" from "anything else". :) 2017-05-03T20:40:35Z bigos_ quit (Ping timeout: 240 seconds) 2017-05-03T20:40:48Z rpg: sebboh: Transformation cannot include changing the order of expressions, because CL-DOT takes that order out of the control of its user. If this is to be done from outside CL-DOT, leaving CL-DOT alone, it must be done by attribution. 2017-05-03T20:41:04Z rpg: I.e., by adding attributes (and possibly by adding phantom edges and nodes) 2017-05-03T20:41:24Z rpg: CL-DOT does not allow the user to control the order of its output. 2017-05-03T20:42:53Z sebboh: FYI if you set your image output type "dot" and you'll get the output I mean, then you do something like dot -Tpng -o myoutput.png myinput.dot ... this is just a debugging step, obviously you want to CL-DOT to produce the correct DOT language to begin with. I *believe* that CL-DOT always produces DOT language internally, (it's not called CL-GRAPHVIZ). 2017-05-03T20:43:39Z yrk quit (Read error: Connection reset by peer) 2017-05-03T20:43:41Z rpg: sebboh: Yes, that is correct. 2017-05-03T20:44:24Z rpg: The dot expressions come out in arbitrary order because of the use of PUSH to accumulate them. Adding REVERSE at least makes them appear in the order they were generated. 2017-05-03T20:45:08Z nirved quit (Quit: Leaving) 2017-05-03T20:46:28Z bigos_ joined #lisp 2017-05-03T20:50:55Z p9s joined #lisp 2017-05-03T20:51:37Z rpg: Doing a better job with controlling the order requires a deeper understanding of CONSTRUCT-GRAPH than I have, and refining how newly-discovered nodes are added to the openlist (NODES variable). 2017-05-03T20:55:38Z p9s quit (Ping timeout: 255 seconds) 2017-05-03T20:57:29Z phoe: I want to ship a Lisp application that a) has a working REPL, b) ships with a secret that I do not want to be trivially retrievable. 2017-05-03T20:57:53Z python476 quit (Ping timeout: 276 seconds) 2017-05-03T20:57:59Z phoe: Other than the fact it's completely pointless to hide something like that - what is the best way to hide a literal constant from the hands of a Lisp programmer with a REPL? 2017-05-03T20:58:36Z borodust: phoe: hide it in the closure :) 2017-05-03T20:58:42Z phoe: borodust: Closures don't work - https://i.imgtc.com/dHFJZAu.png 2017-05-03T20:59:03Z borodust: eh 2017-05-03T20:59:36Z pjb: phoe: you may use whitebox encryption. 2017-05-03T20:59:39Z phoe: I'm thinking of making an anonymous closure and hiding it behind one more function, and hoping the compiler doesn't constant-fold the closure. 2017-05-03T20:59:45Z phoe: pjb: what is it? 2017-05-03T20:59:45Z pjb: phoe: and code protection techniques. 2017-05-03T21:00:54Z phoe: So, basically, generate the code programmatically in some crazy way instead of having it as a literal? 2017-05-03T21:00:55Z pjb: phoe: https://www.cosic.esat.kuleuven.be/publications/thesis-152.pdf 2017-05-03T21:01:23Z pjb: more than that: the data is encrypted, and it is used while kept encrypted. 2017-05-03T21:01:30Z pjb: so it's never in the clear in the memory. 2017-05-03T21:02:58Z borodust: phoe: https://gist.github.com/borodust/f681eb053b5c7416d5bad285669bfdfa 2017-05-03T21:02:59Z pjb: There are commercial products, but they're implemented in C and cost a lot. Code protection includes checks that would blow in a lisp image where native code is generated at run-time. 2017-05-03T21:03:23Z pjb: So we would need a CL implementation of those principle. 2017-05-03T21:04:05Z phoe: God fucking damn it! 2017-05-03T21:04:09Z borodust: phoe: so there's no access to 'secret from the closure 2017-05-03T21:04:10Z phoe: I just thought of one more attack 2017-05-03T21:04:20Z pjb: Closures are easy to unwrap with implementation specific primitives. (They are used by the debuggers). 2017-05-03T21:04:24Z phoe: I will need to send this secret to a server at one point. 2017-05-03T21:04:38Z pjb: borodust: it's trivial to get it, using debugging primitives. 2017-05-03T21:04:52Z phoe: So someone can just TRACE functions like DRAKMA:HTTP-REQUEST. 2017-05-03T21:04:57Z pjb: phoe: so it better be encryptped already. :-) 2017-05-03T21:05:15Z borodust: pjb phoe: oh, did you mean like totally impossible to get in cryptography sense 2017-05-03T21:05:20Z borodust: there's no way 2017-05-03T21:05:29Z borodust: everything is retreivable then :) 2017-05-03T21:05:35Z pjb: With whitebox cryptography, it's possible. 2017-05-03T21:05:45Z pjb: As long as your cryptography is not cracked. 2017-05-03T21:06:01Z phoe: ... 2017-05-03T21:06:14Z pjb: Granted, it would be better to hide the secret data in a TEE or a secure enclave. 2017-05-03T21:06:19Z phoe: Even if I fetch the stream from Drakma and write to it myself. 2017-05-03T21:06:26Z phoe: Someone can trace character writing. 2017-05-03T21:06:36Z pjb: But if you don't have those hardware features, whitebox cryptography is the next best thing. 2017-05-03T21:06:47Z pjb: phoe: keep it encrypted! 2017-05-03T21:07:17Z phoe: pjb: How do I keep it encrypted if I need to send it to the server in an unencrypted form? 2017-05-03T21:07:32Z phoe: The best I can do is writing to the output stream character by character. 2017-05-03T21:07:34Z pjb: phoe: you don't. You send it to the server in an encrypted form. 2017-05-03T21:08:01Z jasom: phoe: the simplest way is to just xor two values together; then it won't ever be in your code or memory unencrypted; no amount of protection can prevent you from dedicated reverse engineering then (or even just sniffing the network) 2017-05-03T21:08:48Z phoe: pjb: I don't control the server. 2017-05-03T21:08:48Z phoe: It's incapable of accepting encrypted output. 2017-05-03T21:09:04Z pjb: Then there is no point, it's no secret. 2017-05-03T21:09:23Z jasom: if you distribute a lisp application that includes your API keys, then yes, people will be able to extract your API keys. 2017-05-03T21:09:31Z jasom: this is true in general though. 2017-05-03T21:09:34Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2017-05-03T21:10:07Z jasom: in C they could ptrace and break on calls to ssl functions (for example) 2017-05-03T21:14:22Z phoe: This is ridiculous. 2017-05-03T21:14:47Z phoe: One of the requirements I got from Someone Above Me®™© was, the secret is not trivially extractable. 2017-05-03T21:15:09Z phoe: And even if I neuter TRACE, the person can use implementation-defined tracing primitives. 2017-05-03T21:15:18Z aeth: Use CFFI to encrypt/decrypt it? 2017-05-03T21:15:38Z didi: phoe: Even using TRACE is not "trivial" to me. 2017-05-03T21:15:45Z borodust: phoe: trivially is so undefined in this context 2017-05-03T21:15:51Z FakePedro joined #lisp 2017-05-03T21:15:55Z borodust: *underdefined 2017-05-03T21:16:10Z phoe: didi: (trace 'this-function-name-you-saw-somewhere) 2017-05-03T21:16:30Z phoe: and DO-ALL-SYMBOLS gives you interesting names. 2017-05-03T21:16:52Z rumbler31 quit (Ping timeout: 255 seconds) 2017-05-03T21:17:06Z edgar-rft joined #lisp 2017-05-03T21:17:11Z aeth: (fill (make-string 10 :initial-element #\a) #\nul) or (fill (make-array 10 :element-type 'fixnum :initial-element 42) 0) 2017-05-03T21:17:23Z aeth: So you can overwrite it to basically get rid of it when you're not using it at the moment. 2017-05-03T21:17:30Z sebboh: phoe: your target audience is lispers? ... Good luck. :) Hm, set up a second server, have it talk to the first server. Don't keep the secret in the client-side app. Or, keep unique-per-user secrets there. Not that I'm helping.. INFO WANTS TO BE FREE, phoe. :) 2017-05-03T21:17:42Z phoe: sebboh: I know! 2017-05-03T21:17:52Z phoe: I'm dying to just screw it all and put the secret in the public source code. 2017-05-03T21:17:55Z aeth: You just need a means to get it. 2017-05-03T21:18:08Z phoe: It's the stupid security-by-obscurity requirement that I'm getting from above. 2017-05-03T21:18:47Z pjb: If it's really important, indeed, sebboh's solution would be a good way: you could keep the secret in your own server, and let the application communicate with your server with encryption. 2017-05-03T21:19:00Z sebboh: :~( 2017-05-03T21:19:05Z aeth: phoe: If C is seen as acceptable, write a C function, get it via CFFI, copy it into a string or numerical array, and then fill it when you're done like I said. 2017-05-03T21:19:06Z phoe: Hahaha, yes, except then stuff like people's emails/passwords would also be passing through my server. 2017-05-03T21:19:08Z pjb: Until the target server can deal with encryption directly. 2017-05-03T21:19:10Z phoe: Which is a violation of ToS. 2017-05-03T21:19:23Z phoe: Hahahahah. It's all just silly. 2017-05-03T21:19:28Z phoe: Luckily, my audience isn't lispers. 2017-05-03T21:19:41Z pjb: phoe: passing, or be kept only in your server. 2017-05-03T21:19:47Z phoe: So I'll just hope nobody ever thinks of using TRACE. 2017-05-03T21:19:54Z pjb: SO it couldn't be obtained by attacking the application you distributed. 2017-05-03T21:19:58Z sebboh: then leave the repl out? ...why am I teh devil today, ugh 2017-05-03T21:20:51Z aeth: phoe: Use cl-brainfuck, and obfuscate the secret via Brainfuck. 2017-05-03T21:20:58Z aeth: https://gitlab.com/mbabich/cl-brainfuck 2017-05-03T21:21:04Z MoALTz quit (Quit: Leaving) 2017-05-03T21:21:33Z sebboh: I presume there is a de-brainfuck. 2017-05-03T21:21:35Z didi quit (Ping timeout: 240 seconds) 2017-05-03T21:21:48Z kobain quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2017-05-03T21:21:58Z aeth: sebboh: Then fork cl-brainfuck and come up with a unique, obscure Brainfuck-like that has no reverser yet. 2017-05-03T21:22:08Z pjb: Yes, code protection (obfuscation and other) shall use cryptographic-like algorithms too. 2017-05-03T21:22:37Z sebboh: aeth, ... the reason I presumed is that without it, you can't get the secret back? 2017-05-03T21:23:01Z aeth: sebboh: Just run the Brainfuck program every time you need the secret. 2017-05-03T21:24:42Z sebboh: Just do what every* other developer does, XOR the secret and put a ;TODO improve this; in there. 2017-05-03T21:25:10Z aeth: But if the XOR is written in Brainfuck, no one will know. 2017-05-03T21:25:15Z sebboh: * except the fearless 2017-05-03T21:25:45Z pjb: implement 8 different functions to xor two bits, and use them in random turns for each bit of each byte. 2017-05-03T21:31:32Z phoe: pjb: I'm thinking of something like that. 2017-05-03T21:31:39Z aeth: run a 1024-round rot13 2017-05-03T21:32:41Z White_Flame: use ffi 2017-05-03T21:33:12Z yrk joined #lisp 2017-05-03T21:33:19Z White_Flame: hand off secret handling to another language entirely 2017-05-03T21:33:21Z sebboh: I just joined a MS window channel to ask a question and I got a very legit answer to the tune of "why don't you try it on another machine?" and I feel silly. ;) 2017-05-03T21:33:47Z sebboh: aeth, 1023 round. 2017-05-03T21:36:23Z aeth: sebboh: Crypto is hard 2017-05-03T21:36:37Z jasom: phoe: figure out what seed to sbcl's MT implementation will output the secret you need, and call RANDOM with that seed :) 2017-05-03T21:37:00Z _death: it's a futile endeavor.. 2017-05-03T21:37:31Z angavrilov quit (Remote host closed the connection) 2017-05-03T21:37:34Z sebboh: phoe did mention that, _death 2017-05-03T21:38:00Z phoe: jasom: hahaha 2017-05-03T21:38:17Z jasom: phoe's real problem isn't "How do I hide this secret" it's "How do I make my boss happy that it's not 'trivially extractable'" 2017-05-03T21:38:19Z _death: so perhaps try to explain it to "above" 2017-05-03T21:38:25Z phoe: ^ 2017-05-03T21:38:27Z phoe: pretty unexplainable 2017-05-03T21:38:44Z phoe: "we need to protect our customers so this secret is not used against them" 2017-05-03T21:39:03Z jasom: "We know it's not possible to keep people from finding the secret, we just want to make it *hard*" 2017-05-03T21:39:03Z _death: then maybe the solution is not technical 2017-05-03T21:39:42Z phoe: and I don't want to hear "maybe you should use a language with less introspection" 2017-05-03T21:39:44Z pjb: Put in multiple secret and select the right one by way of a bug in the implementation. 2017-05-03T21:39:49Z _death: how hard is it to sniff the traffic 2017-05-03T21:40:00Z phoe: _death: with HTTPS, somewhat non-trivial. 2017-05-03T21:40:13Z pjb: Give the impression you want to use the secret #3, and inadvertently, send the secret #5. 2017-05-03T21:40:31Z pjb: If you have access to one end-point it's trivial. 2017-05-03T21:40:45Z phoe: pjb: (loop for secret in secrets if (secret-matches-p secret) hip hip hooray) 2017-05-03T21:40:47Z _death: phoe: if someone can sniff traffic, trust me, it's trivial.. if you'd use pinning then it's less trivial 2017-05-03T21:40:54Z phoe: _death: yes, I'd use pinning. 2017-05-03T21:41:23Z jasom: if you ever call out to SSL libraries and ptrace is available, it's trivial 2017-05-03T21:41:30Z phoe: I've already decided it's undoable, to prevent some with access to a REPL from TRACEing the secret. 2017-05-03T21:41:32Z _death: then it comes to reverse engineering, and then it's trivial to reverse engineers 2017-05-03T21:41:37Z phoe: I'm thinking of changing the schema here. 2017-05-03T21:41:41Z xrash joined #lisp 2017-05-03T21:41:44Z phoe: one-time passwords and such. 2017-05-03T21:41:48Z _death: of sufficient skill.. and those will be available if the product is worth it 2017-05-03T21:42:23Z jasom: keys that are managed in software will be extracted; look at every software blu-ray player ever. 2017-05-03T21:42:49Z _death: jasom: yes.. that's another way 2017-05-03T21:44:54Z _death: since the problem isn't technical, phoe need no technical advice :) 2017-05-03T21:45:45Z Harag quit (Remote host closed the connection) 2017-05-03T21:46:03Z ryanbw quit (Quit: WeeChat 1.7) 2017-05-03T21:46:14Z Karl_Dscc quit (Remote host closed the connection) 2017-05-03T21:48:22Z orivej joined #lisp 2017-05-03T21:49:14Z pve quit (Ping timeout: 268 seconds) 2017-05-03T21:51:26Z p9s joined #lisp 2017-05-03T21:56:06Z wheelsucker quit (Quit: Client Quit) 2017-05-03T21:56:48Z p9s quit (Ping timeout: 240 seconds) 2017-05-03T22:01:24Z eazar001 quit (Quit: WeeChat 1.5) 2017-05-03T22:02:05Z ryanbw joined #lisp 2017-05-03T22:02:15Z sellout- quit (Quit: Leaving.) 2017-05-03T22:02:23Z sellout- joined #lisp 2017-05-03T22:06:55Z sellout- quit (Ping timeout: 240 seconds) 2017-05-03T22:08:12Z azzamsa joined #lisp 2017-05-03T22:08:26Z _death: if I had to do something obfuscative like that at this particular time, I would likely implement a transposition cipher used by "Pablo Waberski", just for fun 2017-05-03T22:13:51Z brendyn joined #lisp 2017-05-03T22:14:16Z varjag quit (Ping timeout: 258 seconds) 2017-05-03T22:18:08Z sellout- joined #lisp 2017-05-03T22:22:11Z mateuszb quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-05-03T22:23:36Z ecraven quit (Ping timeout: 260 seconds) 2017-05-03T22:24:14Z al-damiri_ joined #lisp 2017-05-03T22:24:29Z qlkzy quit (Ping timeout: 260 seconds) 2017-05-03T22:24:58Z Subfusc quit (Ping timeout: 264 seconds) 2017-05-03T22:24:59Z `micro quit (Ping timeout: 276 seconds) 2017-05-03T22:25:04Z kbtr quit (Ping timeout: 260 seconds) 2017-05-03T22:26:22Z gigetoo_ joined #lisp 2017-05-03T22:26:32Z jdz_ joined #lisp 2017-05-03T22:26:56Z Riviera__ joined #lisp 2017-05-03T22:26:59Z unbalancedparen quit (Quit: WeeChat 1.7.1) 2017-05-03T22:27:15Z antoszka_ joined #lisp 2017-05-03T22:27:30Z ecraven joined #lisp 2017-05-03T22:27:33Z kbtr joined #lisp 2017-05-03T22:28:07Z codehero joined #lisp 2017-05-03T22:28:12Z e quit (Read error: Connection reset by peer) 2017-05-03T22:28:35Z cartwright joined #lisp 2017-05-03T22:28:41Z c0dehero quit (Ping timeout: 240 seconds) 2017-05-03T22:28:41Z al-damiri quit (Read error: Connection reset by peer) 2017-05-03T22:28:41Z antoszka quit (Ping timeout: 240 seconds) 2017-05-03T22:28:42Z gigetoo quit (Ping timeout: 240 seconds) 2017-05-03T22:28:42Z cantstanya quit (Ping timeout: 240 seconds) 2017-05-03T22:28:42Z troydm quit (Ping timeout: 240 seconds) 2017-05-03T22:28:43Z Riviera quit (Ping timeout: 240 seconds) 2017-05-03T22:28:43Z jdz quit (Ping timeout: 240 seconds) 2017-05-03T22:28:43Z pilne quit (Killed (Sigyn (Spam is off topic on freenode.))) 2017-05-03T22:28:44Z troydm1 joined #lisp 2017-05-03T22:28:44Z codehero is now known as c0dehero 2017-05-03T22:28:48Z gigetoo_ is now known as gigetoo 2017-05-03T22:29:10Z DeadTrickster quit (Ping timeout: 264 seconds) 2017-05-03T22:29:15Z rumbler31 joined #lisp 2017-05-03T22:29:16Z Subfusc joined #lisp 2017-05-03T22:30:01Z al-damiri_ is now known as al-damiri 2017-05-03T22:31:54Z Riviera__ is now known as Riviera 2017-05-03T22:32:21Z `micro joined #lisp 2017-05-03T22:32:45Z `micro is now known as Guest68242 2017-05-03T22:33:02Z qlkzy joined #lisp 2017-05-03T22:34:05Z rumbler31 quit (Ping timeout: 276 seconds) 2017-05-03T22:34:05Z e joined #lisp 2017-05-03T22:39:52Z bigos_ quit (Remote host closed the connection) 2017-05-03T22:41:53Z oleo: oO 2017-05-03T22:41:57Z oleo: you all lag behind 2017-05-03T22:47:30Z JuanDaugherty quit (Quit: Hibernate, reboot, exeunt, etc.) 2017-05-03T22:51:38Z sondr3 quit (Ping timeout: 276 seconds) 2017-05-03T22:52:20Z _main_ joined #lisp 2017-05-03T22:52:39Z _main_ quit (Read error: Connection reset by peer) 2017-05-03T22:52:40Z __main__ quit (Read error: Connection reset by peer) 2017-05-03T22:53:06Z p9s joined #lisp 2017-05-03T22:53:27Z __main__ joined #lisp 2017-05-03T22:54:32Z __main__ quit (Read error: Connection reset by peer) 2017-05-03T22:55:04Z sondr3 joined #lisp 2017-05-03T22:55:24Z __main__ joined #lisp 2017-05-03T22:56:12Z holycow joined #lisp 2017-05-03T22:57:51Z pillton: phoe: Isn't this problem solved in Kerberos? 2017-05-03T22:58:02Z p9s quit (Ping timeout: 255 seconds) 2017-05-03T22:59:18Z phoe: pillton: of course it is. 2017-05-03T23:00:29Z shifty joined #lisp 2017-05-03T23:09:21Z oleo: when is new climacs coming ? 2017-05-03T23:09:26Z oleo: this climacs sucks..... 2017-05-03T23:09:46Z oleo: i had to disable now prolog-syntax.lisp too in the packages.lisp in order to get it running.... 2017-05-03T23:09:58Z stee_3 joined #lisp 2017-05-03T23:10:19Z pillton: I think they are looking for contributors. 2017-05-03T23:10:32Z oleo: otherwise it would just not finish and climacs:climacs-rv would not be there....it only happens when i try to spawn an image .... 2017-05-03T23:10:49Z oleo: and it seems like there's some memory black hole again.... 2017-05-03T23:11:01Z oleo: either witch sbcl or with asdf or so..... 2017-05-03T23:11:56Z oleo: i mean if it can't load prolog-syntax.lisp it shouldn't but why would it just stop there and skip the rest ? 2017-05-03T23:12:03Z oleo: bah 2017-05-03T23:13:07Z stee_3__ joined #lisp 2017-05-03T23:13:33Z stee_3_ quit (Ping timeout: 240 seconds) 2017-05-03T23:13:44Z pjb quit (Ping timeout: 276 seconds) 2017-05-03T23:15:18Z oleo: and the libraries don't keep up with libffi.so.7.1 or some such... 2017-05-03T23:15:36Z oleo: sometimes it barfs that it can't find no such.... 2017-05-03T23:16:10Z oleo: it only looks for upto libffi.so.6 or so and lesser....seems somehow hardcoded somewheres 2017-05-03T23:17:10Z stee_3 quit (Ping timeout: 240 seconds) 2017-05-03T23:17:13Z daemoz quit (Remote host closed the connection) 2017-05-03T23:17:32Z daemoz joined #lisp 2017-05-03T23:18:48Z azzamsa quit (Read error: Connection reset by peer) 2017-05-03T23:18:58Z pillton: People shouldn't hard code that stuff. People shouldn't even make load-foreign-library a top level form. 2017-05-03T23:19:39Z RedEight quit (Quit: leaving) 2017-05-03T23:21:22Z |3b|: loading a lib in FFI is a cross between compiling and linking in C terms, so specifying a version seems reasonable to me 2017-05-03T23:21:48Z |3b|: (though if people just add the new version #s without any sort of testing, you lose most of the benefit) 2017-05-03T23:22:10Z oleo: and i got some warning about some unknown type too 2017-05-03T23:22:18Z oleo: some C level type or so 2017-05-03T23:22:41Z oleo: kinda like a placeholder 2017-05-03T23:22:51Z |3b|: other option is to grovel the entire FFI at compile time, but that gets annoying for people without compilers (or C headers/libs) 2017-05-03T23:24:37Z oleo: and i have the headers.....they are just not the expected version 2017-05-03T23:24:41Z pillton: |3b|: Sure, but that can be easily handled by saying "this software requires a foreign a library, compatible with libffi.so.6, to be loaded prior to using the X system." 2017-05-03T23:25:40Z |3b|: is that one of those things where you expect the users to ignore it, but it lets you dismiss bugs as user error? :) 2017-05-03T23:26:02Z |3b|: dismiss problems i mean, it isn't a bug if it is user error :) 2017-05-03T23:26:19Z Posterdati quit (Ping timeout: 260 seconds) 2017-05-03T23:26:50Z |3b| thinks specifying some libffi.so.6 is a good way to say that, which also gets checked at run time 2017-05-03T23:27:02Z pillton: It depends where you sit in the ecosystem. If you are library developer, then its the user's fault. If you are an application developer, then its your own fault. 2017-05-03T23:27:06Z |3b|: (and most people don't have a libffi.so anyway, so just specifying that wouldn't work either) 2017-05-03T23:27:42Z |3b| thinks if i'm a library dev and i could have avoided the user error, it is my fault too 2017-05-03T23:27:59Z pillton: Having had to produce executables for AWS lambda, I can tell you that hard coded stuff is annoying. 2017-05-03T23:28:17Z |3b|: sure, lots of things are annoying :/ 2017-05-03T23:28:51Z pillton: It is another one of these problems where the leaves of the dependency tree dictate the configuration of the parents. 2017-05-03T23:30:48Z hazz joined #lisp 2017-05-03T23:32:48Z quazimodo joined #lisp 2017-05-03T23:33:10Z dehnoq joined #lisp 2017-05-03T23:33:11Z jack_rabbit joined #lisp 2017-05-03T23:36:48Z akkad: env vars ftw in lambda 2017-05-03T23:39:50Z Posterdati joined #lisp 2017-05-03T23:41:47Z xristos quit (Quit: ZNC - http://znc.in) 2017-05-03T23:41:52Z sondr3_ joined #lisp 2017-05-03T23:42:11Z Guest48770 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-05-03T23:42:20Z sondr3 quit (Read error: Connection reset by peer) 2017-05-03T23:46:58Z xristos joined #lisp 2017-05-03T23:47:02Z warweasle joined #lisp 2017-05-03T23:47:20Z mejja quit (Quit: \ No newline at end of file) 2017-05-03T23:49:18Z hazz quit (Quit: Leaving) 2017-05-03T23:52:25Z dehnoq quit (Ping timeout: 240 seconds) 2017-05-03T23:54:14Z p9s joined #lisp 2017-05-03T23:55:10Z shifty quit (Ping timeout: 240 seconds) 2017-05-03T23:56:46Z sellout- quit (Quit: Leaving.) 2017-05-03T23:57:00Z bigos_ joined #lisp 2017-05-03T23:57:03Z sellout- joined #lisp 2017-05-03T23:57:36Z axwin joined #lisp 2017-05-03T23:58:11Z pjb joined #lisp 2017-05-03T23:58:27Z p9s quit (Ping timeout: 240 seconds)