2016-06-06T00:03:22Z davsebamse quit (Ping timeout: 272 seconds) 2016-06-06T00:05:08Z asc232 quit (Remote host closed the connection) 2016-06-06T00:06:27Z CEnnis91 quit (Quit: Connection closed for inactivity) 2016-06-06T00:08:09Z eschatologist quit (Ping timeout: 250 seconds) 2016-06-06T00:10:04Z pillton: ejohnson: I use lisp-unit and FiveAM (5am). 2016-06-06T00:10:22Z davsebamse joined #lisp 2016-06-06T00:11:18Z pllx quit (Quit: zz) 2016-06-06T00:11:26Z ejohnson: pillton: thanks. Just saw lisp-unit2 and was looking at the merrits of it's use over the orig. Any thoughts? 2016-06-06T00:12:01Z pillton: ejohnson: Integration with ASDF is easy. The code at http://paste.lisp.org/display/317636 will all you to do (asdf:test-system "system-name"). 2016-06-06T00:14:27Z ejohnson: pillton: thanks. In the past I have always defined a new defsystem and included the test-op method as a :perform argument. The addition of a method seems visually cleaner 2016-06-06T00:14:37Z profess left #lisp 2016-06-06T00:15:55Z pillton: ejohnson: The :in-order-to defsystem option is useful to know as well. 2016-06-06T00:16:50Z pillton: ejohnson: It allows you put your tests in a separate system. 2016-06-06T00:17:13Z pillton: Sorry. It allows you to put your tests in a separate system. 2016-06-06T00:17:38Z pillton: I didn't know about lisp-unit2. 2016-06-06T00:18:16Z pillton: ejohnson: I'd say it has something to do with what I proposed. https://github.com/markcox80/lisp-unit-proposal 2016-06-06T00:18:26Z ejohnson: pillton: Looking at it now. I think I remember it, but it's been a while. Thanks for the pointer. 2016-06-06T00:19:08Z pillton: ejohnson: The code in the project I linked uses :in-order-to. 2016-06-06T00:20:18Z ejohnson: pillton: seems fairly straight forward. Thanks. 2016-06-06T00:25:45Z TruePika: meh 2016-06-06T00:25:47Z varjag quit (Ping timeout: 250 seconds) 2016-06-06T00:25:54Z test1600 quit (Ping timeout: 246 seconds) 2016-06-06T00:26:03Z TruePika: DRAKMA doesn't understand that it's getting UTF-8 data 2016-06-06T00:26:16Z TruePika: or rather FLEXI-STREAMS doesn't 2016-06-06T00:26:22Z mastokley quit (Ping timeout: 260 seconds) 2016-06-06T00:27:09Z rumbler31 joined #lisp 2016-06-06T00:27:24Z TruePika: Wireshark confirms that Content-Type is specifying the charset (charset=utf-8) 2016-06-06T00:27:49Z Bike: drakma manual says it should work fine, then... 2016-06-06T00:27:51Z TruePika: so either DRAKMA doesn't see that, or FLEXI-STREAMS doesn't understand it 2016-06-06T00:28:16Z TruePika: I'll try external-format-in 2016-06-06T00:30:02Z TruePika: Neither :utf8 nor :utf-8 on :external-format-in seem to help at all 2016-06-06T00:30:20Z TruePika: my code is receiving a vector of numbers instead of a string 2016-06-06T00:31:57Z Bike: is the server public? 2016-06-06T00:32:35Z TruePika: I just discovered that I'm sending "Accept-Encoding: (identity)" 2016-06-06T00:32:53Z TruePika: I have no idea where those parens came from, but they _might_ be causing a problem? 2016-06-06T00:33:32Z TruePika: Bike: Technically, but I can't disclose the hostname 2016-06-06T00:33:38Z Bike: ic 2016-06-06T00:35:12Z TruePika: okay, those parens didn't do anything that I can tell 2016-06-06T00:36:21Z ejohnson: pillton: thanks again, gotta run. 2016-06-06T00:36:25Z ejohnson quit (Quit: Page closed) 2016-06-06T00:37:32Z deviation joined #lisp 2016-06-06T00:41:14Z TruePika: The response data appears to all be ASCII, so nothing like invalid UTF8 2016-06-06T00:43:26Z TruePika: though isn't it odd that even when forcing the encoding, I still don't get a string? 2016-06-06T00:45:26Z asc232 joined #lisp 2016-06-06T00:46:27Z wccoder joined #lisp 2016-06-06T00:48:40Z shdeng joined #lisp 2016-06-06T00:51:20Z wccoder quit (Ping timeout: 260 seconds) 2016-06-06T00:52:09Z zRecursive joined #lisp 2016-06-06T00:59:17Z emaczen quit (Ping timeout: 250 seconds) 2016-06-06T01:03:03Z TruePika: okay, it appears as though DRAKMA sees that the MIME is application/json and decides that it isn't text 2016-06-06T01:03:37Z TruePika: IMO text/json would make a better MIME type... 2016-06-06T01:12:24Z IPmonger quit (Ping timeout: 272 seconds) 2016-06-06T01:12:42Z emaczen joined #lisp 2016-06-06T01:12:48Z Karl_Dscc quit (Remote host closed the connection) 2016-06-06T01:16:42Z schjetne: TruePika: I really don't think it counts as text, at least not the way RFC 2046 intends it 2016-06-06T01:18:10Z emaczen quit (Ping timeout: 260 seconds) 2016-06-06T01:18:32Z jleija joined #lisp 2016-06-06T01:20:10Z paul0 quit (Read error: Connection reset by peer) 2016-06-06T01:22:54Z araujo__ joined #lisp 2016-06-06T01:25:45Z araujo_ quit (Ping timeout: 246 seconds) 2016-06-06T01:31:11Z araujo_ joined #lisp 2016-06-06T01:35:00Z araujo__ quit (Ping timeout: 276 seconds) 2016-06-06T01:36:26Z araujo__ joined #lisp 2016-06-06T01:37:38Z emaczen joined #lisp 2016-06-06T01:39:52Z marusich joined #lisp 2016-06-06T01:39:56Z araujo_ quit (Ping timeout: 244 seconds) 2016-06-06T01:41:44Z defaultxr joined #lisp 2016-06-06T01:53:18Z deviation quit (Remote host closed the connection) 2016-06-06T01:54:36Z marusich quit (Quit: Leaving) 2016-06-06T01:56:36Z FreeBirdLjj joined #lisp 2016-06-06T02:02:53Z TruePika: Rewriting my code to use lparallel and drakma has sped it up quite a bit 2016-06-06T02:07:03Z TruePika: this might have to do with a lock not being held continuously anymore though 2016-06-06T02:07:49Z eschatologist joined #lisp 2016-06-06T02:12:55Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T02:14:29Z FreeBirdLjj joined #lisp 2016-06-06T02:22:54Z Pent joined #lisp 2016-06-06T02:24:00Z paul0 joined #lisp 2016-06-06T02:24:11Z test1600 joined #lisp 2016-06-06T02:25:27Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T02:26:35Z FreeBirdLjj joined #lisp 2016-06-06T02:32:27Z impulse joined #lisp 2016-06-06T02:39:48Z IPmonger joined #lisp 2016-06-06T02:42:00Z wccoder joined #lisp 2016-06-06T02:46:12Z LiamH quit (Quit: Leaving.) 2016-06-06T02:47:31Z axion: does uiop have any recursive equivalent of (uiop/filesystem:directory-files) ? 2016-06-06T02:53:13Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T02:54:05Z ekinmur joined #lisp 2016-06-06T02:54:06Z FreeBirdLjj joined #lisp 2016-06-06T02:55:56Z IPmonger quit (Ping timeout: 258 seconds) 2016-06-06T02:58:14Z jason_m quit (Ping timeout: 258 seconds) 2016-06-06T02:59:37Z FreeBirdLjj quit (Ping timeout: 250 seconds) 2016-06-06T03:02:37Z hcddwch is now known as heddwch 2016-06-06T03:02:40Z FreeBirdLjj joined #lisp 2016-06-06T03:02:41Z wccoder quit (Remote host closed the connection) 2016-06-06T03:05:27Z jleija quit (Quit: leaving) 2016-06-06T03:11:51Z IPmonger joined #lisp 2016-06-06T03:12:44Z schoppenhauer quit (Ping timeout: 272 seconds) 2016-06-06T03:12:50Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T03:13:08Z FreeBirdLjj joined #lisp 2016-06-06T03:14:13Z schoppenhauer joined #lisp 2016-06-06T03:15:54Z TruePika: and I'm getting deadlocks someho 2016-06-06T03:16:31Z TruePika: looking at the trace from wireshark, there are _supposedly_ (says my code) 5 HTTP requests that never got back 2016-06-06T03:17:58Z wccoder joined #lisp 2016-06-06T03:18:23Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T03:21:13Z CEnnis91 joined #lisp 2016-06-06T03:21:36Z krrrcks quit (Ping timeout: 276 seconds) 2016-06-06T03:22:10Z paul0 quit (Read error: Connection reset by peer) 2016-06-06T03:23:38Z krrrcks joined #lisp 2016-06-06T03:24:13Z papachan` quit (Quit: Leaving) 2016-06-06T03:26:59Z Jesin quit (Quit: Leaving) 2016-06-06T03:31:04Z lemoinem joined #lisp 2016-06-06T03:33:01Z TruePika: ummm 2016-06-06T03:33:04Z TruePika: what 2016-06-06T03:33:24Z TruePika: I see some duplicates in this logging, and that shouldn't happen 2016-06-06T03:37:04Z beach joined #lisp 2016-06-06T03:37:14Z beach: Good morning everyone! 2016-06-06T03:37:34Z Quadrescence: good morning 2016-06-06T03:40:41Z pillton: G'day beach 2016-06-06T03:41:11Z beach: drmeister: Thanks for the feedback. I'll remove CLEAVIR-PRIMOP:CONSP and CLEAVIR-AST:CONSP-AST but I will keep CLEAVIR-IR:CONSP-INSTRUCTION. 2016-06-06T03:41:16Z Oladon1 quit (Ping timeout: 264 seconds) 2016-06-06T03:41:35Z Jesin joined #lisp 2016-06-06T03:43:00Z ekinmur quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T03:44:41Z beach: CONSP-INSTRUCTION will be generated from TYPEQ-INSTRUCTION with a type of CONS after the type inferencer has done its job. 2016-06-06T03:45:18Z TruePika: Apparently I can't use DRAKMA, since it doesn't support transport timeouts on SBCL (only LispWorks) 2016-06-06T03:45:43Z wccoder quit (Remote host closed the connection) 2016-06-06T03:45:48Z TruePika: and some HTTP replies don't appear to be getting back 2016-06-06T03:45:51Z beach: CONSP-AST will be replaced by a TYPEQ-AST with a type of CONS. 2016-06-06T03:46:12Z beach: The CONSP primop will be replaced by the TYPEQ primop with a type of CONS. 2016-06-06T03:48:23Z beach: TYPEQ is similar to TYPEP except that the type descriptor is a constant. 2016-06-06T03:50:53Z beach: So CAR can be defined like this: (defun car (object) (if (cleavir-primop:typeq object cons) (cleavir-primop:car object) (if (cleavir-primop:typeq object null) nil (error 'type-error :datum object :expected-type '(or cons null))))) 2016-06-06T03:51:52Z beach: Systems such as SBCL won't define it that way of course, because their representation of NIL is such that CAR works both on CONSes and on NIL. 2016-06-06T03:52:46Z Bourne quit (Ping timeout: 252 seconds) 2016-06-06T03:53:02Z TruePika: any suggestions as to what to use instead? 2016-06-06T03:56:49Z beach: drmeister: I think I figured out that the dataflow analysis that we already do in order to introduce cells for shared variables is enough to make the type inferencer work on any HIR program. 2016-06-06T03:57:10Z beach: drmeister: It would be enough to have the type inferencer assign T as a type to anything read from a cell. 2016-06-06T03:57:30Z beach: It is crude and will sometimes be too conservative, but it will work. 2016-06-06T03:58:23Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T03:59:08Z FreeBirdLjj joined #lisp 2016-06-06T03:59:30Z voidlily quit (Read error: Connection reset by peer) 2016-06-06T03:59:32Z voidlily_ joined #lisp 2016-06-06T04:01:13Z voidlily_ quit (Client Quit) 2016-06-06T04:01:43Z defaultxr quit (Quit: gnight) 2016-06-06T04:02:30Z TruePika: Downgrading to 5 from 8 threads using DRAKMA, hopefully this will reduce the loss rate to zero 2016-06-06T04:02:49Z smokeink joined #lisp 2016-06-06T04:03:25Z beach: drmeister: It was when I was working on documenting the primitive operations that I realized that the CONSP primitive operation and the CONSP-AST were superfluous. 2016-06-06T04:07:22Z voidlily joined #lisp 2016-06-06T04:10:29Z arescorpio quit (Quit: Leaving.) 2016-06-06T04:14:33Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2016-06-06T04:14:50Z FreeBirdLjj joined #lisp 2016-06-06T04:18:22Z sword quit (Remote host closed the connection) 2016-06-06T04:26:59Z rumbler31_ joined #lisp 2016-06-06T04:29:16Z rumbler31 quit (Ping timeout: 264 seconds) 2016-06-06T04:29:24Z rumbler31_ is now known as rumbler31 2016-06-06T04:30:44Z TruePika: clhs tagbody 2016-06-06T04:30:44Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_tagbod.htm 2016-06-06T04:33:39Z TruePika: okay, I can't manage to hack together a solution for this 2016-06-06T04:35:34Z TruePika: I need something other than DRAKMA for this, or a good solution for getting a read timeout under SBCL 2016-06-06T04:36:11Z PuercoPop: TruePika: there are other libraries similar to drakma, carrier and dexador 2016-06-06T04:36:21Z PuercoPop: carrier uses an event loop 2016-06-06T04:36:49Z Oladon joined #lisp 2016-06-06T04:37:47Z TruePika: not sure carrier is right for this, I'm already making things async, so I want something which is a blocking call 2016-06-06T04:38:55Z TruePika: dexador is beta and, going by Github, failing to build 2016-06-06T04:39:37Z PuercoPop: travis is failing on CCL, dexador builds fine 2016-06-06T04:39:41Z PuercoPop: both support timeouts 2016-06-06T04:40:15Z PuercoPop: and the failures from CCL look like connection issues 2016-06-06T04:40:20Z zeitue quit (Ping timeout: 240 seconds) 2016-06-06T04:40:27Z TruePika: fast-http or http-parse? 2016-06-06T04:40:54Z PuercoPop: probably both use fast-http, Orthocreedence moved wookie from http-parse to fast-http 2016-06-06T04:41:28Z TruePika: does it support timeouts? 2016-06-06T04:41:49Z TruePika: read timeouts, not just connect timeouts 2016-06-06T04:42:10Z TruePika: README.markdown doesn't say anything 2016-06-06T04:43:38Z TruePika: or hmm, it doesn't look like it actually does requests 2016-06-06T04:45:22Z fewdea quit (Ping timeout: 260 seconds) 2016-06-06T04:46:07Z Neurostorm joined #lisp 2016-06-06T04:46:12Z PuercoPop: TruePika: Just checked through the magic of M-., carrier allows to set read-timeout 2016-06-06T04:46:17Z wccoder joined #lisp 2016-06-06T04:46:37Z PuercoPop: (the heavy work is done by cl-async/libuv 2016-06-06T04:47:29Z TruePika: does it do flexistreams? 2016-06-06T04:47:57Z TruePika: hm, asd says no 2016-06-06T04:48:49Z vlatkoB joined #lisp 2016-06-06T04:49:17Z PuercoPop: dexador doesn't take read-timeout, just wraps the execution in a (%with-timeout form) (in SBCL) 2016-06-06T04:49:49Z TruePika: wait, there's already a with-timeout in SBCL? 2016-06-06T04:49:57Z TruePika was trying to hack one together 2016-06-06T04:50:20Z PuercoPop: no, tehre is a %with-timeout in usocket 2016-06-06T04:50:31Z PuercoPop: Are you browsing the code? 2016-06-06T04:50:41Z TruePika: no 2016-06-06T04:51:00Z PuercoPop: but it runs the body with a timeout and a unwind-protect cleanup handler 2016-06-06T04:51:04Z jsmith_ quit 2016-06-06T04:51:05Z wccoder quit (Ping timeout: 260 seconds) 2016-06-06T04:51:18Z TruePika: hm, is that just for connect timeouts, or read timeouts also? 2016-06-06T04:51:31Z PuercoPop: that is independent of connections 2016-06-06T04:51:49Z PuercoPop: it uses sb-ext:schedule-timer and sb-ext:make-timer 2016-06-06T04:52:07Z TruePika: which is what I was trying to use to hack together a with-timeout 2016-06-06T04:52:11Z TruePika: <_< 2016-06-06T04:52:45Z PuercoPop: Using jump to definition to browse the code is a good idea when comparing libraries 2016-06-06T04:53:36Z PuercoPop: Btw, I'm guessing you are trying to scrape web pages or something similar? 2016-06-06T04:54:07Z TruePika: similar to scraping, getting data from a remote PHP script 2016-06-06T04:54:29Z TruePika: lots of overlap though 2016-06-06T04:55:21Z TruePika: meh, I'll switch the code back to my old wget(1)-based solution, I think 2016-06-06T04:55:41Z TruePika: at least for the time 2016-06-06T05:03:20Z araujo__ quit (Quit: Leaving) 2016-06-06T05:04:51Z loke quit (Ping timeout: 250 seconds) 2016-06-06T05:05:13Z unbalancedparen quit (Quit: WeeChat 1.5) 2016-06-06T05:06:10Z loke joined #lisp 2016-06-06T05:06:19Z drmeister: Hi beach 2016-06-06T05:06:22Z drmeister: Reading... 2016-06-06T05:08:07Z drmeister: That all makes perfect sense. (typeq x 'cons) is equivalent to (consp x) 2016-06-06T05:08:45Z tmtwd joined #lisp 2016-06-06T05:13:31Z TruePika: clhs use-value 2016-06-06T05:13:31Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_use_va.htm 2016-06-06T05:15:37Z zdm joined #lisp 2016-06-06T05:15:50Z zdm quit (Changing host) 2016-06-06T05:15:50Z zdm joined #lisp 2016-06-06T05:17:46Z moei quit (Quit: Leaving...) 2016-06-06T05:18:16Z moei joined #lisp 2016-06-06T05:21:33Z cmatei quit (Remote host closed the connection) 2016-06-06T05:22:17Z Neurostorm quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T05:23:00Z Penta joined #lisp 2016-06-06T05:23:01Z Neurostorm joined #lisp 2016-06-06T05:23:02Z TruePika: and this is why I moved away from the wget solution in the first place <_< 2016-06-06T05:23:30Z TruePika: I think SBCL deadlocked itself 2016-06-06T05:25:13Z TruePika: yup 2016-06-06T05:25:19Z cmatei joined #lisp 2016-06-06T05:26:27Z CEnnis91 quit (Quit: Connection closed for inactivity) 2016-06-06T05:26:36Z IPmonger joined #lisp 2016-06-06T05:26:39Z Pent quit (Ping timeout: 249 seconds) 2016-06-06T05:27:11Z beach: drmeister: Right, except it is (typeq x cons) without the quote. But I know what you meant. 2016-06-06T05:27:39Z Harag joined #lisp 2016-06-06T05:28:06Z edgar-rft joined #lisp 2016-06-06T05:29:54Z trinitr0n is now known as Loud1400 2016-06-06T05:30:59Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T05:31:54Z Neurostorm quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T05:32:28Z Neurostorm joined #lisp 2016-06-06T05:34:07Z Loud1400 is now known as trinitr0n 2016-06-06T05:35:50Z asc232 quit (Remote host closed the connection) 2016-06-06T05:38:29Z beach left #lisp 2016-06-06T05:38:38Z shka joined #lisp 2016-06-06T05:42:23Z Xal quit (Quit: WeeChat 1.5) 2016-06-06T05:46:50Z schaueho joined #lisp 2016-06-06T05:51:52Z scymtym quit (Ping timeout: 260 seconds) 2016-06-06T05:52:40Z zdm quit (Ping timeout: 264 seconds) 2016-06-06T05:55:00Z allezbluez joined #lisp 2016-06-06T05:57:58Z Neurostorm quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T05:58:42Z Neurostorm joined #lisp 2016-06-06T06:01:47Z salv0 quit (Remote host closed the connection) 2016-06-06T06:02:44Z grouzen joined #lisp 2016-06-06T06:03:00Z tmtwd quit (Ping timeout: 258 seconds) 2016-06-06T06:04:22Z Neurostorm quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T06:04:56Z frgo quit (Quit: rcirc on GNU Emacs 24.5.1) 2016-06-06T06:05:43Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T06:06:01Z FreeBirdLjj joined #lisp 2016-06-06T06:08:00Z shka quit (Ping timeout: 276 seconds) 2016-06-06T06:11:54Z Penta quit (Quit: Leaving) 2016-06-06T06:17:40Z ramky joined #lisp 2016-06-06T06:20:39Z schaueho quit (Ping timeout: 244 seconds) 2016-06-06T06:30:17Z Neurostorm joined #lisp 2016-06-06T06:38:25Z eazar001 joined #lisp 2016-06-06T06:39:36Z tmtwd joined #lisp 2016-06-06T06:44:45Z holycow quit (Quit: Lost terminal) 2016-06-06T06:47:40Z smokeink quit (Ping timeout: 252 seconds) 2016-06-06T06:48:37Z aries_liuxueyang quit (Ping timeout: 258 seconds) 2016-06-06T06:50:03Z aries_liuxueyang joined #lisp 2016-06-06T06:50:05Z troydm quit (Ping timeout: 244 seconds) 2016-06-06T06:50:12Z zRecursive quit (Ping timeout: 260 seconds) 2016-06-06T06:53:50Z zdm joined #lisp 2016-06-06T06:54:05Z zdm quit (Changing host) 2016-06-06T06:54:05Z zdm joined #lisp 2016-06-06T06:59:20Z mastokley joined #lisp 2016-06-06T07:00:50Z mishoo_ joined #lisp 2016-06-06T07:00:55Z stepnem joined #lisp 2016-06-06T07:03:14Z zRecursive joined #lisp 2016-06-06T07:07:17Z shka joined #lisp 2016-06-06T07:10:05Z tmtwd quit (Ping timeout: 250 seconds) 2016-06-06T07:14:50Z IPmonger joined #lisp 2016-06-06T07:16:17Z zdm quit (Ping timeout: 250 seconds) 2016-06-06T07:19:40Z IPmonger quit (Ping timeout: 264 seconds) 2016-06-06T07:22:44Z smokeink joined #lisp 2016-06-06T07:26:25Z mvilleneuve joined #lisp 2016-06-06T07:31:56Z scymtym joined #lisp 2016-06-06T07:39:05Z angavrilov joined #lisp 2016-06-06T07:47:51Z eazar001 quit (Quit: Leaving) 2016-06-06T07:47:53Z wccoder joined #lisp 2016-06-06T07:48:07Z wjmcdermott joined #lisp 2016-06-06T07:50:22Z wjmcdermott quit (Quit: #lisp) 2016-06-06T07:52:30Z wccoder quit (Ping timeout: 260 seconds) 2016-06-06T07:56:39Z varjag joined #lisp 2016-06-06T07:59:03Z emaczen quit (Ping timeout: 240 seconds) 2016-06-06T08:01:50Z zRecursive quit (Remote host closed the connection) 2016-06-06T08:04:40Z Zhivago quit (Ping timeout: 264 seconds) 2016-06-06T08:05:41Z eschatologist quit (Ping timeout: 250 seconds) 2016-06-06T08:05:49Z Zhivago joined #lisp 2016-06-06T08:08:47Z igam joined #lisp 2016-06-06T08:08:54Z FreeBirdLjj quit (Ping timeout: 276 seconds) 2016-06-06T08:09:35Z peterh joined #lisp 2016-06-06T08:11:14Z FreeBirdLjj joined #lisp 2016-06-06T08:11:42Z hhdave joined #lisp 2016-06-06T08:13:28Z mastokley quit (Ping timeout: 252 seconds) 2016-06-06T08:23:32Z zdm joined #lisp 2016-06-06T08:24:22Z dreamaddict_: this I don't get for some reason: (setf (symbol-function function-name))...it is in the CFFI tutorial here: https://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dMemory.html#DOCF8 2016-06-06T08:25:08Z dreamaddict_: as in, I don't see much Lisp where people use that, why did he use it, why would you use it over what most other code does to create functions... 2016-06-06T08:26:30Z Karl_Dscc joined #lisp 2016-06-06T08:29:17Z mastokley joined #lisp 2016-06-06T08:30:28Z rumbler31 quit (Ping timeout: 264 seconds) 2016-06-06T08:31:00Z scymtym quit (Ping timeout: 260 seconds) 2016-06-06T08:31:11Z scymtym joined #lisp 2016-06-06T08:33:03Z araujo joined #lisp 2016-06-06T08:33:37Z _death: dreamaddict: it used because the function name is only available at runtime 2016-06-06T08:33:39Z cpt_nemo quit (Ping timeout: 258 seconds) 2016-06-06T08:34:36Z dreamaddict_: ok so defun is used at compile-time (only?) 2016-06-06T08:34:50Z dreamaddict_: and with symbol-function, you can pull it out of thin air 2016-06-06T08:35:40Z rumbler31 joined #lisp 2016-06-06T08:39:44Z Bike: (defun name ...) is a macro expanding to `(setf (symbol-function ',name) (lambda ...)) with some complications. 2016-06-06T08:40:14Z _death: with defun the function name must be available for macroexpansion.. symbol-function accesses the function slot for the symbol supplied to it 2016-06-06T08:41:42Z HeyFlash joined #lisp 2016-06-06T08:42:19Z Karl_Dscc quit (Remote host closed the connection) 2016-06-06T08:44:33Z araujo_ joined #lisp 2016-06-06T08:45:55Z jdz quit (Ping timeout: 258 seconds) 2016-06-06T08:46:06Z Bike quit (Quit: leaving) 2016-06-06T08:47:55Z araujo quit (Ping timeout: 260 seconds) 2016-06-06T08:50:49Z jdz joined #lisp 2016-06-06T08:54:27Z allezbluez quit (Ping timeout: 244 seconds) 2016-06-06T08:56:38Z Harag quit (Ping timeout: 272 seconds) 2016-06-06T08:59:24Z araujo_ quit (Quit: Leaving) 2016-06-06T09:02:59Z IPmonger joined #lisp 2016-06-06T09:04:23Z arbv joined #lisp 2016-06-06T09:07:40Z IPmonger quit (Ping timeout: 264 seconds) 2016-06-06T09:08:10Z igam: dreamaddict_: notice that if you use (setf (symbol-function 'f) …), you'd be well advised to (declaim (notinline f)) too. 2016-06-06T09:12:50Z Karl_Dscc joined #lisp 2016-06-06T09:13:04Z dreamaddict_: actually I didn't notice that, this is still a bit dense for me because I haven't been programming in C for umpteen years and have no familiarity with usual C idioms, or why you have to use them :P 2016-06-06T09:15:16Z dreamaddict_: also, does SBCL on Linux do callbacks? 2016-06-06T09:16:19Z zdm quit (Ping timeout: 244 seconds) 2016-06-06T09:20:00Z moore33 joined #lisp 2016-06-06T09:22:22Z rumbler31 quit (Quit: Going offline, see ya! (www.adiirc.com)) 2016-06-06T09:23:13Z bijou joined #lisp 2016-06-06T09:28:16Z peterh quit (Ping timeout: 252 seconds) 2016-06-06T09:28:44Z peterh joined #lisp 2016-06-06T09:37:15Z Harag joined #lisp 2016-06-06T09:37:30Z Bourne joined #lisp 2016-06-06T09:41:21Z arbv quit (Read error: Connection reset by peer) 2016-06-06T09:41:28Z Harag quit (Ping timeout: 244 seconds) 2016-06-06T09:41:47Z arbv joined #lisp 2016-06-06T09:42:58Z Harag joined #lisp 2016-06-06T09:45:35Z przl joined #lisp 2016-06-06T09:54:26Z IPmonger joined #lisp 2016-06-06T09:55:08Z emaczen joined #lisp 2016-06-06T09:57:34Z arbv quit (Read error: Connection reset by peer) 2016-06-06T09:58:34Z IPmonger quit (Ping timeout: 240 seconds) 2016-06-06T10:00:40Z emaczen quit (Ping timeout: 258 seconds) 2016-06-06T10:01:22Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T10:02:02Z FreeBirdLjj joined #lisp 2016-06-06T10:03:08Z arbv joined #lisp 2016-06-06T10:09:57Z Karl_Dscc quit (Remote host closed the connection) 2016-06-06T10:12:03Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T10:12:31Z FreeBirdLjj joined #lisp 2016-06-06T10:12:44Z EvW joined #lisp 2016-06-06T10:18:48Z Harag quit (Ping timeout: 246 seconds) 2016-06-06T10:20:46Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T10:21:27Z FreeBirdLjj joined #lisp 2016-06-06T10:21:28Z smokeink quit (Ping timeout: 264 seconds) 2016-06-06T10:21:30Z Harag joined #lisp 2016-06-06T10:25:48Z Harag quit (Ping timeout: 246 seconds) 2016-06-06T10:27:09Z johs_ quit (Quit: .) 2016-06-06T10:27:28Z johs joined #lisp 2016-06-06T10:28:25Z shka quit (Read error: Connection reset by peer) 2016-06-06T10:28:31Z smokeink joined #lisp 2016-06-06T10:30:05Z pbgc joined #lisp 2016-06-06T10:31:15Z josteink quit (Ping timeout: 276 seconds) 2016-06-06T10:34:37Z shka joined #lisp 2016-06-06T10:39:22Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T10:39:25Z emaczen joined #lisp 2016-06-06T10:39:43Z FreeBirdLjj joined #lisp 2016-06-06T10:42:24Z SumoSudo joined #lisp 2016-06-06T10:44:35Z emaczen quit (Ping timeout: 250 seconds) 2016-06-06T10:44:36Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T10:44:41Z leo_song quit (Excess Flood) 2016-06-06T10:44:54Z leo_song joined #lisp 2016-06-06T10:45:12Z FreeBirdLjj joined #lisp 2016-06-06T10:46:43Z Harag joined #lisp 2016-06-06T10:50:38Z araujo joined #lisp 2016-06-06T10:50:38Z araujo quit (Changing host) 2016-06-06T10:50:38Z araujo joined #lisp 2016-06-06T10:55:40Z Harag quit (Ping timeout: 260 seconds) 2016-06-06T10:56:58Z quasisane quit (Ping timeout: 272 seconds) 2016-06-06T10:57:07Z SumoSudo quit (Quit: WeeChat 1.4) 2016-06-06T10:57:24Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T10:57:43Z FreeBirdLjj joined #lisp 2016-06-06T11:01:14Z przl quit (Ping timeout: 258 seconds) 2016-06-06T11:03:25Z SumoSudo joined #lisp 2016-06-06T11:10:04Z cpt_nemo joined #lisp 2016-06-06T11:11:02Z emaczen joined #lisp 2016-06-06T11:12:51Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T11:13:04Z Grue`` joined #lisp 2016-06-06T11:14:21Z FreeBirdLjj joined #lisp 2016-06-06T11:16:01Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T11:16:20Z FreeBirdLjj joined #lisp 2016-06-06T11:16:42Z emaczen quit (Ping timeout: 244 seconds) 2016-06-06T11:22:12Z quasisane joined #lisp 2016-06-06T11:31:13Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T11:31:50Z FreeBirdLjj joined #lisp 2016-06-06T11:35:52Z Mon_Ouie quit (Ping timeout: 252 seconds) 2016-06-06T11:41:56Z bijou quit (Ping timeout: 272 seconds) 2016-06-06T11:42:13Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T11:43:20Z IPmonger joined #lisp 2016-06-06T11:43:32Z hjudt: hi, i have started a web project using caveman2. it uses djula as the default template engine. what do other people use and why? my understanding so far: i guess people use djula because it is easier to understand for designers. cl-who or cl-markup seem to be more lispy, though it can also look more ugly for simple things from the examples i have seen if formatted badly. what do people use in which cases? is 2016-06-06T11:43:38Z hjudt: cl-who better than cl-markup, and if yes, for what use cases? 2016-06-06T11:44:05Z EvW joined #lisp 2016-06-06T11:44:40Z hjudt: i have also seen parenscript, this implies i use something like cl-who or cl-markup, right? 2016-06-06T11:47:40Z jackdaniel: hjudt: there is #lispweb, you may be more lucky there (on the other hand more people is here) 2016-06-06T11:47:45Z FreeBirdLjj quit (Remote host closed the connection) 2016-06-06T11:47:45Z jackdaniel: I'm using cl-who and I'm fine with that 2016-06-06T11:47:57Z jackdaniel: don't know other solutions because it satisfies my needs 2016-06-06T11:48:05Z FreeBirdLjj joined #lisp 2016-06-06T11:48:16Z IPmonger quit (Ping timeout: 272 seconds) 2016-06-06T11:49:00Z quazimodo joined #lisp 2016-06-06T11:49:06Z jackdaniel: parenscript is for the javascript part, it should be used with something else if you develope a web application 2016-06-06T11:49:15Z jackdaniel: develop» 2016-06-06T11:50:13Z hjudt: ok. i guess i will simply try cl-who then because i have someone that i can ask questions ;-) 2016-06-06T11:50:48Z jackdaniel: first think where you should look for your answers is the documentation ;) 2016-06-06T11:50:59Z jackdaniel: s/think/thing/ s/thing/place/ 2016-06-06T11:51:14Z hjudt: yes, i have already looked at that, also how to switch to it in caveman2 2016-06-06T11:51:37Z jackdaniel: if caveman2 suggests some other alternative stick to it, it's probably better supported in the framework 2016-06-06T11:51:52Z hjudt: my questions have only been about adv/disadv or use cases when to use which lib 2016-06-06T11:52:44Z jackdaniel: cl-who is just a pretty dumb template system (and I consider being dumb a positive thing here) 2016-06-06T11:53:08Z hjudt: caveman2 does not dictate any templating library: http://quickdocs.org/caveman/ 2016-06-06T11:53:45Z hjudt: but i do not know the differences between the libraries, so i need to ask more experienced people 2016-06-06T11:53:45Z jackdaniel: yes, but the defaults are usually way more supported than "options" 2016-06-06T11:54:03Z jackdaniel: because that's what the dev used 2016-06-06T11:54:32Z jackdaniel: s/used/is using/ 2016-06-06T11:56:24Z aeth quit (Ping timeout: 276 seconds) 2016-06-06T11:57:35Z aeth joined #lisp 2016-06-06T11:58:00Z ragepandemic joined #lisp 2016-06-06T11:58:12Z przl joined #lisp 2016-06-06T12:04:46Z troydm joined #lisp 2016-06-06T12:06:02Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T12:11:59Z EvW joined #lisp 2016-06-06T12:12:58Z quazimodo quit (Read error: Connection reset by peer) 2016-06-06T12:15:39Z papachan` joined #lisp 2016-06-06T12:19:10Z SumoSudo quit (Ping timeout: 250 seconds) 2016-06-06T12:23:13Z zacharias joined #lisp 2016-06-06T12:28:57Z bijou joined #lisp 2016-06-06T12:29:04Z grouzen quit (Ping timeout: 240 seconds) 2016-06-06T12:31:11Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T12:31:14Z pbgc quit (Quit: Computer has gone to sleep.) 2016-06-06T12:31:36Z EvW joined #lisp 2016-06-06T12:43:44Z Grue``: hjudt: i'd advice to stick with djula or other templating engine. There's too much benefit to have almost-html files as a base as opposed to generating everything with cl-who 2016-06-06T12:48:34Z sjl joined #lisp 2016-06-06T12:49:09Z Zhivago quit (Changing host) 2016-06-06T12:49:09Z Zhivago joined #lisp 2016-06-06T12:55:08Z shdeng quit (Quit: Leaving) 2016-06-06T12:56:07Z IPmonger joined #lisp 2016-06-06T12:59:09Z BitPuffin joined #lisp 2016-06-06T13:00:20Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T13:00:38Z pbgc joined #lisp 2016-06-06T13:01:05Z quazimodo joined #lisp 2016-06-06T13:01:22Z SumoSudo joined #lisp 2016-06-06T13:01:24Z LiamH joined #lisp 2016-06-06T13:02:21Z CEnnis91 joined #lisp 2016-06-06T13:02:45Z hjudt: thanks, that's probably true. i'll try that first. 2016-06-06T13:03:35Z hjudt: what it also enforces is separation of data and code (view and model in this case). but that's also what makes it unlispy. 2016-06-06T13:05:16Z FreeBird_ joined #lisp 2016-06-06T13:06:54Z sanscoeur joined #lisp 2016-06-06T13:08:33Z FreeBirdLjj quit (Ping timeout: 276 seconds) 2016-06-06T13:09:22Z _death: it does no such thing.. the whole point of "templates" is to bring together features of code and noncode 2016-06-06T13:09:50Z FreeBird_ quit (Remote host closed the connection) 2016-06-06T13:10:25Z bijou quit (Ping timeout: 260 seconds) 2016-06-06T13:12:01Z Grue``: pragmatism over lispiness :) 2016-06-06T13:12:47Z emaczen joined #lisp 2016-06-06T13:12:53Z Grue``: hell, I even write javascript by hand instead of generating it with lisp 2016-06-06T13:13:13Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T13:13:38Z jackdaniel: regarding markup, I find one-tag stuff cleaner (ie yaml or lisp over xml and html), because you don't have to close the tags 2016-06-06T13:13:55Z jackdaniel: (:p "hellow") vs

Hellow

2016-06-06T13:14:12Z hjudt: _death: one drawback i just noticed: i cannot call functions from inside the template 2016-06-06T13:15:39Z hjudt: maybe that is only a problem if you use many calls, that is if your page is very "dynamic" 2016-06-06T13:15:54Z hjudt: of course, the template does look nicer 2016-06-06T13:16:10Z hjudt: jackdaniel: +1 for the tag closing advantage 2016-06-06T13:16:10Z Grue``: I don't know about djula but in django templates you can define custom tags that do whatever you want 2016-06-06T13:16:49Z _death: hjudt: recently I wrote a "template engine" that allows pretty much arbitrary lisp.. it's for trusted templates and it's a complete hack :) 2016-06-06T13:16:53Z hjudt: Grue``: in djula documentation is "TODO". even so, i would have to define custom tags instead of calling functions directly. 2016-06-06T13:18:32Z _death: but my preference in general is to not use templates, but sublanguages like cl-who (actually yaclml) 2016-06-06T13:19:03Z emaczen quit (Ping timeout: 240 seconds) 2016-06-06T13:19:15Z Grue``: the previous templating system caveman used (cl-emb) allowed to define functions that can be called from within the template 2016-06-06T13:19:36Z ekinmur joined #lisp 2016-06-06T13:19:51Z NeverDie quit (Quit: http://radiux.io/) 2016-06-06T13:26:30Z Karl_Dscc joined #lisp 2016-06-06T13:31:38Z igam` joined #lisp 2016-06-06T13:32:33Z igam quit (Read error: Connection reset by peer) 2016-06-06T13:33:26Z Karl_Dscc quit (Remote host closed the connection) 2016-06-06T13:34:27Z ramky quit (Ping timeout: 250 seconds) 2016-06-06T13:40:57Z hjudt: i will try cl-who first for the project i am working on. caveman2 is really flexible, so it would be possible to use cl-who and djula in one project. 2016-06-06T13:41:12Z hjudt: though i'd rather avoid mixing stuff 2016-06-06T13:41:46Z peey joined #lisp 2016-06-06T13:42:06Z hjudt: maybe i will find that cl-who doesn't make it easier, then i can still go back to djula templates 2016-06-06T13:43:45Z hjudt: (or maybe cl-markup instead of cl-who sind it supports embedding lisp code in the body of each tag (see https://github.com/arielnetworks/cl-markup) 2016-06-06T13:47:06Z hjudt: anyway, thanks for your explanations and suggestions, i will try and see how far i get with this 2016-06-06T13:48:43Z Denommus joined #lisp 2016-06-06T13:49:25Z dyelar joined #lisp 2016-06-06T13:50:15Z arbv quit (Read error: Connection reset by peer) 2016-06-06T13:50:21Z arbv joined #lisp 2016-06-06T13:50:28Z eudoxia joined #lisp 2016-06-06T13:53:01Z Mon_Ouie joined #lisp 2016-06-06T13:55:04Z quazimodo quit (Ping timeout: 264 seconds) 2016-06-06T13:55:50Z sanscoeur quit (Ping timeout: 244 seconds) 2016-06-06T13:56:05Z adolf_stalin joined #lisp 2016-06-06T13:58:07Z vlatkoB_ joined #lisp 2016-06-06T14:01:34Z peey quit (Quit: Page closed) 2016-06-06T14:01:38Z jayzee joined #lisp 2016-06-06T14:02:16Z vlatkoB quit (Ping timeout: 264 seconds) 2016-06-06T14:07:21Z grouzen joined #lisp 2016-06-06T14:08:59Z Neurostorm quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T14:10:55Z EvW joined #lisp 2016-06-06T14:12:06Z sword joined #lisp 2016-06-06T14:15:57Z arbv quit (Read error: Connection reset by peer) 2016-06-06T14:16:52Z arbv joined #lisp 2016-06-06T14:17:27Z przl quit (Ping timeout: 276 seconds) 2016-06-06T14:17:43Z maoeurk joined #lisp 2016-06-06T14:19:05Z prion_ joined #lisp 2016-06-06T14:19:55Z joekunin joined #lisp 2016-06-06T14:20:13Z gingerale joined #lisp 2016-06-06T14:21:00Z arbv quit (Read error: Connection reset by peer) 2016-06-06T14:21:17Z test1600_ joined #lisp 2016-06-06T14:21:35Z Mon_Ouie quit (Ping timeout: 260 seconds) 2016-06-06T14:23:31Z arbv joined #lisp 2016-06-06T14:26:43Z foom joined #lisp 2016-06-06T14:28:41Z IPmonger joined #lisp 2016-06-06T14:29:36Z jayzee quit (Ping timeout: 250 seconds) 2016-06-06T14:30:20Z unbalancedparen joined #lisp 2016-06-06T14:33:28Z IPmonger quit (Ping timeout: 264 seconds) 2016-06-06T14:33:46Z jayzee joined #lisp 2016-06-06T14:35:27Z NeverDie joined #lisp 2016-06-06T14:36:51Z Karl_Dscc joined #lisp 2016-06-06T14:38:05Z NeverDie_ joined #lisp 2016-06-06T14:39:44Z pavelpenev: hjudt: I tend to prefer "lispy" HTML DSLs for very small amounts of code. I prefer sexml for that. But in actual apps I like template languages like Djula and cl-closure-template better. 2016-06-06T14:41:32Z NeverDie quit (Ping timeout: 260 seconds) 2016-06-06T14:41:58Z NeverDie_ is now known as NeverDie 2016-06-06T14:42:15Z pavelpenev: hjudt: I've played around with mixing them, for example generate small snippets with sexml that later go into a larger cl-closure-template file, but I'm not sure the cost of having two ways of doing things is worth it 2016-06-06T14:44:02Z josteink joined #lisp 2016-06-06T14:44:10Z hjudt: pavelpenev: seems this matches my expectations 2016-06-06T14:45:18Z hjudt: i have switched to cl-markup from djula now. writing code feels a bit less clumsy now, though i ran into a problem with packages and symbols now. maybe someone can give me a clue how to solve this. 2016-06-06T14:45:31Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T14:45:49Z hjudt: first, i have defined my functions providing the data in a package project.model and the code that generates the html in project.view. 2016-06-06T14:45:52Z PuercoPop: Besides the analysis from the 'usage', comparing the codebase from djula and spinneret the latter is much more clear and organized 2016-06-06T14:46:33Z test1600_ quit (Ping timeout: 240 seconds) 2016-06-06T14:46:38Z hjudt: that is fine, but if i now want to access slots of an object in model from view, i will get the error that project.view: is undefined. 2016-06-06T14:46:38Z PuercoPop: The current maintainer of djula has done tons of work organizing it, but it is still far from ideal. 2016-06-06T14:47:31Z hjudt: PuercoPop: yes, djula seems very beginner-friendly and well documented, except some unimportant parts that are missing. 2016-06-06T14:48:31Z hjudt: note that i have created a .model package according to some tutorial because that's the way caveman2 seems to organize things (one package per file). 2016-06-06T14:48:34Z drmeister: This suggests that I can write off Haskell and other purely functional languages for designing molecules. 2016-06-06T14:48:48Z drmeister: http://flyingfrogblog.blogspot.be/2016/05/disadvantages-of-purely-functional.html 2016-06-06T14:48:58Z drmeister: TL;DR - you can't efficiently describe graphs (vertices+edges) in purely functional languages. 2016-06-06T14:49:25Z PuercoPop: hjudt: that is not what I meant, I mean in the code. (btw Djula has more tests than jinja2 \o/) 2016-06-06T14:51:02Z NeverDie quit (Quit: http://radiux.io/) 2016-06-06T14:52:13Z hjudt: PuercoPop: spinneret seems better than cl-markup? 2016-06-06T14:52:34Z PuercoPop: Basically the parser of djula is comprised of token-processors, deftag, def-delimited-tag, filters and they call each other from all over the place. So it is hard to grasp from where something is going to be called 2016-06-06T14:53:18Z jackdaniel: can someone with OSX confirm this bug? https://gitlab.com/embeddable-common-lisp/ecl/issues/254 (ecl 16.1.2) 2016-06-06T14:53:33Z jackdaniel: I have no OSX, hence a question 2016-06-06T14:54:30Z NeverDie joined #lisp 2016-06-06T14:54:31Z PuercoPop: hjudt: I haven't seen cl-markup. I read and used spinneret. But they should be similar from a user api. One nice thing about spinneret is that it processes markdown as well 2016-06-06T14:54:56Z asc232 joined #lisp 2016-06-06T14:55:14Z hjudt: PuercoPop: i see. are there other web frameworks (easy-to-use) than caveman2 you can recommend? i am not sure about it, but maybe the organizational approach does not really suit my needs and i am still open to try alternatives at this stage. 2016-06-06T14:55:27Z jdz: i'm a lazy sod and don't have ECL on my machine 2016-06-06T14:55:46Z PuercoPop: hjudt: ok so you mean arielnetwork's cl-markup? I think that the author, fukamachi now uses djula instead 2016-06-06T14:57:00Z hjudt: spinneret in quicklisp is also up-to-date, while cl-markup is more than two years old. 2016-06-06T14:57:34Z PuercoPop: I'd recommend going with spinneret as its is not approach you can use in most other languages (cl-closure-templates and djula have equivalents available in python/js/etc) 2016-06-06T14:57:55Z igam` is booting ecl on macosx. 2016-06-06T14:58:46Z hjudt: PuercoPop: how do you organize the code in packages? do you separate between model and view (one package model, the other one view)? 2016-06-06T14:58:57Z hjudt: in python world, this is pretty normal 2016-06-06T15:00:02Z hjudt: organization of code in caveman2 remembers me a lot of python django 2016-06-06T15:00:14Z hjudt: s/remembers/reminds/ 2016-06-06T15:00:28Z Grue``: it's supposed to be pretty much lisp version of django 2016-06-06T15:00:58Z PuercoPop: hjudt: I've tried the one package per file approach, I prefer the one package per project (sometimes more than one) approach for when starting a project. Maybe when a project is already fleshed out it makes sense to move to a one package per file approach. But you can (and should) break your code into different files 2016-06-06T15:01:07Z peterh quit (Remote host closed the connection) 2016-06-06T15:01:23Z kushal joined #lisp 2016-06-06T15:01:40Z dougk quit (Remote host closed the connection) 2016-06-06T15:01:47Z igam` is running (ql:quickload 'lispbuilder-sdl) 2016-06-06T15:01:59Z PuercoPop: in the one package per file I'm fiddling with imports to much for my taste 2016-06-06T15:02:01Z dougk joined #lisp 2016-06-06T15:02:12Z igam` is testing it in ECL (Embeddable Common-Lisp) 16.1.2 (git:UNKNOWN) 2016-06-06T15:02:44Z jackdaniel: igam`: thanks! 2016-06-06T15:03:12Z Grue``: i use one package per file, except all packages are defined in a separate file and if one file gets too big I split it, so it becomes several files per package 2016-06-06T15:03:32Z pavelpenev: hjudt: I have a model package in my projects. That's how caveman does it. I used to do a one package per project until recently, but I'm experimenting to see if I like it better that way. 2016-06-06T15:03:44Z pavelpenev: leaving my comfort zone and all that :) 2016-06-06T15:03:52Z przl joined #lisp 2016-06-06T15:04:39Z pavelpenev: I'm liking the explicintly defined dependencies a lot. Makes up for having to manage many more packages. 2016-06-06T15:05:33Z kolko quit (Ping timeout: 276 seconds) 2016-06-06T15:06:16Z hjudt: pavelpenev: that's the way i tried it. now i ran into symbol visibility problems. i have exported a class in the model package and want to use it in the view package, but while i can access the object, i cannot access the slots. 2016-06-06T15:06:28Z hjudt: what can i do? 2016-06-06T15:06:31Z igam`: jackdaniel: Perhaps I'd need to update quicklisp… 2016-06-06T15:06:49Z pavelpenev: hjudt: define accessors and export those 2016-06-06T15:06:57Z hjudt: do i have to export slots too? that would be very inconvenient 2016-06-06T15:06:58Z jackdaniel: igam`: it works fine on your current version? 2016-06-06T15:07:04Z pavelpenev: hjudt: it's not the best style to use slots directly 2016-06-06T15:07:05Z igam`: nope 2016-06-06T15:07:13Z igam`: but I get a different problem. 2016-06-06T15:07:30Z jackdaniel: could you also paste this different problem under the thread? 2016-06-06T15:07:35Z hjudt: i have defined ... (host :accessor host :initarg :host :initform "localhost") 2016-06-06T15:07:37Z jdz: also, you don't export a class, but the name of the class, which is a symbol. packages are for symbols. 2016-06-06T15:07:42Z PuercoPop: hjudt: C-c x exports it for your 2016-06-06T15:07:47Z PuercoPop: *you 2016-06-06T15:07:56Z jackdaniel: also, if you could add :verbose t to quickload: (ql:quickload 'lispbuilder-sdl :verbose t) it would be awesome 2016-06-06T15:08:19Z PuercoPop: go to host and press C-c x to export it and C-u C-c x to un-export it 2016-06-06T15:08:31Z pavelpenev: hjudt: you'll have to export any symbol you want to use outside of your package, that's your packages api, you can also use somepackage::some-slot-name, but that's bad style 2016-06-06T15:08:35Z hjudt: sorry, i apologize. i actually forgot to export the class. 2016-06-06T15:08:35Z igam`: pasted; I'll update quicklisp and run it again. 2016-06-06T15:08:47Z jackdaniel: great, thank you once more :) 2016-06-06T15:09:36Z pavelpenev: hjudt: since using double collon means you're accessing a private symbol, you can do it, but I only tend to do it at the repl if I'm testing out something 2016-06-06T15:15:07Z emaczen joined #lisp 2016-06-06T15:15:24Z hjudt: ok, i thought i forgot to export the class. but now i still get the same message. "when attempting to read the slot's value (slot-value), the slot project.view::host is missing from the object project.model:server {xxxx}". guess i will have to figure this out. 2016-06-06T15:16:56Z hjudt: by accessors, you mean (host :accessor host :initarg :host :initform "localhost"), right? or do i need more than that? 2016-06-06T15:16:58Z pavelpenev: hjudt: the name of the slot is probably project.model::host 2016-06-06T15:17:42Z grouzen quit (Ping timeout: 246 seconds) 2016-06-06T15:18:14Z pavelpenev: you can't do (slot some-package:some-class someother-package:some-slot-name), 2016-06-06T15:18:49Z pavelpenev: hjudt: yes, :accessor defines an accessor function, use those. Usually they are named classname-slotname, rather than just slotname by convention 2016-06-06T15:18:55Z hjudt: (slot-value obj 'project.model::host) worked 2016-06-06T15:19:04Z hjudt: but it is not what i want to do 2016-06-06T15:19:17Z PuercoPop: hjudt: accessor is the function named by the :accessor in the slot definition. In this case it shares the symbol name with the slot 2016-06-06T15:19:35Z hjudt: so do i need to export that too? 2016-06-06T15:19:45Z hjudt: export :accessor-name? 2016-06-06T15:20:15Z hjudt: then i am probably better of not putting that stuff in separate packages 2016-06-06T15:20:18Z emaczen quit (Ping timeout: 250 seconds) 2016-06-06T15:20:27Z PuercoPop: with the slot as is, only host. 2016-06-06T15:20:49Z PuercoPop: But yes, place everything in one package until you have a better grasp of packages and CLOS 2016-06-06T15:21:12Z PuercoPop: it is easier, latter try the one package per file approach to see if it suits you, it may 2016-06-06T15:21:42Z hjudt: will a better grasp solve this for me? at the moment i do not see how to solve this using the one package per file approach. 2016-06-06T15:22:04Z pavelpenev: hjudt, PuercoPop: good advice, but if you're writing caveman code, it's probably better to stick to the convention it uses 2016-06-06T15:22:24Z igam`: jadckdaniel: I don't get the same error. with this ecl from MacPorts. I'll be able to compile a git ecl later this evening. 2016-06-06T15:22:41Z jackdaniel: he has this problem from the release 2016-06-06T15:22:49Z jackdaniel: as far as I understand 2016-06-06T15:23:35Z Grue``: this problem is solved by having an API that has few entrypoints. for example instead of returning an object and having the caller access the slots, return an association list of slot values or something 2016-06-06T15:23:46Z fourier joined #lisp 2016-06-06T15:23:53Z fourier quit (Changing host) 2016-06-06T15:23:53Z fourier joined #lisp 2016-06-06T15:26:40Z fourier: Is where any library to convert between image formats ? like gif->png and resize. Using image magick I can do "convert filename.gif -resize 32x32 filename.png"; would like to do similar in CL without imagemagick 2016-06-06T15:27:08Z jackdaniel: fourier: maybe opticl can do that 2016-06-06T15:27:20Z jackdaniel: (just guessing) 2016-06-06T15:27:38Z PuercoPop: pavelpenev: I don't think using caveman2 or ningle is a good idea for a beginner. Hunchentoot (and even wookie) seems more approachable 2016-06-06T15:27:58Z cross quit (Ping timeout: 252 seconds) 2016-06-06T15:28:51Z varjag quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2016-06-06T15:29:23Z axion: fourier: there are a couple CL imagemagick wrappers as well 2016-06-06T15:30:36Z Grue``: there is SKIPPY (for gif) and VECTO (for png), it should be easy to write a converter 2016-06-06T15:32:01Z hjudt: PuercoPop: i will try to use one package first, probably that is a better approach for a start until i better understand how to organize the code in separate packages and using the djula templates more efficiently, if that fits to my style. 2016-06-06T15:32:17Z papachan`: PuercoPop pavelpenev agree, huchentoot is great to learn first 2016-06-06T15:32:17Z jayzee quit (Remote host closed the connection) 2016-06-06T15:33:00Z hjudt: but hunchentoot is a web server, not a web framework, isn't it? 2016-06-06T15:33:39Z hjudt: it's what i use for development with caveman 2016-06-06T15:33:41Z Grue``: it is a rudimentary framework 2016-06-06T15:33:47Z PuercoPop: hjudt: yes, it is a different way to develop, an application server 2016-06-06T15:34:12Z pbgc quit (Quit: Computer has gone to sleep.) 2016-06-06T15:35:00Z PuercoPop: so you customize/extend the server to fit your applicatoin 2016-06-06T15:35:02Z Amaan joined #lisp 2016-06-06T15:35:16Z fourier: axion: when I do (ql:system-apropos "magick") I get nothing :( 2016-06-06T15:36:44Z hjudt: PuercoPop, Grue``: the application should run on other servers than hunchentoot later. i only use hunchentoot for development. 2016-06-06T15:37:03Z arbv quit (Read error: Connection reset by peer) 2016-06-06T15:37:29Z fourier: jackdaniel: thanks I'll try it. 2016-06-06T15:38:10Z Grue``: hjudt: if it's your first app, it would probably never get to that point 2016-06-06T15:38:15Z PuercoPop: hjudt: hunchentoot ties you to the server as well as wookie. That is a pro of Clack 2016-06-06T15:39:55Z Grue``: my app runs on hunchentoot in production but it only gets like 10 users per day so I can't confirm it's reliability :( 2016-06-06T15:39:59Z _sjs joined #lisp 2016-06-06T15:40:48Z hjudt: well, caveman already sets me up with hunchentoot. i believe it is rather minimal, if you ignore the template framework stuff. 2016-06-06T15:41:24Z PuercoPop: hjudt: but you don't develop using hunchentoot but clack when using caveman 2016-06-06T15:41:40Z PuercoPop: (ej you don't use define-easy-handler 2016-06-06T15:42:22Z Grue``: i tried caveman2 once and it didn't seem particularly confusing. however i still had to write a lot of stuff that I'd expect to be in a framework myself 2016-06-06T15:42:26Z papachan`: Grue`` nice 2016-06-06T15:42:30Z PuercoPop: or access the cookies or the request parameters w/ the same API, well documented in the hunchentoot docs 2016-06-06T15:42:42Z papachan`: Grue`` which os? 2016-06-06T15:43:22Z dreamaddict_ quit (Ping timeout: 250 seconds) 2016-06-06T15:44:03Z Grue``: I develop crossplatform, sometimes on ubuntu, sometimes on windows... 2016-06-06T15:44:17Z papachan`: but on your prod server? 2016-06-06T15:44:46Z vaitel joined #lisp 2016-06-06T15:46:19Z Grue``: ubuntu 14.04 lts 2016-06-06T15:46:24Z papachan`: ah ok 2016-06-06T15:54:59Z erg_ is now known as erg 2016-06-06T15:56:51Z dwchandl1r is now known as dwchandler 2016-06-06T16:00:55Z sjl quit (Ping timeout: 250 seconds) 2016-06-06T16:01:01Z mvilleneuve quit (Quit: This computer has gone to sleep) 2016-06-06T16:03:28Z Denommus quit (Ping timeout: 264 seconds) 2016-06-06T16:04:42Z moore33 quit (Quit: Leaving) 2016-06-06T16:05:41Z TruePika: great <_< 2016-06-06T16:05:47Z TruePika: I need some advice 2016-06-06T16:05:54Z TruePika: SBCL keeps exhausting the heap 2016-06-06T16:06:17Z TruePika: and I have at least a 4GB swap file, maybe 2GB RAM? 2016-06-06T16:06:45Z TruePika: yeah 2GiB RAM, 4GiB swap 2016-06-06T16:07:33Z eudoxia: TruePika: consider the --dynamic-space-size command line argument to SBCL 2016-06-06T16:08:28Z Mon_Ouie joined #lisp 2016-06-06T16:08:48Z TruePika: eudoxia: is that runtime or toplevel? 2016-06-06T16:08:54Z ericj67 joined #lisp 2016-06-06T16:08:56Z eudoxia: what 2016-06-06T16:09:05Z eudoxia: it's both I think 2016-06-06T16:09:06Z jackdaniel: TruePika: it's invocation of sbcl 2016-06-06T16:09:13Z jackdaniel: sbcl --dynamic-space-size 2016-06-06T16:09:16Z eudoxia: yes 2016-06-06T16:09:24Z TruePika: just checked man, it's runtime 2016-06-06T16:09:33Z eudoxia: it's a command line argument to SBCL not to your program written in SBCL 2016-06-06T16:09:50Z TruePika: the difference matters since I run with --script and I can't add toplevel options 2016-06-06T16:10:14Z TruePika: since --script implies --end-runtime-options and --end-toplevel-options 2016-06-06T16:10:23Z Xach: The option I choose is never to use --script. 2016-06-06T16:10:30Z Xach: (Not helpful, sorry.) 2016-06-06T16:10:46Z TruePika: Xach: I use a shebang to make loading a lot easier 2016-06-06T16:10:51Z TruePika: ...wait >_< 2016-06-06T16:10:56Z Xach: Loading what? 2016-06-06T16:11:14Z TruePika: Xach: $ ./my-script.lisp # So I can do this 2016-06-06T16:11:23Z Xach: I use (ql:quickload ...) to load, and call functions to run. That works all right because I'm in Emacs whenever I'm at the computer. 2016-06-06T16:11:33Z TruePika: first line is #!/usr/bin/sbcl 2016-06-06T16:11:45Z TruePika: err 2016-06-06T16:11:46Z Xach: When I want the computer to run the code instead of me, I make a binary with buildapp. 2016-06-06T16:11:50Z TruePika: #!/usr/bin/sbcl --script 2016-06-06T16:12:18Z jackdaniel: script is smaller I suppose 2016-06-06T16:12:19Z TruePika doesn't use a continuous REPL, or emacs for that matter 2016-06-06T16:12:30Z shka quit (Ping timeout: 258 seconds) 2016-06-06T16:12:47Z ericj67 quit (Client Quit) 2016-06-06T16:13:11Z Xach: TruePika: being an outlier means hitting new-ish problems that other people haven't hit a lot and decided to fix already. 2016-06-06T16:13:18Z TruePika: I just remembered that a patch I applied to SBCL to stop run-program deadlocking GC _might_ be causing a problem 2016-06-06T16:13:43Z TruePika: let me go compile a vanilla 2016-06-06T16:14:30Z TruePika has also lost count of how many times he's compiled SBCL... 2016-06-06T16:14:35Z TruePika: ...in the past three days 2016-06-06T16:15:36Z TruePika: I probably need to switch my FETCH-URL system (which does SB-EXT:RUN-PROGRAM to call wget(1)) to use an actual HTTP lib 2016-06-06T16:16:00Z TruePika: not DRAKMA, though; I tried that yesterday, and it has its own problems 2016-06-06T16:16:10Z H4ns: TruePika: does it_ 2016-06-06T16:16:24Z H4ns: TruePika: what kind of problems are you referring to? 2016-06-06T16:16:40Z TruePika: H4ns: It can't socket read timeout under SBCL. 2016-06-06T16:17:11Z eudoxia quit (Quit: Leaving) 2016-06-06T16:17:23Z IPmonger joined #lisp 2016-06-06T16:17:34Z TruePika: My code is similar to a web scraper (it calls a remote PHP script to get a subset of a remote database), so I need a _lot_ of HTTP requests 2016-06-06T16:17:58Z H4ns: TruePika: you can wrap your calls to drakma in sbcl's timeout facilities if you require that. 2016-06-06T16:18:12Z H4ns: TruePika: on ccl, drakma supports deadlines natively. 2016-06-06T16:18:30Z TruePika: H4ns: What facilities? I tried writing a (WITH-TIMEOUT) myself, failed at it 2016-06-06T16:18:55Z TruePika: H4ns: I need SBCL for some of my code, which depends on SBCL-specific functionality 2016-06-06T16:19:00Z H4ns: TruePika: that's what i was referring to. 2016-06-06T16:19:25Z TruePika: ... 2016-06-06T16:19:37Z TruePika: okay, why couldn't I find (WITH-TIMEOUT) before? 2016-06-06T16:19:47Z TruePika: I swear I checked yesterday 2016-06-06T16:20:11Z TruePika: now I check, and it's there under SB-EXT 2016-06-06T16:20:13Z H4ns: TruePika: you can also have drakma use a socket that you've created yourself on which you've set socket timeouts as appropriate. 2016-06-06T16:20:34Z TruePika: does WITH-TIMEOUT pass values or a single value? 2016-06-06T16:20:51Z TruePika: docstring doesn't appear to say 2016-06-06T16:21:12Z TruePika: or does it even pass anything through? 2016-06-06T16:21:52Z IPmonger quit (Ping timeout: 252 seconds) 2016-06-06T16:21:53Z TruePika decides that it will be easier to implement DRAKMA...again...by modding FETCH-URL 2016-06-06T16:22:07Z H4ns: "lol" 2016-06-06T16:22:29Z TruePika: I have three different functions in my main code which need HTTP 2016-06-06T16:22:42Z TruePika: (one for XML, one for HTML, one for JSON) 2016-06-06T16:22:58Z TruePika: (...it's complicated) 2016-06-06T16:24:33Z igam` quit (Ping timeout: 246 seconds) 2016-06-06T16:24:59Z TruePika: well just got git set up in my FETCH-URL source tree 2016-06-06T16:25:03Z pbgc joined #lisp 2016-06-06T16:25:12Z TruePika: so I can safely revert if things break horribly 2016-06-06T16:25:49Z TruePika: s/if/when/ 2016-06-06T16:26:17Z scymtym: TruePika: you should probably use SB-THREAD:WITH-DEADLINE instead of SB-EXT:WITH-TIMEOUT since the latter can cause async unwinds while the former only affects blocking operations 2016-06-06T16:26:48Z TruePika makes a screen with just a repl 2016-06-06T16:27:00Z igam` joined #lisp 2016-06-06T16:27:10Z TruePika: lol and the first thing I do is crash rlwrap 2016-06-06T16:27:17Z scymtym: sorry, SB-SYS:WITH-DEADLINE, apparently 2016-06-06T16:27:21Z igam` left #lisp 2016-06-06T16:27:50Z smokeink quit (Ping timeout: 258 seconds) 2016-06-06T16:28:13Z TruePika: TIMEOUT is in SB-SYS? 2016-06-06T16:28:21Z al-damiri joined #lisp 2016-06-06T16:29:08Z scymtym: the symbol is exported from sb-sys. the implementation is in sb-thread, iirc 2016-06-06T16:29:28Z TruePika: meh, I just realised I'm going to have to break my FETCH-URL API 2016-06-06T16:30:20Z TruePika: condition DOWNLOAD-ERROR (this is for non-error-response failures) has a wget(1) exit code 2016-06-06T16:30:27Z TruePika: meh, I can probably fake it 2016-06-06T16:30:34Z yrk joined #lisp 2016-06-06T16:31:09Z yrk quit (Changing host) 2016-06-06T16:31:09Z yrk joined #lisp 2016-06-06T16:32:06Z wccoder joined #lisp 2016-06-06T16:32:16Z emaczen joined #lisp 2016-06-06T16:32:45Z TruePika: hm, I might be able to get away with only rewriting FETCH-TO-STREAM 2016-06-06T16:33:49Z TruePika: FETCH-TO-STRING, the function I generally use, is basically FETCH-TO-STREAM with a bit of additional logic and a stream wrap 2016-06-06T16:34:42Z TruePika: meh, it will be better to depreciate FETCH-TO-STREAM for now and just rewrite FETCH-TO-STRING, since breaking changes will be required 2016-06-06T16:34:58Z TruePika: I don't think I even use FETCH-TO-STREAM anywhere 2016-06-06T16:38:50Z maoeurk quit (Ping timeout: 250 seconds) 2016-06-06T16:39:07Z jsmith_ joined #lisp 2016-06-06T16:43:08Z NeverDie quit (Quit: http://radiux.io/) 2016-06-06T16:44:16Z hhdave quit (Ping timeout: 264 seconds) 2016-06-06T16:44:40Z przl quit (Ping timeout: 272 seconds) 2016-06-06T16:45:27Z shka joined #lisp 2016-06-06T16:45:34Z varjag joined #lisp 2016-06-06T16:51:02Z HeyFlash quit (Ping timeout: 260 seconds) 2016-06-06T16:53:06Z NeverDie joined #lisp 2016-06-06T16:54:08Z warweasle joined #lisp 2016-06-06T16:56:29Z pepton3 joined #lisp 2016-06-06T16:56:55Z puchacz joined #lisp 2016-06-06T16:59:28Z Harag joined #lisp 2016-06-06T17:02:16Z d4ryus_ joined #lisp 2016-06-06T17:02:16Z d4ryus is now known as Guest83816 2016-06-06T17:02:16Z Guest83816 quit (Killed (sinisalo.freenode.net (Nickname regained by services))) 2016-06-06T17:02:16Z d4ryus_ is now known as d4ryus 2016-06-06T17:06:43Z sebboh: You know how on a chessboard, labeled a-h on the columns and 1-8 on the rows. That's a good labeling scheme for grids of any size, because you can stick the row identifier and the column identifier of any given square together(concatenation), in any order, and always be able to separate them (because they are different types). 4f --> f,4. f4 -> f,4. 1000r --> r,1000. See? Now, you can't do that at all if both the rows and columns 2016-06-06T17:06:43Z sebboh: are labeled with integers. 'Cause, would 111 be 11,1 or 1,11? Concatenation doesn't work, information is lost. What operation *does* "work" for this, with integers? 2016-06-06T17:07:00Z IPmonger joined #lisp 2016-06-06T17:07:22Z axion: are there any CL libraries which provide XZ/LZMA2 compression support? 2016-06-06T17:07:37Z sebboh: Sorry, insert "it is" somewhere in the first sentence. 2016-06-06T17:07:47Z TruePika: sebboh: row-major index 2016-06-06T17:07:54Z TruePika: :) 2016-06-06T17:08:23Z dlowe: sebboh: you'd just need disjoint sets for your integers. 2016-06-06T17:08:48Z dlowe: say, columns are odd only and rows are even only 2016-06-06T17:09:06Z sebboh: row-major index? Is that were (on an 8x8... 2,1 would be ... 9? 2016-06-06T17:09:14Z dlowe: or columns are negative and rows are positive 2016-06-06T17:09:18Z TruePika: 1245 <- what are my coords? 2016-06-06T17:09:26Z TruePika: sebboh: yes 2016-06-06T17:09:38Z TruePika: also see ROW-MAJOR-AREF 2016-06-06T17:09:40Z sebboh: TruePika, how big is the field there? 2016-06-06T17:09:47Z TruePika: sebboh: exactly :) 2016-06-06T17:10:02Z TruePika: there can be parse ambuiguities 2016-06-06T17:10:14Z Grue``: sebboh: one set is "integers that are divisible by 10 but not by 100", the other set "integers that are divisible by 100" 2016-06-06T17:10:48Z Grue``: no wait, they also shouldn't have other 0 anywhere 2016-06-06T17:10:50Z sebboh: Grue``, I'd have to pick new numbers if the square got big. 2016-06-06T17:11:14Z sebboh: dlowe, Grue``, aren't primes useful for this in some way? 2016-06-06T17:11:23Z sebboh: I'm not a math person. But I'm a fan. :P 2016-06-06T17:11:28Z TruePika: I'd just row-major it, far simpler 2016-06-06T17:11:29Z emaczen quit (Ping timeout: 244 seconds) 2016-06-06T17:11:32Z IPmonger quit (Ping timeout: 258 seconds) 2016-06-06T17:11:41Z Grue``: primes don't work for sums, and concatenating numbers is a sum 2016-06-06T17:11:58Z TruePika: primes work for products 2016-06-06T17:12:51Z sebboh: TruePika: I'd have to re-number it everytime I added a row. ...Which might be fine. But if I can create a static map that works for arbitrary ... OH, it's always square. I can just count diagonally. Ya know? 1,1 is 1. 1,2 is 2. 2,1 is 3, and so on... 2016-06-06T17:13:50Z Mon_Ouie quit (Ping timeout: 250 seconds) 2016-06-06T17:14:09Z TruePika: sebboh: if you have the issue of resizing, there is no simple solution other than the disjoint sets one 2016-06-06T17:14:21Z TruePika: which isn't _exactly_ simple 2016-06-06T17:14:58Z Bike joined #lisp 2016-06-06T17:15:08Z sebboh: Does that work or am I having a brain fart here? :) TruePika, well the row major thing, but with "diagonal rows", the address of an existing square doesn't change if the thing grows. 2016-06-06T17:15:15Z TruePika: if you consider yourself limited to /[0-9]*/ 2016-06-06T17:15:24Z Grue``: i don't think you'd have to renumber anything with my 0/00 proposal 2016-06-06T17:15:54Z TruePika: sebboh: that actually probably would work 2016-06-06T17:16:06Z TruePika: wait 2016-06-06T17:16:08Z TruePika: no 2016-06-06T17:16:16Z TruePika: that only works with half the board 2016-06-06T17:16:29Z TruePika: the lesser-indexed half 2016-06-06T17:16:33Z atgreen joined #lisp 2016-06-06T17:16:45Z TruePika: because the length of the diagional on the upper-indexed half would change 2016-06-06T17:17:11Z TruePika: BUT if you have one half be positive indexes, and the other be negative... 2016-06-06T17:17:29Z sebboh: Grue`` I don't? well lemme look at it. So column 1 is .. TruePika, double back when you hit a boundary, like s snake. 2016-06-06T17:17:36Z TruePika: hm, then the halfway point might have issues 2016-06-06T17:17:45Z sebboh: s/ s / a / 2016-06-06T17:17:55Z TruePika: or no, it wouldn't 2016-06-06T17:18:17Z TruePika: I'm thinking of the board being mapped to a sort of triangle 2016-06-06T17:18:43Z TruePika: ((0 1 2)(3 4 5)(6 7 8))'s lower index half is ((0 1 2)(3 4)(6)), for instance 2016-06-06T17:18:55Z zacharias quit (Ping timeout: 260 seconds) 2016-06-06T17:19:07Z TruePika: upper index half is (()(5)(7 8)) 2016-06-06T17:19:53Z sebboh: lower index, upper index? Lower=across, upper=down? 2016-06-06T17:20:09Z sebboh: WAit, I didn't just type "upper=down" ... ;P 2016-06-06T17:20:31Z przl joined #lisp 2016-06-06T17:20:43Z TruePika: lower indexes are upper-left half + middle diag, upper indexes are lower-right half 2016-06-06T17:21:02Z TruePika: if lower indexes have positive RM indexes, and upper indexes have negative 2016-06-06T17:21:25Z sebboh: Where is 0,0? Wait I thought we didn't need negatives. 2016-06-06T17:21:30Z TruePika: also no zero index 2016-06-06T17:21:33Z TruePika: heh 2016-06-06T17:21:37Z sebboh: ok, 1,1 then 2016-06-06T17:21:51Z sebboh: hold on lemme fire up emacs and pastebin this 2016-06-06T17:21:55Z TruePika: '4' in the table is at +5, '5' is at -4 2016-06-06T17:22:17Z banjiewen_ joined #lisp 2016-06-06T17:23:08Z PuercoPop: sebboh: Similar to letters and numbers you can use complex numbers to label a grid 2016-06-06T17:23:09Z TruePika: err -3 2016-06-06T17:23:15Z TruePika: PuercoPop: lol 2016-06-06T17:23:15Z PuercoPop: no need to resort to letters 2016-06-06T17:23:34Z banjiewen_ is now known as banjiewen 2016-06-06T17:23:41Z TruePika: clever 2016-06-06T17:25:14Z jasom: http://paste.lisp.org/+6T4P 2016-06-06T17:25:29Z jasom: oops, I typoed that 2016-06-06T17:26:03Z jasom: http://paste.lisp.org/+6T4P/1 <- there's the correct version 2016-06-06T17:26:09Z sebboh: http://paste.lisp.org/+6T4Q 2016-06-06T17:27:25Z sebboh: complex numbers solve the problem by being a different type, the boundary isn't lost when they are stuck together to form a single integer (also, arguably, making them not useful in many situations where you need to store a single integer) 2016-06-06T17:27:54Z sebboh: PuercoPop: oh you said similar to letters+numbers. Yes. :) 2016-06-06T17:28:02Z otjura joined #lisp 2016-06-06T17:29:10Z sebboh: jasom, how did you pick the location for 1,1 (4) ? 2016-06-06T17:29:46Z otjura: what's neatest way to get string out of array with numbers? or integer? 2016-06-06T17:30:01Z jasom: sorry, it was more confusing because 1-indexed; I drew that by hand 2016-06-06T17:30:02Z otjura: I could loop and aref it but meh 2016-06-06T17:30:22Z jasom: the top row should look like 0 1 4 9 (which is an obvious pattern) 2016-06-06T17:30:24Z Bike: "get string out of"? using char-code or what? 2016-06-06T17:30:36Z sebboh: OHH 2016-06-06T17:30:53Z otjura: like #(1 2 3 4 5) => "12345" 2016-06-06T17:30:55Z Bike: code-char, i mean 2016-06-06T17:31:16Z Bike: if they're all single digits, you could do (map 'string #'digit-char-p vector) 2016-06-06T17:31:35Z Bike: er. no, i mixed it up. 2016-06-06T17:31:58Z PuercoPop: jasom: Using complex numbers is simpler to ask, is point A in the same column that point B? Plus it is independent of the grid size 2016-06-06T17:32:26Z jasom: well I jumped in in the middle here; I assumed a compact arrangement was needed? 2016-06-06T17:32:42Z grouzen joined #lisp 2016-06-06T17:32:53Z Bike: (map 'string (lambda (n) (char (write-to-string n) 0)) vector). which is a bit dumb 2016-06-06T17:33:18Z gravicappa joined #lisp 2016-06-06T17:33:18Z otjura: Bike: (map 'string #'digit-char #(1 2 3 4 5)) 2016-06-06T17:33:24Z otjura: seems to work, thanks! 2016-06-06T17:33:32Z Bike: oh. that exists. i forgot. 2016-06-06T17:33:36Z Bike: well, cool. 2016-06-06T17:34:33Z sebboh: jasom, I dunno what compact means. But I think I might like yours best of all, ...QUITE POSSIBLY because it's the first one that a) I'm fully understanding and b) isn't mine. The pastebin helped 2016-06-06T17:34:33Z PuercoPop: jasom: Not sure what is the goal either, just sebboh's comment about the chess grid reminded me of this paper http://home.pipeline.com/~hbaker1/Gaussian.html 2016-06-06T17:35:15Z EvW joined #lisp 2016-06-06T17:35:18Z jasom: sebboh: by compact I meant you don't have holes like row major index "27" doesn't represent any place on the grid ever regardless of size 2016-06-06T17:38:24Z axion: Xach: is there a way to specify the compression level with salza2/gzip? 2016-06-06T17:38:40Z Xach: axion: no. it does the best it can with only one strategy and no tuning. 2016-06-06T17:38:53Z Xach: which is not always very great. 2016-06-06T17:39:20Z axion: Ok. Any plans to support more algorithms in the future? 2016-06-06T17:39:46Z Xach: axion: No free plans. I could be motivated with bucks. Too busy otherwise. 2016-06-06T17:39:53Z axion: Ok :) 2016-06-06T17:41:13Z Xach: Do you have something that needs to be really squished? 2016-06-06T17:41:48Z axion: Yeah 2016-06-06T17:42:18Z sebboh: jasom, http://paste.lisp.org/+6T4P/2 2016-06-06T17:44:07Z Xach: axion: when i've needed that, I've shelled out to gzip -9. 2016-06-06T17:44:19Z sebboh: jasom, isn't mine compact, too though? http://paste.lisp.org/+6T4Q What I don't have for mine, that I do have for yours , is a function X,Y --> I. Though I presume that I could make one, it seems predictable. 2016-06-06T17:44:28Z Xach: axion: I've used salza2 more for on-the-fly image generation, where ffi seemed like a real headache. 2016-06-06T17:44:30Z jasom: yup 2016-06-06T17:44:57Z jasom: sebboh: I was comparing to complex numbers though; that just pushes the question out one level as you then need a compact representation for the complex numbers 2016-06-06T17:46:22Z sebboh: I don't know a lot about complex numbers, but when people speak about them I generally visualize rectangles, cf. line segments for simple numbers. 2016-06-06T17:46:31Z eschatologist joined #lisp 2016-06-06T17:47:04Z jasom: sebboh: I think your formula is wrong 2016-06-06T17:47:08Z sebboh: (don't carry that descriptive text too far, you gotta modify it for negatives, for example) 2016-06-06T17:47:22Z axion: Xach: Aha, I'm interested in compressing huge game assets in my pipeline system, to reduce the distributed game resource size. LZMA seems to be 75% better than salza2 for this. 2016-06-06T17:47:28Z sebboh: jasom, I'll check it... 2016-06-06T17:47:36Z Xach: axion: sensible 2016-06-06T17:48:52Z TruePika: oh...oh my 2016-06-06T17:49:08Z TruePika: heap exhaustion again... 2016-06-06T17:49:10Z TruePika: 32768 bytes available, 5111840 requested. 2016-06-06T17:49:41Z jasom: sebboh: 2,1 yields 5 instead of 7 2016-06-06T17:50:34Z jasom: http://paste.lisp.org/+6T4P/3 2016-06-06T17:51:19Z sebboh: So it does. 2016-06-06T17:51:26Z jsgrant joined #lisp 2016-06-06T17:51:34Z pjb joined #lisp 2016-06-06T17:51:38Z wheelsucker joined #lisp 2016-06-06T17:51:41Z emaczen joined #lisp 2016-06-06T17:51:42Z jasom: my way of thinking is that N,N is just N^2-1 and going up or to the side always goes by 2 once you're there, with an off-by one for one direction 2016-06-06T17:52:01Z Pent joined #lisp 2016-06-06T17:52:04Z przl quit (Ping timeout: 240 seconds) 2016-06-06T17:52:05Z TruePika: I wonder if I can write some debug code to trace some sizes in a hash table which might be related 2016-06-06T17:52:33Z sebboh: lemme play with that for a minute and get back to you. :) 2016-06-06T17:52:48Z Neurostorm joined #lisp 2016-06-06T17:53:14Z jasom: so N,M where N > M is just N^2-2M and N,m where N <= M is nust N^2-2M-1 2016-06-06T17:53:46Z jasom: oh and with a +1 to the row and column for obvious reasons 2016-06-06T17:54:05Z jasom: 0^2-1 is -1 2016-06-06T17:55:29Z kolko joined #lisp 2016-06-06T17:56:01Z TruePika: time to do something which can risk a doublefault 2016-06-06T17:57:24Z jasom: correction N,M where N <= M is M^2-2N-1 2016-06-06T17:58:42Z jasom: actually both those formulas are completely bogus, but my code is correct 2016-06-06T17:59:14Z jasom: N,M where N > M is N^2-2(N-M) and N,M where N <= M is M^2-2(M-N)-1 2016-06-06T17:59:47Z BitPuffin quit (Read error: Connection reset by peer) 2016-06-06T18:02:41Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T18:03:40Z fourier quit (Ping timeout: 240 seconds) 2016-06-06T18:04:31Z sebboh: jasom, ok, I haven't parsed what you wrote yet. But while I was away I did mine on paper and realised that I have no effing idea where to start to make N,M -> A for mine. :) 2016-06-06T18:05:53Z jasom: the last formula I posted should match the code, and both should be correct. The code uses zero-indexed row/columns and the math uses 1 indexed. Note that the code adds one to the row and column in order to match the math 2016-06-06T18:06:39Z sebboh: cool. 2016-06-06T18:07:57Z jasom: and again the way I think about it is that if you one-index the row and column then you see that N,N is always N^2-1 (0,3,8,15...) on the diagonals 2016-06-06T18:09:01Z EvW joined #lisp 2016-06-06T18:09:10Z jasom: and then notice that to go straight across or straight up any row from the diagonal you are stepping by two, except that one of the two must be one higher than the other 2016-06-06T18:10:23Z jokleinn quit (Quit: WeeChat 1.5) 2016-06-06T18:13:16Z jasom: oh, I have a simpler formula for zero-indexed row/columns now too 2016-06-06T18:14:41Z jasom: consider that the top row is the C^2 for a zero indexed row and going down the column up to R=C is always stepping by 2, and similarly going down the first column is R^2+1 2016-06-06T18:15:21Z mvilleneuve joined #lisp 2016-06-06T18:15:31Z jasom: the formula then becomes if R<=C R^2+2C and if C, that I can find a chatroom here that is named #? 2016-06-06T18:41:00Z dreamaddict: most all the dang time? 2016-06-06T18:41:14Z H4ns: dreamaddict: you can discuss _that_ on #freenode, i think. 2016-06-06T18:41:15Z emaczen quit (Ping timeout: 250 seconds) 2016-06-06T18:41:26Z Bike: it varies. whether it's open source, whether they put it on another network, whether they think slack is better... 2016-06-06T18:41:31Z Bike: i just googled "icecast irc" and hey. 2016-06-06T18:41:51Z dreamaddict: also, side note, this room is so far the most helpful room in freenode 2016-06-06T18:42:20Z ragepandemic joined #lisp 2016-06-06T18:42:25Z Xach: Please don't abuse that helpfulness for things that aren't Common Lisp! 2016-06-06T18:42:32Z Xach: (not just you, but anyone reading) 2016-06-06T18:42:46Z Josh_2 joined #lisp 2016-06-06T18:42:47Z sebboh steps back slowly and innocently 2016-06-06T18:42:50Z pjb: dreamaddict: if the application-x is free software, then it's highly probably you'll find #application-x on freenode.org. 2016-06-06T18:42:54Z ragepandemic quit (Client Quit) 2016-06-06T18:42:54Z dreamaddict: ok then! 2016-06-06T18:43:05Z dreamaddict: nice answer there pjb, thank you 2016-06-06T18:43:09Z arbv quit (Read error: Connection reset by peer) 2016-06-06T18:43:15Z pjb: dreamaddict: and if you're the first one, you can always invite other users and developers. 2016-06-06T18:43:35Z arbv joined #lisp 2016-06-06T18:46:16Z pecan doesn't get why DragonFly BSD is on efnet. 2016-06-06T18:49:05Z phoe_krk: pecan: a better question is why Debian got its own IRC network. 2016-06-06T18:49:09Z watersoul quit (Remote host closed the connection) 2016-06-06T18:49:26Z watersoul joined #lisp 2016-06-06T18:49:27Z pecan: Mozilla too. 2016-06-06T18:49:57Z pecan: How many channels does Debian even have, it can't be more than like... not many. 2016-06-06T18:50:00Z xue joined #lisp 2016-06-06T18:50:32Z Carisius joined #lisp 2016-06-06T18:51:20Z eschatologist quit (Ping timeout: 250 seconds) 2016-06-06T18:51:26Z sebboh: I thought OFTC was distinct from Debian. 2016-06-06T18:51:30Z Xach: These are not good questions for #lisp 2016-06-06T18:52:24Z sebboh: Also, knowing debian, I'd say... that either it has something to do with licensing of the software stack on the IRCd servers, or ... that this isn't a #lisp topic.. ahem. 2016-06-06T18:52:48Z pecan: I think the probability of an irc channel getting off-topic is proportional to the number of people who actually care about it being on-topic. 2016-06-06T18:53:25Z sebboh: That pudding contains proof. :) 2016-06-06T18:54:03Z jackdaniel: -> #lispcafe 2016-06-06T18:57:51Z papachan`: pjb hello ! 2016-06-06T18:58:00Z fourier joined #lisp 2016-06-06T18:58:16Z Neurostorm quit (Ping timeout: 249 seconds) 2016-06-06T18:59:22Z sebboh: jasom, compactness is not a necessary trait. 2016-06-06T18:59:27Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T18:59:34Z sebboh: I just discovered. :) 2016-06-06T19:00:24Z nell joined #lisp 2016-06-06T19:04:40Z CEnnis91 quit (Ping timeout: 264 seconds) 2016-06-06T19:04:45Z TruePika: wait a second... 2016-06-06T19:04:48Z TruePika: hmmm 2016-06-06T19:05:21Z TruePika: so I have a queue of 50 strings, which are about 1,000,000 chars each 2016-06-06T19:05:29Z TruePika: SBCL with unicode, so 4 bytes/char 2016-06-06T19:05:53Z TruePika: ~4 MiB * 50 = 200 MiB 2016-06-06T19:06:20Z nell quit (Ping timeout: 240 seconds) 2016-06-06T19:06:21Z CrazyEddy quit (Ping timeout: 240 seconds) 2016-06-06T19:06:34Z CEnnis91 joined #lisp 2016-06-06T19:06:43Z TruePika: or wait I have two queues, and nine additional instances 2016-06-06T19:06:56Z TruePika: so 109*4MiB 2016-06-06T19:07:16Z emaczen joined #lisp 2016-06-06T19:07:19Z TruePika: 436MiB, which seems low 2016-06-06T19:08:37Z TruePika: ~266.4MB across 43,572 strings... 2016-06-06T19:08:46Z TruePika: ...I have no idea why I have that many strings... 2016-06-06T19:09:26Z phoe_krk: Are you sure you are not creating new strings somewhere along the way? 2016-06-06T19:09:31Z TruePika: Strings are the brute of the memory usage, though; ~300MB total 2016-06-06T19:09:39Z phoe_krk: And that you are counting the proper strings? 2016-06-06T19:10:00Z TruePika: The lifetime of the massive data: 2016-06-06T19:10:23Z Neurostorm joined #lisp 2016-06-06T19:10:27Z TruePika: * Large XML or HTML file is downloaded, stored in-memory as string 2016-06-06T19:10:51Z TruePika: * string goes into a queue which has a hard limit of 50 elements; there is a seperate queue for XML and HTML 2016-06-06T19:11:11Z TruePika: * String gets loaded by main thread, removed from queue (only instance should be in main thread) 2016-06-06T19:11:38Z TruePika: * String passed to libxml2, the string itself isn't referred to any further, but the data is in the main thread 2016-06-06T19:12:03Z TruePika: * Data gets processed and possibly added to the database, and then goes out of scope in main thread 2016-06-06T19:12:05Z papachan`: i forget how you get a list from an hashtable 2016-06-06T19:12:15Z papachan`: it was with alexandria? 2016-06-06T19:12:21Z AntiSpamMeta quit (Read error: Connection reset by peer) 2016-06-06T19:12:41Z AntiSpamMeta joined #lisp 2016-06-06T19:12:42Z pbgc quit (Quit: Computer has gone to sleep.) 2016-06-06T19:12:52Z TruePika: also when the data goes out-of-scope, the string with the raw XML/HTML is out-of-scope too 2016-06-06T19:13:30Z phoe_krk: papachan`: either alexandria, or you can leverage MAPHASH. 2016-06-06T19:13:39Z phoe_krk: TruePika: do you GC frequently? 2016-06-06T19:14:01Z IPmonger joined #lisp 2016-06-06T19:14:05Z TruePika: phoe_krk: not manually, but GC goes automatically when an attempt to alloc is made when there isn't enough heap 2016-06-06T19:14:12Z TruePika: it also goes periodically 2016-06-06T19:14:25Z papachan`: phoe_krk maphash? 2016-06-06T19:14:34Z TruePika: clhs maphash 2016-06-06T19:14:34Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_maphas.htm 2016-06-06T19:14:35Z TruePika: ^ 2016-06-06T19:15:44Z TruePika: I just reduced the queues to 20 elements long 2016-06-06T19:15:56Z phoe_krk: papachan`: (let (result) (maphash (lambda (key value) (push (cons key value) result)) hash-table) result) 2016-06-06T19:16:21Z dreamaddict_ joined #lisp 2016-06-06T19:16:21Z phoe_krk: This is a basic variant of hashtable->list. 2016-06-06T19:16:39Z TruePika: I have code in here to run a (room) every 10 iterations, for debug 2016-06-06T19:16:48Z wccoder quit (Remote host closed the connection) 2016-06-06T19:17:00Z dreamaddict quit (Ping timeout: 250 seconds) 2016-06-06T19:17:31Z Opodeldoc joined #lisp 2016-06-06T19:18:07Z optikalmouse joined #lisp 2016-06-06T19:18:28Z IPmonger quit (Ping timeout: 264 seconds) 2016-06-06T19:18:47Z papachan`: got it! thanks 2016-06-06T19:19:12Z przl joined #lisp 2016-06-06T19:19:24Z TruePika: hovering around 50% heap limit 2016-06-06T19:19:51Z optikalmouse: sounds like you've got some javascript in your lisp! 2016-06-06T19:19:53Z TruePika: after a 60% reduction in queue size 2016-06-06T19:19:58Z optikalmouse ducks 2016-06-06T19:20:04Z asc232 quit (Ping timeout: 240 seconds) 2016-06-06T19:21:30Z araujo_ joined #lisp 2016-06-06T19:23:31Z jasom: papachan`: alexandria has both hash-table-alist and hash-table-plist 2016-06-06T19:24:00Z EvW joined #lisp 2016-06-06T19:24:00Z TruePika: does SBCL have a facility to tell how much memory is being used by an object or place? 2016-06-06T19:24:16Z przl quit (Ping timeout: 250 seconds) 2016-06-06T19:24:33Z araujo quit (Ping timeout: 258 seconds) 2016-06-06T19:25:43Z papachan`: it uses maphash under the hood https://github.com/keithj/alexandria/blob/master/hash-tables.lisp#L57-L64 2016-06-06T19:26:12Z xue quit (Ping timeout: 246 seconds) 2016-06-06T19:27:24Z fe[nl]ix: TruePika: no 2016-06-06T19:27:27Z gingerale quit (Remote host closed the connection) 2016-06-06T19:28:24Z paul0 joined #lisp 2016-06-06T19:28:28Z mbrock joined #lisp 2016-06-06T19:29:41Z mvilleneuve quit (Quit: This computer has gone to sleep) 2016-06-06T19:29:47Z ekinmur quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T19:30:07Z mvilleneuve joined #lisp 2016-06-06T19:31:30Z fourier: jackdaniel: thanks, opticl actually does exactly what I wanted - it allows to load image, resize it and save in different format without any problems (and it works in LW without external C libraries) 2016-06-06T19:33:12Z Carisius quit (Ping timeout: 260 seconds) 2016-06-06T19:33:31Z TruePika: Just implemented a hack to reduce the memory usage more 2016-06-06T19:33:38Z asc232 joined #lisp 2016-06-06T19:34:15Z TruePika: sometimes more data needs to be fetched before older data can go in the DB (foreign key constraints), and I just got a crash <_< 2016-06-06T19:34:17Z angavrilov quit (Remote host closed the connection) 2016-06-06T19:34:39Z TruePika: ...what? 2016-06-06T19:34:41Z TruePika: Unrecognized widetag #x69 in reconstitute-object 2016-06-06T19:35:00Z TruePika: hm, from (ROOM) 2016-06-06T19:35:45Z ekinmur joined #lisp 2016-06-06T19:36:17Z tos-1 joined #lisp 2016-06-06T19:39:55Z Neurostorm quit (Read error: Connection reset by peer) 2016-06-06T19:40:06Z eschatologist joined #lisp 2016-06-06T19:47:48Z pbgc joined #lisp 2016-06-06T19:50:38Z warweasle quit (Quit: bye) 2016-06-06T19:51:04Z scymtym quit (Ping timeout: 240 seconds) 2016-06-06T19:51:08Z tristero quit (Quit: tristero) 2016-06-06T19:51:08Z atgreen joined #lisp 2016-06-06T19:55:19Z scottj joined #lisp 2016-06-06T19:55:41Z mvilleneuve quit (Quit: Leaving) 2016-06-06T19:59:46Z arbv quit (Read error: Connection reset by peer) 2016-06-06T20:00:25Z otjura: I'm at my wits end here, this should be simple right? 2016-06-06T20:00:26Z otjura: http://pastebin.com/SFaADqkD 2016-06-06T20:01:02Z otjura: compare chars of two strings and if same char is in same position increase count 2016-06-06T20:01:17Z pjb: otjura: add a print. 2016-06-06T20:01:25Z H4ns: otjura: across gives you the elements of, no indices into the vector 2016-06-06T20:02:21Z pjb: (defun secret= (secret guess) (loop for s across secret for g across guess always (char= s g))) 2016-06-06T20:02:36Z pjb: (secret= "Hello" "Hello") #| --> t |# 2016-06-06T20:04:15Z vlatkoB_ quit (Remote host closed the connection) 2016-06-06T20:05:34Z BlueRavenGT joined #lisp 2016-06-06T20:08:52Z otjura: H4ns: oh.. fixed with (loop for i from 0 to (- (length secret) 1) do 2016-06-06T20:09:32Z otjura: SBCL really needs more plain language errors. ECL had better. 2016-06-06T20:09:38Z TruePika: meh 2016-06-06T20:09:41Z TruePika: Heap exhausted during allocation: 9109504 bytes available, 9175072 requested. 2016-06-06T20:09:42Z loke: Good evening Lisp! 2016-06-06T20:09:50Z TruePika: ...wait, what? 2016-06-06T20:09:58Z TruePika: 9MB?! 2016-06-06T20:10:16Z loke is trying to use MacCLIM 2016-06-06T20:10:35Z loke: Having some troubles... 2016-06-06T20:12:02Z pbgc quit (Quit: Computer has gone to sleep.) 2016-06-06T20:12:21Z TruePika: wow 2.37M 2016-06-06T20:14:02Z TruePika decides to change the queues to instead use a dynamic limit based on the current amount of data 2016-06-06T20:14:47Z TruePika: I think 4Mi characters is enough, that's 16MiB 2016-06-06T20:15:20Z grouzen quit (Ping timeout: 240 seconds) 2016-06-06T20:17:26Z wccoder joined #lisp 2016-06-06T20:18:21Z grimsley joined #lisp 2016-06-06T20:18:57Z TruePika: ofc now I need to design the logic for this limiting 2016-06-06T20:19:09Z TruePika: wait 2016-06-06T20:19:27Z TruePika is fairly sure there's already something in sbcl for this 2016-06-06T20:19:58Z przl joined #lisp 2016-06-06T20:20:08Z TruePika: semaphores 2016-06-06T20:21:09Z pbgc joined #lisp 2016-06-06T20:22:05Z wccoder quit (Ping timeout: 260 seconds) 2016-06-06T20:22:27Z TruePika: can anyone think of any problems with defining a semaphore which has a limit of 2^22? 2016-06-06T20:23:07Z Grue`: otjura: that was a warning, not an error. and it showed what's the problem is before even executing the code. i doubt ECL would've done such type inference in this case 2016-06-06T20:23:48Z ovidnis joined #lisp 2016-06-06T20:23:51Z TMA: TruePika: porting to 8/16-bit platforms; apart from that: none 2016-06-06T20:24:01Z otjura: Grue`: yeah, but that message is completely nonsensical 2016-06-06T20:24:18Z otjura: "conflicting with its asserted type 2016-06-06T20:24:18Z otjura: (MOD 4611686018427387901)" 2016-06-06T20:24:28Z pbgc quit (Client Quit) 2016-06-06T20:24:29Z TruePika: lol 8/16 bit platforms won't have enough memory for this anyway 2016-06-06T20:24:44Z TruePika: given that I exhaust a 1GB heap 2016-06-06T20:24:56Z TruePika: GiB in fact, that's even larger 2016-06-06T20:25:03Z pjb: notice that linux semop is 16-bit (unsigned short). 2016-06-06T20:25:07Z przl quit (Ping timeout: 260 seconds) 2016-06-06T20:25:08Z Grue`: otjura: that's the type for array indexes probably 2016-06-06T20:25:46Z TruePika: well I'll see if I get any issues 2016-06-06T20:25:58Z TruePika: if I do, then I'll just divide sizes 2016-06-06T20:26:22Z pjb: Do you have 2^22 processes waiting on that semaphore? 2016-06-06T20:26:52Z Grue`` quit (Ping timeout: 264 seconds) 2016-06-06T20:27:44Z TruePika: pjb: I'm using it as a limiter for how much data goes into these queues 2016-06-06T20:27:57Z TruePika: value being the amount of free space, in characters 2016-06-06T20:28:17Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T20:28:24Z pjb: Then you cannot have multiple writers, or multiple readers. 2016-06-06T20:28:35Z pjb: It's a waste of semaphore… 2016-06-06T20:29:27Z asc232 quit (Remote host closed the connection) 2016-06-06T20:29:44Z TruePika: or wait, there's CONDITION-WAIT 2016-06-06T20:29:55Z TruePika: which will probably work a bit better 2016-06-06T20:30:10Z pjb: setting it to only 1 would allow you to implement a mutex, which would let you have several readers or writers. 2016-06-06T20:30:29Z TruePika: queue access is already exclusive 2016-06-06T20:30:34Z pjb: and of course, there's condition-wait, or also com.informatimago.clext.pipe 2016-06-06T20:30:47Z H4ns: otjura: it makes perfect sense 2016-06-06T20:30:51Z TruePika: I'm implementing condition-wait 2016-06-06T20:31:27Z TruePika: I'll have extra mutexes, but that doesn't matter right now. I'll optimize later. 2016-06-06T20:31:34Z H4ns: otjura: it is just very specific. what it tells you is that i is a character, not a fixnum index. other implementations would just give you a runtime error. 2016-06-06T20:31:40Z otjura: H4ns: you remember what (MOD 4611686018427387901) means??? 2016-06-06T20:31:43Z TruePika: (queue operations are already atomic with builtin mutex) 2016-06-06T20:32:12Z H4ns: otjura: yes. it means "an integer between 0 and 4611686018427387900" 2016-06-06T20:32:33Z otjura: wow :D 2016-06-06T20:32:39Z TruePika: H4ns: inclusive 2016-06-06T20:32:41Z pjb: or between 4611686018427387900 and 9223372036854775799 2016-06-06T20:32:44Z Grue`: otjura: it makes perfect sense, but only for people with math background ;) 2016-06-06T20:32:47Z pjb: +1 2016-06-06T20:33:02Z H4ns: otjura: it is actually a compiler optimization warning. if you run your program, you'll get a runtime error with a clearer error message, i'd think. 2016-06-06T20:33:11Z H4ns: Grue`: i have zero math background 2016-06-06T20:33:26Z pjb: Nah, it's that misleading but it's specified to be [0 .. n-1] 2016-06-06T20:33:34Z H4ns: just 15 years of common lisp experience :D 2016-06-06T20:33:47Z H4ns: otjura: so yes, granted, the error message is not beginner friendly 2016-06-06T20:33:52Z TruePika: ...I _could_ just use a _single_ limit for both queues together 2016-06-06T20:33:53Z Grue`: that counts as math background too! 2016-06-06T20:34:00Z TruePika: makes things a bit simpler 2016-06-06T20:34:49Z TruePika: I'll limit to 16MiChar = 64MiB 2016-06-06T20:39:13Z Jonsky joined #lisp 2016-06-06T20:39:39Z IPmonger joined #lisp 2016-06-06T20:39:39Z NeverDie quit (Quit: http://radiux.io/) 2016-06-06T20:41:06Z ovidnis quit (Ping timeout: 246 seconds) 2016-06-06T20:42:12Z heddwch is now known as heddweh 2016-06-06T20:46:35Z wccoder joined #lisp 2016-06-06T20:46:36Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T20:47:28Z TruePika: Okay, so now things can only push into the queue if the character length in it either won't get too high when "our" data is added to it, or if it is zero (so an overflow is permitted ONLY if it is empty; this is to prevent deadlocks) 2016-06-06T20:48:53Z hhdave joined #lisp 2016-06-06T20:48:58Z TruePika: This is currently a hack, in that the code is in multiple places and easy to forget. I'll do some restructuring for safety later 2016-06-06T20:49:28Z TruePika: (you update the counter seperate from the queue) 2016-06-06T20:51:09Z hhdave_ joined #lisp 2016-06-06T20:52:18Z atgreen quit (Ping timeout: 272 seconds) 2016-06-06T20:53:05Z ekinmur quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T20:53:25Z hhdave quit (Ping timeout: 250 seconds) 2016-06-06T20:53:25Z hhdave_ is now known as hhdave 2016-06-06T20:56:33Z gravicappa quit (Ping timeout: 240 seconds) 2016-06-06T20:57:49Z ekinmur joined #lisp 2016-06-06T21:03:27Z vaitel quit (Quit: Leaving) 2016-06-06T21:05:06Z grimsley quit (Quit: Leaving) 2016-06-06T21:11:55Z TruePika: lol I think something is "wrong" 2016-06-06T21:12:12Z TruePika: I just watched system load on my VM climb past 8.30 2016-06-06T21:12:19Z TruePika: it only sees a single processor 2016-06-06T21:15:00Z fourier quit (Read error: Connection reset by peer) 2016-06-06T21:15:07Z puchacz quit (Quit: Konversation terminated!) 2016-06-06T21:15:42Z nell joined #lisp 2016-06-06T21:16:56Z joekunin quit (Ping timeout: 250 seconds) 2016-06-06T21:17:08Z TruePika: <_< heap exhausted again 2016-06-06T21:18:05Z test1600_ joined #lisp 2016-06-06T21:18:26Z TruePika: the dynamic queue limits don't help at all, it appears 2016-06-06T21:20:10Z kushal quit (Quit: Leaving) 2016-06-06T21:20:41Z przl joined #lisp 2016-06-06T21:20:52Z pepton3 quit (Ping timeout: 264 seconds) 2016-06-06T21:22:24Z test1600_ quit (Ping timeout: 246 seconds) 2016-06-06T21:22:45Z phoe_krk: I'm constantly getting amazed by Lisp's capabilities. 2016-06-06T21:23:40Z phoe_krk: A simple EVAL-WHEN :EXECUTE and boom, your file behaves differently upon load-time and execution. Namely, one interactive function does not fire. 2016-06-06T21:24:31Z frgo joined #lisp 2016-06-06T21:24:44Z TruePika: I just realised a silly way to reduce memory usage 2016-06-06T21:24:48Z TruePika: possibly 2016-06-06T21:25:41Z przl quit (Ping timeout: 258 seconds) 2016-06-06T21:26:37Z Opodeldoc quit (Quit: Leaving) 2016-06-06T21:26:42Z prion_ quit (Remote host closed the connection) 2016-06-06T21:27:29Z TruePika: clhs optimize 2016-06-06T21:27:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/d_optimi.htm 2016-06-06T21:28:52Z frgo quit (Remote host closed the connection) 2016-06-06T21:29:31Z tos-1 quit (Quit: leaving) 2016-06-06T21:31:26Z rotty quit (Quit: WeeChat 1.6-dev) 2016-06-06T21:32:06Z eschatologist quit (Ping timeout: 250 seconds) 2016-06-06T21:32:28Z rotty joined #lisp 2016-06-06T21:32:49Z Mon_Ouie joined #lisp 2016-06-06T21:34:00Z TruePika: Well I just made it so I get a (ROOM) call after every GC 2016-06-06T21:34:06Z otjura_ joined #lisp 2016-06-06T21:35:13Z TruePika: those strings are really eating at the memory 2016-06-06T21:37:25Z test1600_ joined #lisp 2016-06-06T21:37:27Z otjura quit (Ping timeout: 260 seconds) 2016-06-06T21:39:08Z hhdave quit (Quit: hhdave) 2016-06-06T21:39:27Z wheelsucker quit (Remote host closed the connection) 2016-06-06T21:41:42Z IPmonger joined #lisp 2016-06-06T21:42:00Z emaczen quit (Ping timeout: 240 seconds) 2016-06-06T21:42:31Z otjura_ quit (Quit: Leaving) 2016-06-06T21:44:09Z dreamaddict_: silly question kind of: is there any reason why ? isn't used in symbol names, aside from convention? 2016-06-06T21:44:57Z pjb: no. 2016-06-06T21:44:58Z blub`: just convention 2016-06-06T21:45:08Z blub`: some people use it instead of p 2016-06-06T21:45:08Z dreamaddict_: for example: if I were making custom bindings/libraries, I'd like to use (my-type?) for my predicates instead of (my-typep) or (my-type-p), since a. those seem unintuitive to me and b. I never know which one you are "supposed" to use 2016-06-06T21:45:24Z pjb: Well, also originally lisp had only 6-bit characters. 2016-06-06T21:45:30Z TruePika: (my-type-p) 2016-06-06T21:45:31Z dreamaddict_: ah, there we go 2016-06-06T21:45:48Z blub` is now known as blub 2016-06-06T21:45:50Z phoe_krk: dreamaddict_: convention. CL uses my-type-p kind of predicate naming. 2016-06-06T21:45:57Z AntiSpamMeta quit (Excess Flood) 2016-06-06T21:45:58Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T21:46:15Z pjb: The character set was: 0123456789#="###+ABCDEFGHI%.)###-JKLMNOPQRØ'*### /STUVWXYZ±,(###" (with # denoting unassigned codes) 2016-06-06T21:46:20Z pjb: As you can si, no question mark. 2016-06-06T21:46:24Z pjb: s/si/see/ 2016-06-06T21:46:26Z dreamaddict_: phoe_krk: right...I was wondering if there was a real reason it was like that, and pjb nailed it 2016-06-06T21:47:01Z vydd joined #lisp 2016-06-06T21:47:01Z AntiSpamMeta joined #lisp 2016-06-06T21:47:22Z dreamaddict_: well at least now I know that the dash goes in between the symbol and p 2016-06-06T21:47:35Z pjb: dreamaddict_: it's more complicated. 2016-06-06T21:47:41Z pjb: wordp 2016-06-06T21:47:42Z dreamaddict_: go on... 2016-06-06T21:47:45Z pjb: two-words-p 2016-06-06T21:47:46Z TruePika: is that also why the default capitalization of names, etc. is capital? 2016-06-06T21:48:00Z pjb: but you can also have wordp and qualifier-wordp 2016-06-06T21:48:00Z TruePika: no lowercase chars in charset? 2016-06-06T21:48:08Z pjb: not until recently :-) 2016-06-06T21:48:15Z dreamaddict_: see that's what I am talking about 2016-06-06T21:48:38Z dreamaddict_: I guess every language has quirks 2016-06-06T21:48:49Z pjb: So for example, equalp alpha-char-p but string-lessp 2016-06-06T21:49:02Z dreamaddict_: ok why is that 2016-06-06T21:49:17Z dreamaddict_: why are they screwing with us like that 2016-06-06T21:49:25Z pjb: dreamaddict_: because it's lessp, and then we qualify it with string-lessp, foo-lessp, and bar-lessp. 2016-06-06T21:49:32Z dreamaddict_: ok 2016-06-06T21:49:38Z dreamaddict_: so if a term is originally 2016-06-06T21:50:05Z pjb: But to test whether a charcter is alphabetic, it's alpha-char-p. 2016-06-06T21:50:22Z pjb: dreamaddict_: (string (less p)) vs. ((string less) p) 2016-06-06T21:50:30Z dreamaddict_: if a term is originally "unsplit" (wordp somethingp justhowitisp), then anything that derives from it gets a hyphen: (three-wordp, a-big-somethingp, is-this-even-close-justhowitisp) 2016-06-06T21:50:39Z pjb: If you wanted to test whether your shoe is stringless, you'd use stringless-p 2016-06-06T21:50:52Z pjb: but if you want to test whether a string is less than another, it's string-lessp 2016-06-06T21:51:06Z dreamaddict_: now I know how foreigners feel learning English 2016-06-06T21:51:12Z TruePika: lol pjb 2016-06-06T21:51:17Z pjb: well, I mean, stringlessp vs. string-lessp 2016-06-06T21:51:19Z dreamaddict_: no this is great 2016-06-06T21:51:24Z pjb: since stringless is a single word. 2016-06-06T21:51:36Z pjb: With two words: shoe-stringless-p 2016-06-06T21:51:40Z dreamaddict_: but if I make up my own, I should probably hyphenate the p always 2016-06-06T21:52:00Z phoe_krk: dreamaddict_: the only exception I know is when the predicate is single-word. 2016-06-06T21:52:07Z phoe_krk: Such as yellowp. 2016-06-06T21:52:11Z phoe_krk: In other cases, it's hyphenation. 2016-06-06T21:52:47Z pjb: dreamaddict_: you should not. defstruct uses -p by default, but it has an option to specify the right predicate name (defstruct (stringless (:predicate stringlessp)) thingy) 2016-06-06T21:53:00Z dreamaddict_: ;;; No one wrote this code ever in the history of computing. (deftype my-original-type (blah blah)) (defun my-original-type-p (say-yes-if-my-original-type)) 2016-06-06T21:53:11Z dreamaddict_: ...no... 2016-06-06T21:53:13Z dreamaddict_: jesus 2016-06-06T21:54:33Z dreamaddict_: how about: (deftype originality) (defun originalityp) 2016-06-06T21:55:03Z dreamaddict_: one word, I made it up, but according to the esoteric rules of p that is how to label them...? 2016-06-06T21:55:08Z pjb: (deftype originality () `(integer 0 3)) (defun originalityp (object) (typep object 'originality)) 2016-06-06T21:55:28Z pjb: yes. 2016-06-06T21:55:32Z dreamaddict_: ok 2016-06-06T21:55:42Z dreamaddict_: (deftype original-thought) (defun original-thought-p) 2016-06-06T21:55:46Z dreamaddict_: that is right...? 2016-06-06T21:55:54Z pjb: yes. 2016-06-06T21:55:57Z dreamaddict_: ok 2016-06-06T21:55:59Z phoe_krk: ayup 2016-06-06T21:56:14Z dreamaddict_: that should eliminate at least 80% of the confusion I had about that :P 2016-06-06T21:56:18Z pjb: but thoughtp and well-thoughtp 2016-06-06T21:56:28Z optikalmouse quit (Quit: optikalmouse) 2016-06-06T21:57:08Z ekinmur quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T21:57:33Z pjb: Anyways, good night! 2016-06-06T21:57:43Z dreamaddict_: peace! 2016-06-06T21:58:00Z phoe_krk: Night, me too! 2016-06-06T21:58:05Z pjb quit (Remote host closed the connection) 2016-06-06T21:58:51Z phoe_krk: (deftype originality () '(satisfies originality-p)) (defun originality-p (x) (typep x 'originality)) 2016-06-06T21:59:00Z phoe_krk evaluates, crashes for the night 2016-06-06T21:59:36Z test1600_ quit (Ping timeout: 276 seconds) 2016-06-06T22:00:22Z adolf_stalin quit (Quit: Leaving...) 2016-06-06T22:00:31Z TruePika: You know what, I'm not sure I even _need_ to use queues here 2016-06-06T22:01:17Z TruePika makes some queues with a limit of 1 2016-06-06T22:01:28Z TruePika: or meh, 5 2016-06-06T22:01:34Z scymtym joined #lisp 2016-06-06T22:02:16Z TruePika: Going to definitly have to rewrite this entire function eventually 2016-06-06T22:04:04Z schjetne quit (Ping timeout: 244 seconds) 2016-06-06T22:07:30Z unbalancedparen quit (Quit: WeeChat 1.5) 2016-06-06T22:09:54Z rpg joined #lisp 2016-06-06T22:10:08Z TruePika: I just came up with a different solution, involving fake multithreading of cl-libxml2 via a mutex 2016-06-06T22:11:16Z emaczen joined #lisp 2016-06-06T22:11:41Z TruePika: data is downloaded in a worker thread, held until the mutex becomes availible, and then processed; this way, I'm only holding something like T long long strings in memory, where T is the number of helper threads 2016-06-06T22:12:47Z TruePika: then the processed stuff gets passed to the main thread via a queue, which does DB interaction and queues followup requests (e.g. for foreign key constraints) 2016-06-06T22:14:33Z IPmonger joined #lisp 2016-06-06T22:14:34Z zdm quit (Ping timeout: 250 seconds) 2016-06-06T22:16:38Z LiamH quit (Quit: Leaving.) 2016-06-06T22:21:26Z Mon_Ouie quit (Read error: Connection reset by peer) 2016-06-06T22:21:27Z przl joined #lisp 2016-06-06T22:23:43Z varjag quit (Ping timeout: 244 seconds) 2016-06-06T22:24:57Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T22:25:47Z IPmonger joined #lisp 2016-06-06T22:26:41Z przl quit (Ping timeout: 250 seconds) 2016-06-06T22:27:53Z karswell quit (Read error: Connection reset by peer) 2016-06-06T22:28:45Z karswell joined #lisp 2016-06-06T22:29:07Z paul0 quit (Quit: Leaving) 2016-06-06T22:30:10Z IPmonger quit (Ping timeout: 250 seconds) 2016-06-06T22:30:47Z shka quit (Ping timeout: 244 seconds) 2016-06-06T22:32:16Z dyelar quit (Quit: Leaving.) 2016-06-06T22:34:19Z IPmonger joined #lisp 2016-06-06T22:34:53Z pavelpenev quit (Quit: No Ping reply in 180 seconds.) 2016-06-06T22:35:00Z Jonsky quit (Quit: Time to eat donut) 2016-06-06T22:35:17Z rumbler31 joined #lisp 2016-06-06T22:35:53Z pavelpenev joined #lisp 2016-06-06T22:38:19Z sepi joined #lisp 2016-06-06T22:39:19Z sepi: Is there a way to access the state of a function object bound as a special variable in sbcl? By state I mean default arguments 2016-06-06T22:40:40Z sepi: in lack, there is a *lack-middleware-session* function object that uses this technique to keep http session data in memory. I'd like to inpect it 2016-06-06T22:40:41Z schjetne joined #lisp 2016-06-06T22:41:01Z Josh_2 quit (Remote host closed the connection) 2016-06-06T22:41:02Z stepnem quit (Ping timeout: 260 seconds) 2016-06-06T22:41:12Z IPmonger quit (Ping timeout: 258 seconds) 2016-06-06T22:43:40Z leo_song quit (Ping timeout: 264 seconds) 2016-06-06T22:46:02Z leo_song joined #lisp 2016-06-06T22:46:39Z Bike: that's part of the definition rather than state, and uh... let me see 2016-06-06T22:47:22Z rpg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-06-06T22:47:44Z Bike: it's part of the lambda list. it should be in the function-lambda-expression with a high enough debug. 2016-06-06T22:49:53Z adolf_stalin joined #lisp 2016-06-06T22:51:43Z rpg joined #lisp 2016-06-06T22:52:54Z mishoo_ quit (Ping timeout: 276 seconds) 2016-06-06T22:53:14Z sepi: Bike: hmm, that somehow doesn't include the data: (LACK.MIDDLEWARE.SESSION::APP &KEY :STORE :STATE :KEEP-EMPTY). Although the code has :store initialized with (make-session-store). Maybe my debug isn't high enough then 2016-06-06T22:53:17Z scymtym quit (Ping timeout: 260 seconds) 2016-06-06T22:53:17Z asc232 joined #lisp 2016-06-06T22:53:24Z sepi: should be 3 though 2016-06-06T22:53:49Z mishoo_ joined #lisp 2016-06-06T22:54:02Z Bike: i'm not sure i understand this, and it seems pretty weird 2016-06-06T22:54:34Z sepi: It's not that important. I was mostly curious about the "strange" way to do information hiding. I'm more familiar with having all the in memory data somehow available through special variables. 2016-06-06T22:54:48Z Bike: also, it will be the definition... if afunction has something like the "&key (store (make-memory-store))" i see in sources, make-memory-store will be called every time you call that function without specifying :store 2016-06-06T22:54:52Z Bike: i see it returns a closure. 2016-06-06T22:57:13Z Bike: you can introspect the values from a closure but it's even messier. 2016-06-06T23:00:27Z sepi: ok, I'll keep my hands clean than :) 2016-06-06T23:01:04Z Bike: but just to be clear, the data isn't stored in the default arguments of the function stored in *lack-middleware-session*, it's stored in the closure environment of a function returned by that function. 2016-06-06T23:01:24Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2016-06-06T23:03:53Z karswell quit (Remote host closed the connection) 2016-06-06T23:04:30Z sepi: oh I see. Now I can easily inspect it. Thanks 2016-06-06T23:04:45Z karswell joined #lisp 2016-06-06T23:05:50Z ryan_vw`` joined #lisp 2016-06-06T23:07:52Z ryan_vw` quit (Ping timeout: 260 seconds) 2016-06-06T23:14:02Z eschatologist joined #lisp 2016-06-06T23:15:00Z mishoo_ quit (Ping timeout: 276 seconds) 2016-06-06T23:16:27Z CEnnis91 quit (Quit: Connection closed for inactivity) 2016-06-06T23:17:39Z TruePika: I think the new code is working wonderfully 2016-06-06T23:17:49Z TruePika: I believe my current bottleneck is MySQL 2016-06-06T23:18:15Z TruePika: memory shouldn't climb out of control anymore either 2016-06-06T23:21:43Z EvW joined #lisp 2016-06-06T23:22:11Z przl joined #lisp 2016-06-06T23:25:22Z NeverDie joined #lisp 2016-06-06T23:26:00Z mbrock quit (Quit: Connection closed for inactivity) 2016-06-06T23:26:52Z lemoinem quit (Read error: Connection reset by peer) 2016-06-06T23:27:35Z przl quit (Ping timeout: 260 seconds) 2016-06-06T23:29:04Z vydd quit (Quit: Leaving) 2016-06-06T23:31:49Z lemoinem joined #lisp 2016-06-06T23:32:20Z TruePika: Yeah, seperating the database interaction from the XML/HTML parsing has really sped things up 2016-06-06T23:32:53Z TruePika: XML/HTML parsing can happen pretty much continuously now, as can DB IO 2016-06-06T23:34:17Z TruePika: and only one of those long long strings can exist per thread, and even then only until parsing is complete 2016-06-06T23:42:50Z atgreen joined #lisp 2016-06-06T23:44:32Z asc232 quit (Remote host closed the connection) 2016-06-06T23:47:53Z Pent quit (Quit: Leaving) 2016-06-06T23:49:21Z EvW quit (Ping timeout: 250 seconds) 2016-06-06T23:50:35Z jsmith_ quit (Remote host closed the connection) 2016-06-06T23:54:00Z _sjs quit (Ping timeout: 276 seconds) 2016-06-06T23:55:17Z jsmith_ joined #lisp 2016-06-06T23:55:51Z zRecursive joined #lisp 2016-06-06T23:56:39Z MoALTz joined #lisp 2016-06-06T23:59:25Z jsmith_ quit (Ping timeout: 250 seconds)