2017-08-15T00:00:03Z Bike joined #lisp 2017-08-15T00:00:05Z vtomole joined #lisp 2017-08-15T00:00:06Z gremdrus joined #lisp 2017-08-15T00:01:28Z zooey joined #lisp 2017-08-15T00:01:31Z z3t0 joined #lisp 2017-08-15T00:01:33Z z3t0: hi 2017-08-15T00:01:55Z trn joined #lisp 2017-08-15T00:02:56Z zooey quit (Remote host closed the connection) 2017-08-15T00:03:33Z theBlackDragon joined #lisp 2017-08-15T00:03:33Z gilberth joined #lisp 2017-08-15T00:03:33Z tomaw joined #lisp 2017-08-15T00:03:33Z cpt_nemo joined #lisp 2017-08-15T00:03:33Z isoraqathedh joined #lisp 2017-08-15T00:03:56Z dan64 is now known as Guest78104 2017-08-15T00:03:56Z rann is now known as Guest46105 2017-08-15T00:03:56Z CEnnis91 is now known as Guest9194 2017-08-15T00:03:56Z Patzy is now known as Guest85424 2017-08-15T00:03:56Z chu is now known as Guest81758 2017-08-15T00:03:56Z Bike is now known as Guest68778 2017-08-15T00:03:56Z zymurgy is now known as Guest33228 2017-08-15T00:03:56Z tfb is now known as Guest75134 2017-08-15T00:04:03Z AntiSpamMeta joined #lisp 2017-08-15T00:04:21Z ikopico joined #lisp 2017-08-15T00:04:22Z abel-abel joined #lisp 2017-08-15T00:04:32Z marvin2 quit 2017-08-15T00:04:43Z benny joined #lisp 2017-08-15T00:04:52Z butterthebuddha joined #lisp 2017-08-15T00:05:03Z fsmunoz quit (Ping timeout: 255 seconds) 2017-08-15T00:05:07Z giraffe joined #lisp 2017-08-15T00:05:08Z giraffe is now known as Guest83487 2017-08-15T00:05:19Z kini joined #lisp 2017-08-15T00:05:50Z thinkpad joined #lisp 2017-08-15T00:07:18Z z0d joined #lisp 2017-08-15T00:09:22Z schoppenhauer: is anyone using quicklisp on nixos? is it possible to have an isolated quicklisp-install for a nix-shell? 2017-08-15T00:10:55Z Fare: I'm pretty sure MichaelRaskin has some helpers to import quicklisp packages into nixos already 2017-08-15T00:11:18Z Jach[m] joined #lisp 2017-08-15T00:11:27Z Fare: though I admit I never dug much into it 2017-08-15T00:19:50Z jamtho quit (Ping timeout: 276 seconds) 2017-08-15T00:21:08Z schoppenhauer: I found https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/lisp-modules/from-quicklisp 2017-08-15T00:21:11Z schoppenhauer: but not sure how to use it 2017-08-15T00:21:36Z thorondor[m] joined #lisp 2017-08-15T00:21:36Z Sovereign_Bleak joined #lisp 2017-08-15T00:21:36Z RichardPaulBck[m joined #lisp 2017-08-15T00:21:36Z hiq[m] joined #lisp 2017-08-15T00:21:37Z hdurer[m] joined #lisp 2017-08-15T00:21:37Z ArthurAGleckler[ joined #lisp 2017-08-15T00:21:43Z l04m33[m] joined #lisp 2017-08-15T00:21:44Z astronavt[m] joined #lisp 2017-08-15T00:22:16Z fiddlerwoaroof: I've done a bit of work to prevent asdf/quicklisp from writing to standard directories 2017-08-15T00:22:22Z fiddlerwoaroof: but, I haven't had too much success 2017-08-15T00:23:03Z jasom: fiddlerwoaroof: doh, I'm in Santa Barbara, but Wednesdays are no good 2017-08-15T00:23:44Z fiddlerwoaroof: jasom: that's too bad, Codecraft generally happens the last Wednesday of every month 2017-08-15T00:24:29Z schoppenhauer: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/lisp-modules/README.txt i don't really get this file 2017-08-15T00:25:43Z fiddlerwoaroof: schoppenhauer: here's a builder I've used with some moderate success (Nix / OSX): https://github.com/fiddlerwoaroof/uclip/blob/master/builder.sh 2017-08-15T00:25:52Z jasom: plus, getting to Thousand Oaks by a reasonable time in the evening is ... not so easy. 2017-08-15T00:25:57Z fiddlerwoaroof: Here's the nix file: https://github.com/fiddlerwoaroof/uclip/blob/master/uclip.nix 2017-08-15T00:26:19Z Fare: fiddlerwoaroof, ASDF recognizes the ASDF_OUTPUT_TRANSLATIONS variable 2017-08-15T00:26:44Z jasom: oh, I don't have my laptop with me, but I have a reasonably complete program to generate nix exrpessions from quicklisp 2017-08-15T00:27:07Z Fare: jasom, does it handle C library dependencies? 2017-08-15T00:27:23Z fiddlerwoaroof: Fare: cool, I should try that next time I try this 2017-08-15T00:28:03Z jasom: Fare: yes 2017-08-15T00:28:30Z jasom: Fare: well any dependencies that fail if you quickload it on sbcl 2017-08-15T00:28:40Z schoppenhauer: now I am confused. 2017-08-15T00:29:36Z jasom: Fare: it greps the output of the failure to load; I have manual rules for determining which nix package is needed to resolve the dependency 2017-08-15T00:29:49Z schoppenhauer: fiddlerwoaroof: so what you linked builds a nix-package? 2017-08-15T00:30:16Z Fare: jasom: cool. Can you share your script? 2017-08-15T00:30:24Z Fare: and/or upstream it? 2017-08-15T00:30:40Z jasom: yeah, I got bogged down with life/paid work so haven't gotten it quite finished 2017-08-15T00:30:43Z fiddlerwoaroof: schoppenhauer: the second link is the builder, the first is a shell-script that actually does things 2017-08-15T00:30:56Z fiddlerwoaroof: It's not ideal, though, by a long shot 2017-08-15T00:31:10Z Fare: jasom: does your script deal with executables made with e.g. cl-launch or xach's equivalent? 2017-08-15T00:31:19Z fiddlerwoaroof: I just read a bunch of stuff about nix and this was the shortest path to victory. 2017-08-15T00:31:20Z jasom: here's an autogenerated list of packages that failed to load: https://paste.pound-python.org/show/YqxSEXWKVP0rRoRD6XAw/ 2017-08-15T00:31:23Z jasom: Fare: nope 2017-08-15T00:32:07Z Fare: jasom, cool I don't see workout-timer there -- does that mean you succeeded at loading it? 2017-08-15T00:32:52Z fiddlerwoaroof: fiddlerwoaroof: if you have a shell script that does what you want named "builder.sh" that nix expression might do the right thing :) 2017-08-15T00:33:01Z jasom: Fare: or it wan't in quicklisp last september 2017-08-15T00:34:20Z jasom: Fare: looks like I have a .nix expression for it 2017-08-15T00:34:44Z jasom: but I don't recall what state I left this in. 2017-08-15T00:35:02Z jasom doesn't even remember what the command is to invoke it 2017-08-15T00:35:07Z jasom: oh, and it's currently SBCL only 2017-08-15T00:35:10Z fiddlerwoaroof: nix-build, I think? 2017-08-15T00:35:25Z jasom: fiddlerwoaroof: I meant to invoke my script 2017-08-15T00:35:30Z fiddlerwoaroof: Ah, I see 2017-08-15T00:37:13Z fiddlerwoaroof: If I have a macro that creates a generic function object, will that cause problems at load time? 2017-08-15T00:37:26Z fiddlerwoaroof: I'm always a bit hazy about when I need to think about make-load-form 2017-08-15T00:38:32Z ebzzry_ quit (Ping timeout: 240 seconds) 2017-08-15T00:38:34Z Fare: jasom, schoppenhauer does either of you know how to make nix-copy-closure work between two machines? 2017-08-15T00:38:53Z schoppenhauer: no 2017-08-15T00:38:59Z jasom: Fare: all I know is this: https://nixos.org/nix/manual/#ssec-copy-closure 2017-08-15T00:40:39Z jasom: cl-sat.glucose.build #Invokes curl during build <-- here's a line from the blacklist that is fun... 2017-08-15T00:40:39Z ebzzry_ joined #lisp 2017-08-15T00:42:39Z sz0 quit (Quit: Connection closed for inactivity) 2017-08-15T00:44:36Z fiddlerwoaroof: Hmm, so I think I have to have the macro emit a load-time-value form 2017-08-15T00:45:37Z jasom: fiddlerwoaroof: is there a reason you don't expand to defgeneric? 2017-08-15T00:45:57Z fiddlerwoaroof: Yeah, because the function doesn't have a name 2017-08-15T00:46:29Z fiddlerwoaroof: https://gist.github.com/fiddlerwoaroof/4e34a8c62d3a7426c3711960b8e30698 2017-08-15T00:46:31Z sellout- quit (Quit: Leaving.) 2017-08-15T00:47:44Z Guest68778: wait, why load time value 2017-08-15T00:47:48Z Guest68778 is now known as Bike 2017-08-15T00:48:05Z fiddlerwoaroof: Because I don't think generic functions are externalizable objects 2017-08-15T00:48:18Z Bike is now known as Guest32983 2017-08-15T00:48:20Z Guest32983: they're not, but why do they need to be externalized? 2017-08-15T00:48:29Z Guest32983 is now known as Bok 2017-08-15T00:48:35Z Bok is now known as Boke 2017-08-15T00:49:00Z fiddlerwoaroof: Hmm, maybe I misunderstand how load works 2017-08-15T00:49:14Z Boke: http://sprunge.us/jicE i whipped this up during the netsplit 2017-08-15T00:49:23Z jasom: https://paste.pound-python.org/show/WvGieEO57Ptr3qFHi6aN/ <-- here's my builder.sh; haven't looked at it since September, so I'd have to read it myself to remember how it works 2017-08-15T00:49:29Z Guest9194 quit 2017-08-15T00:49:44Z fiddlerwoaroof: My impression was that a conforming program requires that all the literals be externalizable 2017-08-15T00:49:55Z Boke: well, if you want to externalize it, yes 2017-08-15T00:49:55Z hvxgr quit (Ping timeout: 246 seconds) 2017-08-15T00:50:02Z Boke: but why is that even coming up? you want a gf at compile time? 2017-08-15T00:50:15Z hvxgr joined #lisp 2017-08-15T00:50:17Z fiddlerwoaroof: I just want it to be as generally useful as possible :) 2017-08-15T00:50:17Z CEnnis91 joined #lisp 2017-08-15T00:50:38Z fiddlerwoaroof: I suppose load-time-value would break the lexical environment, though 2017-08-15T00:50:47Z Boke: i don't understand how you even got to that 2017-08-15T00:50:54Z Boke: when you write (lambda ...) in code it doesn't do load time value 2017-08-15T00:50:54Z pillton: Can't this just be done with typecase? 2017-08-15T00:51:05Z jasom: but each lisp dependency has .conf file that adds its input/output rules, so you include those as part of any system that will depend on that one 2017-08-15T00:51:07Z Boke: well, that's the other thing yeah, anonymous gfs aren't super useful 2017-08-15T00:51:16Z pillton: Boke == Bike? 2017-08-15T00:51:46Z Boke: yeah 2017-08-15T00:51:57Z Boke: but now, a japanese jokester 2017-08-15T00:51:58Z z3t0 quit (Ping timeout: 255 seconds) 2017-08-15T00:51:59Z pillton: I can understand the need for lexical methods. 2017-08-15T00:52:00Z fiddlerwoaroof: Boke: my chain of thought was that my macro is producing a generic function object rather than a literal 2017-08-15T00:52:01Z jasom: I had something working that didn't cache the build outputs, but that seemed not nixy enough, so now there are system-wide caches, though IIRC it fallsback to using your home directory if the system-wide caceh fails 2017-08-15T00:52:14Z fiddlerwoaroof: s/literal/list 2017-08-15T00:52:36Z sellout- joined #lisp 2017-08-15T00:52:37Z fiddlerwoaroof: This means that the gf object is a "literal" .: it needs to be externalizable 2017-08-15T00:52:38Z Boke: fiddlerwoaroof: i would assume the macro is expanding to a form that will produce a generic function when evaluated 2017-08-15T00:52:46Z fiddlerwoaroof: Not in the gist 2017-08-15T00:53:02Z Boke: Yes, i mean, that's what I'd expect a macro to do 2017-08-15T00:53:07Z Boke: you're doing something else and i don't know why 2017-08-15T00:53:26Z fiddlerwoaroof: Ah, because I wasn't thinking about it too carefully, I think 2017-08-15T00:53:31Z pillton: There is no need to use load-time-value. 2017-08-15T00:54:28Z fiddlerwoaroof: I've fixed that on my version, I just removed the l-t-v call and quasiquote the call to make-anonymous-generic-function 2017-08-15T00:54:37Z fiddlerwoaroof: s/version/local version/ 2017-08-15T00:54:54Z sjl quit (Ping timeout: 248 seconds) 2017-08-15T00:55:17Z zooey joined #lisp 2017-08-15T00:55:25Z pillton: The class prototype thing in MOP is weird. 2017-08-15T00:55:41Z whoman: gf object 2017-08-15T00:55:43Z fiddlerwoaroof: The gf creation code is more or less copied from AMOP 2017-08-15T00:55:43Z Boke: a little. 2017-08-15T00:55:50Z scymtym quit (Ping timeout: 246 seconds) 2017-08-15T00:55:54Z whoman: gf creation code 2017-08-15T00:56:00Z fiddlerwoaroof: http://metamodular.com/CLOS-MOP/initialization-of-generic-function-and-method-metaobjects.html 2017-08-15T00:56:10Z pillton: I know. 2017-08-15T00:56:34Z Boke: it mainly seems like an odd way to keep dispatching up 2017-08-15T00:56:40Z fiddlerwoaroof: I misread your comment, I think... 2017-08-15T00:56:47Z pillton: I am just saying that the class prototype requirement is weird. 2017-08-15T00:57:40Z pillton: I could understand an instance of the method metaclass. 2017-08-15T00:58:07Z Intensity joined #lisp 2017-08-15T00:58:08Z pillton: Sorry. The object representing the method metaclass. 2017-08-15T00:58:19Z Boke: but then you'd have to use EQL dispatch 2017-08-15T00:58:28Z fiddlerwoaroof: Isn't it just so that the specializer works for subclasses? 2017-08-15T00:58:55Z fiddlerwoaroof: EQL dispatch would mean that the behavior wouldn't be inherited 2017-08-15T00:59:00Z Boke: that's true. 2017-08-15T00:59:35Z fiddlerwoaroof: It's a bit like using class-prototype to get the value of a :class allocated slot 2017-08-15T00:59:59Z pillton: Couldn't you do (defmethod make-method-lambda ((gf standard-generic-function) (m standard-method-class) form))? 2017-08-15T01:00:00Z fiddlerwoaroof: Anyways, I think I have a good use-case for an anonymous gf 2017-08-15T01:00:10Z Boke: what is it? 2017-08-15T01:00:16Z glamas joined #lisp 2017-08-15T01:00:38Z fiddlerwoaroof: I have one generic function that maps over a tree of objects and applies a callback to each 2017-08-15T01:00:38Z brendos joined #lisp 2017-08-15T01:00:53Z Boke: pillton: there is no standard-method-class, is there? 2017-08-15T01:01:07Z fiddlerwoaroof: The anonymous gf provides a nice-ish syntax for dispatching on the class of each object in the tree 2017-08-15T01:01:23Z Boke: but you can just use typecase. 2017-08-15T01:01:42Z fiddlerwoaroof: Sure, but that doesn't allow for things like :around or :after 2017-08-15T01:01:51Z pillton: Boke: Oh. You are right. 2017-08-15T01:02:06Z fiddlerwoaroof: I dunno, I just like the way methods compose in generic functions, really 2017-08-15T01:02:22Z fiddlerwoaroof: In some situations, it feels cleaner than the equivalent typecase 2017-08-15T01:03:03Z fiddlerwoaroof: We'll see how I feel about this in a year, though :) 2017-08-15T01:06:35Z pillton: I think it is going to be hard sell. 2017-08-15T01:07:03Z fiddlerwoaroof: The great thing is that I'm writing this code for myself :) 2017-08-15T01:07:58Z pillton: Sure. That is why I like common lisp i.e. there is no god group to stop you from blowing your feet off. 2017-08-15T01:10:25Z krasnal quit (Ping timeout: 255 seconds) 2017-08-15T01:12:22Z krasnal joined #lisp 2017-08-15T01:15:18Z phadthai_ is now known as phadthai 2017-08-15T01:20:10Z quazimodo joined #lisp 2017-08-15T01:24:50Z abel-abel quit (Quit: abel-abel) 2017-08-15T01:27:47Z doesthiswork joined #lisp 2017-08-15T01:30:57Z LooneyTunes joined #lisp 2017-08-15T01:32:39Z sjl joined #lisp 2017-08-15T01:38:41Z rumbler31 joined #lisp 2017-08-15T01:39:22Z anticrisis quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2017-08-15T01:40:57Z sjl quit (Ping timeout: 240 seconds) 2017-08-15T01:41:40Z fiddlerwoaroof: There are other things I'd like... like locally imported symbols :) 2017-08-15T01:42:05Z MrBismuth joined #lisp 2017-08-15T01:42:11Z fiddlerwoaroof: e.g. something like (with-imported-symbols (packag:symbol1 package:symbol2) (+ symbol1 symbol2)) 2017-08-15T01:42:29Z fiddlerwoaroof: But, I think that that might be a bit too confusing 2017-08-15T01:42:41Z Boke: macros affecting how forms in them are read doesn't make sense with the reader separation that exists 2017-08-15T01:44:50Z MrBusiness quit (Ping timeout: 246 seconds) 2017-08-15T01:44:52Z groovy2shoes joined #lisp 2017-08-15T01:45:21Z pillton: There are package local nicknames: http://www.sbcl.org/manual/index.html#Package_002dLocal-Nicknames 2017-08-15T01:45:25Z sjl joined #lisp 2017-08-15T01:45:27Z pillton: I think ECL supports them now too. 2017-08-15T01:46:32Z whoman: hm 2017-08-15T01:47:16Z aeth: What about CCL? If something is supported by SBCL, CCL, and ECL it's practically a standard. 2017-08-15T01:47:33Z fiddlerwoaroof: :) 2017-08-15T01:47:45Z whoman: there it is 2017-08-15T01:48:20Z fiddlerwoaroof: http://www.cliki.net/cl-package-aliases 2017-08-15T01:48:33Z rngoodn quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-08-15T01:49:44Z rngoodn joined #lisp 2017-08-15T01:51:45Z Fare: fiddlerwoaroof, I also have rename-packages 2017-08-15T01:52:15Z DingoSaar quit (Remote host closed the connection) 2017-08-15T01:52:39Z Fare: I mean, package-renaming 2017-08-15T01:53:31Z epony joined #lisp 2017-08-15T01:54:15Z vtomole: How strict is clhs on what counts as a standard? What I'm trying to ask: when is a implementation not considered to be common lisp? 2017-08-15T01:55:07Z pillton: clhs 1.5 2017-08-15T01:55:08Z specbot: Conformance: http://www.lispworks.com/reference/HyperSpec/Body/01_e.htm 2017-08-15T01:58:48Z aeth: Afaik, though, it's hard to violate the standard by *adding* things. 2017-08-15T02:03:22Z vtomole: So if *theoretically* There was a set of procedures that CL programmers used a lot. Now if these programmer were tired of doing (load "utilities.lisp") on all their programs; if this utilities.lisp was added to SBCL. Will SBCL still be conforming? 2017-08-15T02:03:33Z vtomole: programmers 2017-08-15T02:04:06Z aeth: sb-ext 2017-08-15T02:04:08Z aeth: and some other things 2017-08-15T02:04:37Z aeth: A lot of de facto standards already exist, generally handled by portability libraries like cffi, bordeaux-threads, closer-mop, etc. 2017-08-15T02:04:39Z Boke: yeah, that kind of already hapepned. 2017-08-15T02:05:20Z Boke: the point of the standard is to let programs run across implementations. an implementation having extra stuff doesn't mess w/that. 2017-08-15T02:05:29Z aeth: That's what i mean by 'practically a standard". Things that are supported by most if not all of the popular implementations are de facto standards. 2017-08-15T02:05:40Z vtomole: Ah here we go: http://www.sbcl.org/manual/#ANSI-Conformance 2017-08-15T02:06:02Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T02:09:00Z krasnal joined #lisp 2017-08-15T02:13:03Z broccolistem joined #lisp 2017-08-15T02:14:25Z warweasle quit (Ping timeout: 240 seconds) 2017-08-15T02:19:31Z PuercoPop: in sb-int: there are also some utility functions that you can find elsewhere, like with-unique-names and binding*, which is in the spirit of metabang-bind 2017-08-15T02:19:49Z sellout- quit (Quit: Leaving.) 2017-08-15T02:21:31Z Boke: aint sposeda use those 2017-08-15T02:22:14Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T02:23:01Z krasnal joined #lisp 2017-08-15T02:23:04Z Fare: PuercoPop, nest has replaced metabang-bind for me 2017-08-15T02:25:46Z PuercoPop: Fare: uiop:nest was about reducing the nesting so the code only right? TBH I just use vanilla constructs, never bothered me enough to load something like metabang-bind 2017-08-15T02:27:55Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T02:28:17Z krasnal joined #lisp 2017-08-15T02:37:26Z mson quit (Quit: Connection closed for inactivity) 2017-08-15T02:39:58Z krasnal quit (Ping timeout: 248 seconds) 2017-08-15T02:40:23Z glamas quit (Remote host closed the connection) 2017-08-15T02:40:26Z krasnal joined #lisp 2017-08-15T02:40:50Z pjb quit (Remote host closed the connection) 2017-08-15T02:40:55Z damke_ joined #lisp 2017-08-15T02:41:07Z eschatologist quit (Quit: ZNC 1.6.4+deb1 - http://znc.in) 2017-08-15T02:46:27Z broccolistem quit (Ping timeout: 240 seconds) 2017-08-15T02:47:42Z eschatologist joined #lisp 2017-08-15T02:48:14Z krasnal quit (Ping timeout: 260 seconds) 2017-08-15T02:48:30Z neoncontrails quit (Remote host closed the connection) 2017-08-15T02:48:40Z krasnal joined #lisp 2017-08-15T02:49:09Z glamas joined #lisp 2017-08-15T02:49:17Z neoncontrails joined #lisp 2017-08-15T02:49:31Z aeth: The only thing that really bothers me is multiple-value-bind. I don't feel like adding a whole library to deal with it, though. 2017-08-15T02:49:46Z neoncontrails quit (Remote host closed the connection) 2017-08-15T02:50:22Z neoncontrails joined #lisp 2017-08-15T02:54:12Z neoncont_ joined #lisp 2017-08-15T02:54:34Z neoncontrails quit (Ping timeout: 240 seconds) 2017-08-15T03:07:33Z sjl quit (Ping timeout: 240 seconds) 2017-08-15T03:15:04Z sellout- joined #lisp 2017-08-15T03:16:58Z beach: Good morning everyone! 2017-08-15T03:17:58Z razieliyo joined #lisp 2017-08-15T03:22:29Z flazh quit (Ping timeout: 246 seconds) 2017-08-15T03:23:40Z sjl joined #lisp 2017-08-15T03:27:26Z schoppenhauer quit (Ping timeout: 248 seconds) 2017-08-15T03:29:15Z schoppenhauer joined #lisp 2017-08-15T03:34:07Z damke joined #lisp 2017-08-15T03:35:58Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T03:39:20Z damke_ joined #lisp 2017-08-15T03:40:44Z razieliyo quit (Ping timeout: 260 seconds) 2017-08-15T03:40:58Z damke quit (Ping timeout: 240 seconds) 2017-08-15T03:43:31Z fiddlerwoaroof: morning beach 2017-08-15T03:49:14Z test1600 joined #lisp 2017-08-15T03:50:27Z vtomole quit (Ping timeout: 260 seconds) 2017-08-15T03:51:43Z neoncont_ quit (Remote host closed the connection) 2017-08-15T03:52:14Z krasnal quit (Ping timeout: 246 seconds) 2017-08-15T03:52:17Z neoncontrails joined #lisp 2017-08-15T03:52:25Z Fare: PuercoPop, yes: instead of reinventing all the binding forms, badly, to fit them into a mother-of-all form bind, just use the actual form, inside a nest. 2017-08-15T03:54:27Z dieggsy quit (Ping timeout: 240 seconds) 2017-08-15T03:54:33Z neoncont_ joined #lisp 2017-08-15T03:56:23Z krasnal joined #lisp 2017-08-15T03:56:28Z neoncontrails quit (Ping timeout: 246 seconds) 2017-08-15T03:57:24Z fiddlerwoaroof: Yeah, I'm really not a fan of things like uiop:nest 2017-08-15T03:57:50Z fiddlerwoaroof: Clojure tried this with the threading macros and, all they do is obfuscate the structure of your code 2017-08-15T04:01:18Z wooden quit (Read error: Connection reset by peer) 2017-08-15T04:02:03Z damke joined #lisp 2017-08-15T04:03:12Z wooden joined #lisp 2017-08-15T04:03:18Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T04:05:46Z PuercoPop: fiddlerwoaroof: how is uiop:nest similar to ->? One is for point-free programming 2017-08-15T04:06:11Z rngoodn quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-08-15T04:06:28Z PuercoPop: (threading macros jumped the shark when they have names like 'diamond wand' 2017-08-15T04:06:41Z rjeli quit (Ping timeout: 276 seconds) 2017-08-15T04:07:47Z jasom: so apparently I had left my ql2nix script in a state where I had just added support for lisps other than sbcl ... A quick 1 line change and it can handle systems that pass on some, but not all implementations. Still running now with 365 systems generated (it's *very* slow). 2017-08-15T04:10:22Z glamas quit (Remote host closed the connection) 2017-08-15T04:10:58Z rngoodn joined #lisp 2017-08-15T04:11:38Z rjeli joined #lisp 2017-08-15T04:14:21Z Boke quit (Ping timeout: 255 seconds) 2017-08-15T04:17:15Z pjb joined #lisp 2017-08-15T04:19:49Z c02y joined #lisp 2017-08-15T04:19:49Z c02y quit (Client Quit) 2017-08-15T04:20:10Z flazh joined #lisp 2017-08-15T04:21:05Z c02y joined #lisp 2017-08-15T04:21:31Z c02y quit (Client Quit) 2017-08-15T04:23:57Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T04:24:09Z glamas joined #lisp 2017-08-15T04:24:20Z krasnal joined #lisp 2017-08-15T04:28:36Z oleo joined #lisp 2017-08-15T04:34:06Z krasnal quit (Ping timeout: 248 seconds) 2017-08-15T04:34:29Z krasnal joined #lisp 2017-08-15T04:37:22Z glamas quit (Remote host closed the connection) 2017-08-15T04:37:32Z SlashLife quit (Ping timeout: 240 seconds) 2017-08-15T04:38:04Z djeis joined #lisp 2017-08-15T04:38:16Z SlashLife joined #lisp 2017-08-15T04:40:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T04:40:37Z krasnal joined #lisp 2017-08-15T04:45:34Z fiddlerwoaroof: PuercoPop: (->> (a b c) (d e f) (g h i)) turns into (a b c (d e f (g h i))) 2017-08-15T04:46:04Z fiddlerwoaroof: The difference is that (->> (a b c) d (e f g)) turns into (a b c (d (e f g))) 2017-08-15T04:46:15Z fiddlerwoaroof: i.e. non-lists get coerced to lists 2017-08-15T04:49:18Z jasom: also it looks like my dependency calculation needs improvements; I seem to miss dependencies in some projects (all of which so far appear to be using package-inferred systems) 2017-08-15T04:50:20Z rngoodn quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-08-15T04:51:16Z jasom: ah, I'm just reusing ql's DB which doesn't handle package-inferred systems, but rather resolves those at runtime... I can do the same I suppose. 2017-08-15T04:56:57Z abel-abel joined #lisp 2017-08-15T04:57:30Z PuercoPop: fiddlerwoaroof: But what does have to do with uoip:nest? 2017-08-15T04:58:07Z Tarap quit (Ping timeout: 240 seconds) 2017-08-15T05:00:14Z krasnal quit (Ping timeout: 248 seconds) 2017-08-15T05:00:37Z krasnal joined #lisp 2017-08-15T05:01:44Z Tarap joined #lisp 2017-08-15T05:01:54Z loke: Hello Lisp! 2017-08-15T05:06:06Z krasnal quit (Ping timeout: 248 seconds) 2017-08-15T05:06:10Z oleo quit (Quit: irc client terminated!) 2017-08-15T05:06:32Z krasnal joined #lisp 2017-08-15T05:11:53Z edgar-rft: loke: did you get an answer from your Lisp? 2017-08-15T05:12:02Z vtomole joined #lisp 2017-08-15T05:12:06Z beach: Hello loke. 2017-08-15T05:12:27Z Bock joined #lisp 2017-08-15T05:14:04Z glamas joined #lisp 2017-08-15T05:15:47Z Tarap quit (Read error: Connection reset by peer) 2017-08-15T05:15:50Z bgg_ joined #lisp 2017-08-15T05:18:57Z glamas quit (Ping timeout: 240 seconds) 2017-08-15T05:19:17Z al-damiri quit (Quit: Connection closed for inactivity) 2017-08-15T05:20:14Z doesthiswork quit (Quit: Leaving.) 2017-08-15T05:22:29Z fiddlerwoaroof: PuercoPop: (uiop:nest (a b c) (d e f) (g h i)) turns into (a b c (d e f (g h i))) 2017-08-15T05:22:33Z fiddlerwoaroof: it works exactly like ->> 2017-08-15T05:23:04Z fiddlerwoaroof: except it doesn't coerce values to lists 2017-08-15T05:23:38Z fiddlerwoaroof: Hmm, I guess ->> also reverses the argument list, interesting 2017-08-15T05:24:00Z safe quit (Quit: Leaving) 2017-08-15T05:24:02Z fiddlerwoaroof: (->> (a b c) (d e f) (g h i)) becomes (g h i (d e f (a b c))) 2017-08-15T05:24:14Z bgg_ quit (Ping timeout: 248 seconds) 2017-08-15T05:27:52Z fiddlerwoaroof: Still, I have the same problem with both: they obscure the structure of the code 2017-08-15T05:29:35Z nsrahmad joined #lisp 2017-08-15T05:32:25Z AxelAlex joined #lisp 2017-08-15T05:38:02Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T05:38:24Z Guest33228 quit (Quit: WeeChat 1.4) 2017-08-15T05:38:28Z krasnal joined #lisp 2017-08-15T05:38:37Z zymurgy joined #lisp 2017-08-15T05:39:27Z BlueRavenGT quit (Ping timeout: 240 seconds) 2017-08-15T05:51:34Z Karl_Dscc joined #lisp 2017-08-15T06:03:01Z krasnal quit (Ping timeout: 276 seconds) 2017-08-15T06:03:25Z krasnal joined #lisp 2017-08-15T06:10:27Z quazimodo quit (Ping timeout: 240 seconds) 2017-08-15T06:10:53Z nsrahmad quit (Ping timeout: 240 seconds) 2017-08-15T06:10:56Z flamebeard joined #lisp 2017-08-15T06:10:59Z glamas joined #lisp 2017-08-15T06:14:43Z Karl_Dscc quit (Remote host closed the connection) 2017-08-15T06:18:42Z Guest46105 quit 2017-08-15T06:20:20Z Guest46105 joined #lisp 2017-08-15T06:20:45Z Guest46105 quit (Client Quit) 2017-08-15T06:21:18Z megalography joined #lisp 2017-08-15T06:26:47Z kozy quit (Remote host closed the connection) 2017-08-15T06:27:55Z rann joined #lisp 2017-08-15T06:28:32Z vtomole quit (Ping timeout: 260 seconds) 2017-08-15T06:30:39Z kozy joined #lisp 2017-08-15T06:46:57Z anticrisis joined #lisp 2017-08-15T06:47:24Z shka joined #lisp 2017-08-15T06:54:57Z LooneyTunes quit (Remote host closed the connection) 2017-08-15T06:57:26Z LooneyTunes joined #lisp 2017-08-15T06:57:57Z ebzzry_ quit (Ping timeout: 240 seconds) 2017-08-15T07:01:32Z damke_ joined #lisp 2017-08-15T07:01:33Z akkad quit (Quit: Emacs must have died) 2017-08-15T07:03:26Z whoman quit (Ping timeout: 248 seconds) 2017-08-15T07:03:58Z damke quit (Ping timeout: 240 seconds) 2017-08-15T07:10:24Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T07:10:49Z krasnal joined #lisp 2017-08-15T07:11:25Z beach quit (Ping timeout: 240 seconds) 2017-08-15T07:12:34Z akkad joined #lisp 2017-08-15T07:12:38Z neoncont_ quit (Remote host closed the connection) 2017-08-15T07:12:52Z FreeBirdLjj joined #lisp 2017-08-15T07:13:14Z neoncontrails joined #lisp 2017-08-15T07:16:53Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2017-08-15T07:17:22Z neoncontrails quit (Ping timeout: 246 seconds) 2017-08-15T07:18:19Z krasnal quit (Ping timeout: 260 seconds) 2017-08-15T07:18:41Z krasnal joined #lisp 2017-08-15T07:23:25Z beach joined #lisp 2017-08-15T07:24:24Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T07:24:51Z krasnal joined #lisp 2017-08-15T07:25:07Z varjag joined #lisp 2017-08-15T07:29:24Z schweers joined #lisp 2017-08-15T07:35:00Z narendraj9 joined #lisp 2017-08-15T07:35:32Z LooneyTunes quit (Ping timeout: 246 seconds) 2017-08-15T07:35:44Z damke joined #lisp 2017-08-15T07:36:48Z mishoo_ joined #lisp 2017-08-15T07:36:57Z Guest85424 quit (Quit: leaving) 2017-08-15T07:37:07Z Patzy joined #lisp 2017-08-15T07:37:38Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T07:39:02Z sdemarre quit (Ping timeout: 240 seconds) 2017-08-15T07:42:28Z ym quit (Ping timeout: 276 seconds) 2017-08-15T07:44:24Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T07:44:49Z krasnal joined #lisp 2017-08-15T07:45:25Z nirved joined #lisp 2017-08-15T07:54:43Z scymtym joined #lisp 2017-08-15T07:57:39Z sdemarre joined #lisp 2017-08-15T07:57:55Z malice: Is there a way to see how many times has a concrete quicklisp project been downloaded? 2017-08-15T07:58:01Z malice: I've only found top 100 on Xach's blog 2017-08-15T07:58:13Z malice: (or rather Quicklisp News blog) 2017-08-15T07:59:10Z phoe: malice: I think you need to poke him directly. He always only uploads information about the top 100. 2017-08-15T07:59:11Z shka: malice: asking zach i guess 2017-08-15T07:59:20Z malice: I see. 2017-08-15T07:59:34Z damke_ joined #lisp 2017-08-15T08:00:38Z damke quit (Ping timeout: 240 seconds) 2017-08-15T08:01:25Z angavrilov joined #lisp 2017-08-15T08:06:24Z phoe: anyone up for cooperatively making a set of CL solutions to https://github.com/iiitv/algos ? 2017-08-15T08:06:46Z phoe: let's do some good ol' advocacy, dagnabbit 2017-08-15T08:09:28Z anticrisis quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2017-08-15T08:09:31Z beach: The C implementation makes more comparisons than necessary. 2017-08-15T08:09:46Z beach: Both the recursive one and the iterative one. 2017-08-15T08:09:56Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T08:10:05Z beach: Same for the Java one. 2017-08-15T08:10:20Z beach: Same for Python. 2017-08-15T08:10:42Z beach: Same for Javascript. 2017-08-15T08:10:59Z beach: Same for go. 2017-08-15T08:11:08Z beach: So you can do better if you do it right. 2017-08-15T08:11:46Z loke: beach: Which algorithm were you looking at? 2017-08-15T08:11:47Z beach: They all start by testing for equality with the middle element. That increases the number of tests by (as I recall) 20% on the average. 2017-08-15T08:11:56Z beach: Binary search. 2017-08-15T08:11:58Z beach: Sorry. 2017-08-15T08:12:33Z beach: This is a very good example of the fact that 75% of the algorithms published in literature are wrong. 2017-08-15T08:12:34Z loke: beach: Ah yes. Even I see that mistake. 2017-08-15T08:12:43Z loke: beach: And I'm not even an expert in the firle.d 2017-08-15T08:12:44Z loke: field. 2017-08-15T08:12:59Z beach: This is also how it is taught at many universities. 2017-08-15T08:13:02Z beach: Very sad. 2017-08-15T08:14:09Z krasnal joined #lisp 2017-08-15T08:15:35Z malice: phoe: well, trie is present as cl-trie 2017-08-15T08:15:45Z malice: and well-documented, too! 2017-08-15T08:15:59Z phoe: malice: so what do we do? fork it and start adding CL stuff? 2017-08-15T08:16:16Z phoe: malice: except I doubt that you can use external libraries there. 2017-08-15T08:16:36Z phoe: It wouldn't be an exercise if, speaking Python, you could just do "from future import antigravity". 2017-08-15T08:16:48Z malice: Oh, you mean that you'd like to add CL solutions there 2017-08-15T08:16:54Z shka: heh 2017-08-15T08:17:05Z phoe: malice: yep. 2017-08-15T08:17:11Z malice: Well, this is pointless. 2017-08-15T08:17:13Z malice: Why would you? 2017-08-15T08:17:14Z shka: i would post link to cl-data-structures, but beach is here and i am scared ;-) 2017-08-15T08:17:25Z phoe: malice: good old Lisp advocacy 2017-08-15T08:17:33Z malice: I mean, no one would use it there anyway. 2017-08-15T08:17:45Z malice: No way I'm forking a 5-language repo just to get some Lisp code. 2017-08-15T08:17:56Z phoe shrug 2017-08-15T08:17:56Z malice: It'd probably be stale at the time of adding, too. 2017-08-15T08:18:24Z malice: And if you want to make some things the right way, you need more code. cl-trie has more than one file, so that it's organized properly. 2017-08-15T08:18:26Z beach: I tend to agree with malice. 2017-08-15T08:19:16Z malice: Plus you missed the header 2017-08-15T08:19:18Z beach: If it amuses anyone, sure go ahead, bit it won't change anything. 2017-08-15T08:19:32Z malice: "Popular algorithms and data structures implemented in POPULAR languages" 2017-08-15T08:19:41Z shka: well, this time can be used better 2017-08-15T08:19:42Z malice: No place for this esoteric and dead lisp! :) 2017-08-15T08:19:48Z shka: so screw it 2017-08-15T08:19:50Z Shinmera: I advocate spending time making cool shit 2017-08-15T08:19:55Z malice: ^ 2017-08-15T08:20:07Z shka: ah, right 2017-08-15T08:20:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T08:20:17Z schweers: C++ is still popular? 2017-08-15T08:20:18Z malice: I mean, Go has most of the solutions out of all languages 2017-08-15T08:20:19Z schweers ducks 2017-08-15T08:20:27Z malice: And I'm not convinced to use it one bit. 2017-08-15T08:20:38Z malice: So adding CL won't convince anyone too. 2017-08-15T08:20:45Z krasnal joined #lisp 2017-08-15T08:20:50Z shka: so guys, i have almost good sequence graph drawning code 2017-08-15T08:21:00Z malice: Though if you need something, like BST or Trie or anything, feel free to implement yourself or contribute to existing projects. 2017-08-15T08:21:22Z malice: (also I was wrong with Go; it was Java) 2017-08-15T08:21:47Z ecraven: does anyone here have any experience with EuLisp? was it actually any good? 2017-08-15T08:22:22Z beach: malice: I totally agree. But it's worse, because it is risky. If a Lisper who has insufficient knowledge about algorithms contributes a bad solution, Common Lisp will look even worse. 2017-08-15T08:22:35Z malice: Right. 2017-08-15T08:22:44Z Shinmera: ecraven: Even if there is, it's hard to evaluate a language like that. 2017-08-15T08:22:53Z malice: Although I must say that the other thing can happen too. 2017-08-15T08:23:17Z Shinmera: Also: first year university class algorithms are friggen boring. 2017-08-15T08:23:25Z shka: anyway 2017-08-15T08:23:39Z malice: I've seen some repo which had code to parse json data, and CL was there too - I believe it was written by pjb, but I might be wrong. 2017-08-15T08:23:46Z shka: beach: so, how this damn binary search should looks like? 2017-08-15T08:24:07Z malice: I really liked the fact that CL was not only fast, but used reader macros to bring json to language and then just READ it :) 2017-08-15T08:24:41Z ecraven: Shinmera: of course, but if someone has actually used it and there were really obvious problems, that's saying something. 2017-08-15T08:25:28Z pjb: malice: I don't remember a json thingy in CL. I did one in bash :-) 2017-08-15T08:25:28Z beach: shka: http://metamodular.com/binary-search.pdf 2017-08-15T08:25:43Z pjb: malice: there are already at least 3 json libs in quicklisp… 2017-08-15T08:26:19Z beach: shka: It should test for equality only when there is a single element left. 2017-08-15T08:26:30Z shka: ah, right 2017-08-15T08:26:34Z shka: now i remember 2017-08-15T08:26:47Z shka: you are looking for lower bound first 2017-08-15T08:27:03Z beach: You check for < 2017-08-15T08:27:15Z beach: If true, exclude middle, search lower part. 2017-08-15T08:27:30Z beach: If false, include middle and search upper part. 2017-08-15T08:27:52Z beach: Only when there is a single element left, check for equality. 2017-08-15T08:28:11Z shka: yeah, i see know 2017-08-15T08:28:44Z beach: It is truly amazing to me how so many smart people can get such a simple thing wrong. 2017-08-15T08:29:00Z malice: pjb: I believe it might have been some benchmark, because there were many languages available. It wasn't library by all means. Also sorry for being wrong. 2017-08-15T08:29:20Z beach: I can only imagine in how many ways and by how many people more complicated algorithms are wrong. 2017-08-15T08:31:07Z jasom: beach: 2 out of top 3 hits on google for binary search get it wrong (wikipedia gets it right) 2017-08-15T08:31:15Z Shinmera: beach: There's more to get wrong if you use a language with restricted counter indices (eg int). See https://research.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html and others. 2017-08-15T08:31:31Z beach: jasom: Good for Wikipedia! 2017-08-15T08:31:45Z malice: beach: well, I belive Java's binary search has been broken for some long time 2017-08-15T08:32:05Z shka: how? 2017-08-15T08:32:14Z krasnal quit (Ping timeout: 246 seconds) 2017-08-15T08:32:17Z beach: Shinmera: Thanks for the link. Reading... 2017-08-15T08:32:21Z malice: I don't remember, the story was quite famous for some time, but I believe that it didn't work for some big numbers? 2017-08-15T08:32:24Z malice: Googling right now 2017-08-15T08:32:33Z Shinmera: malice: that's what I just linked. 2017-08-15T08:32:37Z malice: Oh, sorry then. 2017-08-15T08:33:13Z jasom: beach: I checked more pages, I ony found 2 on the first page of results that both 1) show code or pseudocode and 2) don't start by comparing for equality 2017-08-15T08:34:29Z krasnal joined #lisp 2017-08-15T08:34:41Z beach: jasom: Amazing. Well, I am not that amazed anymore because i know how bad it is. 2017-08-15T08:35:51Z malice: Good night! 2017-08-15T08:36:00Z beach: 'night malice. 2017-08-15T08:36:19Z beach: Shinmera: It would be very surprising if the addition would overflow on a 64-bit machine with 0-based arrays. 2017-08-15T08:36:42Z glamas_ joined #lisp 2017-08-15T08:36:46Z varjag quit (Ping timeout: 248 seconds) 2017-08-15T08:37:06Z malice quit (Remote host closed the connection) 2017-08-15T08:37:10Z beach: More likely on a 32-bit machine of course. 2017-08-15T08:37:15Z Shinmera: Right 2017-08-15T08:37:53Z Shinmera: This post was published in 2006, when 32bit was the norm. 2017-08-15T08:37:58Z beach: Yeah. 2017-08-15T08:38:21Z beach: Luckily, we don't have those particular problems in Common Lisp. 2017-08-15T08:38:33Z Shinmera: Unless you want to have them of course :) 2017-08-15T08:38:44Z beach: I don't! :) 2017-08-15T08:39:01Z beach: But yeah, if you want them, there is always FFI. 2017-08-15T08:39:20Z TMA: an "int" is still at most 32 bits in almost all the languages/implementations out there 2017-08-15T08:39:26Z glamas quit (Ping timeout: 240 seconds) 2017-08-15T08:40:27Z beach: Right, so using such an int on a 64-bit machine should be grounds for getting fired. 2017-08-15T08:41:05Z TMA: [in a sense, having the bounds stored in an int and not in a size_t is an error in itself -- so common an error that it is almost invisible] 2017-08-15T08:41:46Z beach: There is that, yes. 2017-08-15T08:42:40Z kora9 joined #lisp 2017-08-15T08:44:59Z glamas joined #lisp 2017-08-15T08:47:56Z varjag joined #lisp 2017-08-15T08:47:58Z glamas_ quit (Ping timeout: 248 seconds) 2017-08-15T08:50:47Z beach: Now I am in a rotten mood. :( 2017-08-15T08:51:18Z shka: beach: but why? :-) 2017-08-15T08:51:54Z beach: Because of the sorry state of computing. 2017-08-15T08:52:20Z shka: not your fault 2017-08-15T08:52:33Z beach: Right, but it's depressing. 2017-08-15T08:52:54Z varjag quit (Ping timeout: 240 seconds) 2017-08-15T08:53:31Z jamtho joined #lisp 2017-08-15T08:56:05Z Shinmera: I just always think back to the apparent law of "90% of any category is shit" and then settle for it not really mattering all that much. 2017-08-15T08:56:09Z Shinmera: Then I carry on with my day. 2017-08-15T08:56:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T08:56:38Z beach: I am happy for you that you are able to do that. 2017-08-15T08:56:39Z krasnal joined #lisp 2017-08-15T09:03:45Z kora9: beach: There's the new Power 9 processors. Those are pretty cool :) 2017-08-15T09:04:12Z kora9: And threadripper, and VR is getting off the ground! Hard to not be giddy about that :) 2017-08-15T09:05:53Z jamtho quit (Ping timeout: 240 seconds) 2017-08-15T09:06:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T09:06:48Z krasnal joined #lisp 2017-08-15T09:11:44Z beach: kora9: Are you trying to cheer me up? I am afraid that won't work. At least not for the next 12 hours or so. 2017-08-15T09:11:58Z krasnal quit (Ping timeout: 248 seconds) 2017-08-15T09:12:07Z beach: I think I need to go do something else for a while. 2017-08-15T09:12:20Z krasnal joined #lisp 2017-08-15T09:12:53Z kora9: beach: Yes :) Well it was worth trying 2017-08-15T09:13:25Z beach: Yes, thanks for trying. 2017-08-15T09:14:44Z raynold quit (Quit: Connection closed for inactivity) 2017-08-15T09:22:07Z axion: zWhy the long face? 2017-08-15T09:22:34Z krasnal quit (Ping timeout: 276 seconds) 2017-08-15T09:22:58Z krasnal joined #lisp 2017-08-15T09:23:42Z damke joined #lisp 2017-08-15T09:23:47Z phoe: axion: because int is too small 2017-08-15T09:24:53Z sjl quit (Ping timeout: 240 seconds) 2017-08-15T09:25:33Z shka: to be precise, maximum length of array in c is longer then maximal value int can hold 2017-08-15T09:25:38Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T09:26:46Z schweers: I’m not sure why that is a problem. I know that int and pointer don’t have the same sizes on all architectures, but it always seemed to be the sane thing to do, at least to me 2017-08-15T09:27:03Z kora9: Pointer has a size?! 2017-08-15T09:27:31Z schweers: um, yes, of course 2017-08-15T09:28:16Z schweers: nowadays mostly 32 or 64 bits, depending on the mode the cpu is in 2017-08-15T09:29:29Z shka: schweers: well, not really, most arrays may be small enough to be indexed by int, but not all 2017-08-15T09:29:40Z shka: anyway, that's C so let's ignore it 2017-08-15T09:29:41Z schweers: wait a sec 2017-08-15T09:29:51Z schweers: in C the max size of an array is int, not size_t? 2017-08-15T09:30:00Z shka: schweers: size_t 2017-08-15T09:30:11Z schweers: so, what’s the problem? 2017-08-15T09:30:34Z shka: that you are not supposed to use int as index in array 2017-08-15T09:31:08Z schweers: so? 2017-08-15T09:31:13Z schweers: use size_t 2017-08-15T09:31:27Z beach: schweers: We were lamenting published code. 2017-08-15T09:31:35Z schweers: oh, ok 2017-08-15T09:31:50Z schweers: then yes, that is a problem 2017-08-15T09:32:05Z krasnal quit (Ping timeout: 246 seconds) 2017-08-15T09:32:16Z shka: well, it is a problem that people fully understand only after getting hit by it 2017-08-15T09:32:26Z jamtho joined #lisp 2017-08-15T09:32:44Z beach: schweers: It is clear that #lisp participants know more about C programming that C programmers. It is a good sign for #lisp participants, but it is a bad sign for the computing industry. 2017-08-15T09:32:45Z shka: same for memory alignment and other C crap that i don't want to deal with anymore 2017-08-15T09:32:45Z m00natic joined #lisp 2017-08-15T09:33:38Z schweers: beach: do you really think that #lisp participants know more about C than C programmers? I mean people who actually know C, not some dilletant 2017-08-15T09:33:42Z shka: beach: i'm pretty sure that some lisp programmers are also competent C/C++/java/whatever programmers 2017-08-15T09:34:00Z jasom: C is my day-job 2017-08-15T09:34:16Z schweers: shka: I guess most of us know several languages 2017-08-15T09:34:16Z shka: C++ here ;-) 2017-08-15T09:34:22Z schweers: I would suspect and hope 2017-08-15T09:34:30Z beach: schweers: Sure, it boils down to the definition of "C programmer". But with your definition, I suspect that most people writing the software we depend on are not in that catagory. 2017-08-15T09:34:31Z schweers: C/C++/scheme/CL here 2017-08-15T09:34:34Z beach: category. 2017-08-15T09:34:58Z schweers: beach: that may be true. which is sad 2017-08-15T09:35:08Z beach: schweers: Hence my rotten mood. 2017-08-15T09:35:22Z schweers: I must say that I have very high respect for people who really do know C very well 2017-08-15T09:35:37Z beach: Yes, it's a difficult language to know well. 2017-08-15T09:35:53Z schweers: I don’t understand why it doesnt’t make them turn their backs on the language if they can get away with it, though 2017-08-15T09:36:03Z schweers: although it really does seem very simple 2017-08-15T09:36:27Z schweers: reading K&R made me think I really understood C 2017-08-15T09:36:28Z jasom: and fwiw ##c is by far the most pedantic IRC channel I've ever been in. There's even someone in there who compulsively uses diaeresis (e.g. coördinate) in chat. 2017-08-15T09:36:31Z schweers: boy was I wrong 2017-08-15T09:36:38Z loke is competent in Lisp/C/Java/Kotlin/Elixir/Elisp/C++/Shellscript/APL, with tinkering in Erlang/Smalltalk at the moment. 2017-08-15T09:36:46Z shka: well, C is useful in many scenarios and that's that 2017-08-15T09:36:51Z loke: Better add Assmbly and Perl to the first list. 2017-08-15T09:37:13Z schweers: surprisingly many 2017-08-15T09:37:19Z beach: jasom: Maybe it will cheer me up to hang out there. :) 2017-08-15T09:37:39Z jasom: I know much more of the C++ standard than the average C++ programmer, but I've never written any significant code in C++... 2017-08-15T09:37:50Z shka: jasom: lucky you 2017-08-15T09:37:56Z jasom found a mistake in Stroustrup's "The C++ Programming Language" 2017-08-15T09:38:22Z schweers: jasom: you /read/ that monstrosity? 2017-08-15T09:38:28Z krasnal joined #lisp 2017-08-15T09:38:55Z jasom: schweers: no, but when I need to give a definitive source for customers, the prose in there is *extremely* more accessible than the C++ standard 2017-08-15T09:38:55Z shka: schweers: you are talking about c++ standard? 2017-08-15T09:39:13Z schweers: ah, ok 2017-08-15T09:39:40Z schweers: shka: no, why? 2017-08-15T09:39:42Z jasom: and I looked something up to quote and said "wait, do I have it wrong?" checked the standard, and indeed Stroustrup had said "declaration" when he meant "definition" 2017-08-15T09:39:58Z beach: That's bad. 2017-08-15T09:39:59Z shka: schweers: i wanted to defend C++ standard a little bit 2017-08-15T09:40:07Z schweers: oh? please do so 2017-08-15T09:41:01Z shka: well, i think that not every little bit of C++ standard is horrible 2017-08-15T09:41:58Z jasom: There are worse languages than C++. Unfortunately many of those languages are what C++ programmers seem to think they are programming in... 2017-08-15T09:42:16Z schweers: ah, that’s not what I meant. I just find that “The C++ Programming Language” is very offputting. For instance because of its sheer size. 2017-08-15T09:42:33Z shka: agreed 2017-08-15T09:42:37Z schweers: jasom: could you give an example? 2017-08-15T09:43:24Z kora9: jasom: I once read an interview with Linus Torvalds in which he stated that he doesn't dislike C++ so much as C++ programmers 2017-08-15T09:44:46Z beach: jasom: I like that analysis. Can you be a bit more specific? 2017-08-15T09:45:49Z dxtr: jasom: As a swede I find coördinate pretty difficult to pronounce 2017-08-15T09:46:19Z schweers: dxtr: is there a ö in swedish? 2017-08-15T09:46:22Z jasom: C++ is heavily slanted towards making library writing hard, but library usage easy. If you have well implemented libraries, often the solution looks nearly exactly like what it would in higher-level languages 2017-08-15T09:47:08Z dxtr: schweers: Yes 2017-08-15T09:47:10Z schweers: I find reading library code in C++ difficult, but then again I’m no expert in the language 2017-08-15T09:47:12Z dxtr: å, ä and ö 2017-08-15T09:47:19Z jasom: Poorly implemented libraries though devolve into something often called "C+" or "C++--" 2017-08-15T09:47:35Z beach: jasom: I think I see, yes. 2017-08-15T09:47:48Z schweers: do you think it’s true that writing libraries in C++ is hard? 2017-08-15T09:48:06Z jackdaniel: there is no good isolation between libraries and software using them. You basically need to follow programming style used in the library - library uses templates? then you need to do that as well. Does it have excessive class hierarchy? well, you need to subclass that and write methods for them. That is my impression from using this language. 2017-08-15T09:48:06Z jasom: schweers: yes, and it gets harder every 3 years 2017-08-15T09:48:16Z phoe: hah 2017-08-15T09:48:34Z jackdaniel: so using two libraries written in different styles, you need to adopt both. and this is a straight way spaghetti code 2017-08-15T09:48:50Z dddddd quit (Remote host closed the connection) 2017-08-15T09:49:15Z jackdaniel: to spaghetti* 2017-08-15T09:49:34Z jasom: I have a critbit tree implementation that implements most, if not all of what C++11 provides for its standard containers. I've yet to update it for 14 or 17 2017-08-15T09:49:48Z schweers: jackdaniel: although I think that to be true of any multi-paradigm language. I’ve been annoyed by CL code which didn’t use classes, but just plain lists or vectors 2017-08-15T09:52:10Z loke: dxtr: I don't find it hard to pronouncle, but it does sound absolutely ridiculous. :-) 2017-08-15T09:52:16Z jasom: typename conditional::value,const ExternalNode&, ExternalNode&>::type operator*() const <-- this is the declaration for the dereference operator that returns either a mutable or constant external node, depending on whether the templated type is const 2017-08-15T09:52:29Z jasom: application code will never need to write something like that 2017-08-15T09:52:52Z shka: ok, i'm going afk 2017-08-15T09:52:57Z schweers: oh dear that does look abhorrent 2017-08-15T09:53:01Z shka: to much C++ for day off xD 2017-08-15T09:53:10Z schweers: looks like the library code I use from time to time 2017-08-15T09:54:00Z jasom: schweers: well you get used to it if you wade through library code; all of this does allow efficient implementation of very terse code for consumers of the library 2017-08-15T09:54:40Z head|cat joined #lisp 2017-08-15T09:55:31Z defaultxr quit (Ping timeout: 255 seconds) 2017-08-15T09:55:49Z shka: it is… not worth it 2017-08-15T09:56:07Z shka: that's just my opinion on C++ as a whole 2017-08-15T09:56:31Z schweers: ^ 2017-08-15T09:56:38Z jasom: and the magic is just an ugly syntax for: (if (is-const T) '(const & ExternalNode) '(& ExternalNode)) 2017-08-15T09:56:50Z schweers: nevertheless I still sometimes find use for libraries written in C++ 2017-08-15T09:56:54Z kora9` joined #lisp 2017-08-15T09:57:04Z shka: well, i do use C++ 2017-08-15T09:57:10Z kora9`: How come C++ is so widely used? 2017-08-15T09:57:14Z jackdaniel: my personal opinion is that there is infinite number of C++ subsets which are good languages, but when we take it as whole, we have features which step on other feature toes 2017-08-15T09:57:15Z kora9`: shka: It seems to be super popular for game programming 2017-08-15T09:57:16Z shka: i just don't like how complicated it gets 2017-08-15T09:57:18Z kora9 quit (Ping timeout: 248 seconds) 2017-08-15T09:57:25Z jackdaniel: what leads to mess and unreadable code 2017-08-15T09:57:27Z schweers: and all that just because C++ doesn’t have a proper macro system? 2017-08-15T09:57:45Z jasom: jackdaniel: there is *huge* tension between template-based polymorphism and class-based polymorphism 2017-08-15T09:58:02Z jackdaniel: yup 2017-08-15T09:58:10Z shka: schweers: no, it is because some guys don't know when to stop 2017-08-15T09:58:35Z jasom: schweers: well "proper"; templates are turing complete, so you actually can do most things you can do in lisp with it, *if* you don't care about your eyes, or the sanity of people reading the code later. 2017-08-15T09:58:55Z schweers: I happen to care about both ;) 2017-08-15T09:59:31Z schweers: didn’t one of the designers exclaim “Oh my god, what have we done?” as someone found out that the template language was turing-complete? 2017-08-15T09:59:37Z jasom: oh, and that declaration is longer than the body of the function, which is just: return *this->where; 2017-08-15T10:01:50Z jasom: but you can loop over the key/value pairs in the data-structure in-order with exactly the same syntax as looping over built-in containers. That's something that can't be done with CL:LOOP 2017-08-15T10:02:01Z jasom: (obviously iterate allows it) 2017-08-15T10:02:41Z jackdaniel: cl:loop derived from MIT *has* extensibility extensions (just saying) 2017-08-15T10:03:01Z jackdaniel: but this extensibility isn't part of the standard 2017-08-15T10:03:08Z schweers prefers iterate over loop anyway 2017-08-15T10:03:56Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T10:04:08Z grumble quit (Quit: b) 2017-08-15T10:04:19Z krasnal joined #lisp 2017-08-15T10:06:52Z random-nick joined #lisp 2017-08-15T10:07:32Z jasom: and interface-passing style (like Fare's LIL) is *very* natural in C++ with templates, and is all done at compile time. 2017-08-15T10:07:58Z glamas quit (Remote host closed the connection) 2017-08-15T10:08:35Z muzik is now known as muzik_ 2017-08-15T10:09:29Z muzik_ is now known as muzik 2017-08-15T10:09:33Z schweers: I can’t help it but I find the only thing that it natural in C/C++ is poking around in virtual memory in a very controlled fashion. Everything else seems like a major undertaking. Even iterating in C++ seems very unwieldy to me 2017-08-15T10:09:43Z schweers: but again: I’m no expert in C++ 2017-08-15T10:09:49Z schweers: although it was my first language 2017-08-15T10:10:46Z jasom: for(auto& item : v) { /* in here item is bount to each elt of v in sequence */ } <-- pretty straightforward as of C++11 2017-08-15T10:11:25Z schweers: as long as you don’t have to use iterators directly, which many libraries want. I understand why, but it still seems weird to me 2017-08-15T10:13:13Z jasom: schweers: they should only want that if you are going to iterate over a subsequence, since that code is semantically identical to: for(auto it = v.begin(), end = std::end(v); it != end; ++it) { auto& item = *it; ...} 2017-08-15T10:13:32Z grumble joined #lisp 2017-08-15T10:13:58Z schweers: and that it what I mean by unwieldy 2017-08-15T10:14:34Z jasom: schweers: everyone knows it's unwieldy which is why they introduced the new syntax, which is backwards-compatible with any libraries that implement iterators and std::end 2017-08-15T10:14:35Z schweers: *is 2017-08-15T10:15:31Z Fare: jasom: is interface-passing style common / colloquial in C++ and/or used in (semi)popular libraries? 2017-08-15T10:16:22Z jasom: and if they *don't* implement those, it goes back to my point of poorly implemented libraries leading to hard to write client code. 2017-08-15T10:16:48Z jasom: Fare: there are parts ot the C++11 standard library that use it to do things that haskell might do with type-classes IIRC 2017-08-15T10:17:04Z Fare: Nice! 2017-08-15T10:17:40Z jasom: It's limited; there's some boost libraries that do a lot more 2017-08-15T10:17:58Z Fare: do they use IPS? 2017-08-15T10:18:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T10:19:22Z Fare thinks that while bringing IPS to CL was nice, the real innovation in the paper was about the correspondence between pure and stateful data structures, and the automation of wrappers between 4 programming styles. 2017-08-15T10:19:46Z Fare: and *that* is not possible in any language but Lisp. 2017-08-15T10:20:09Z Fare: (although... Rust has macros these days, so who knows?) 2017-08-15T10:20:24Z Fare: (I tried to use macros in Scala and failed miserably) 2017-08-15T10:20:47Z krasnal joined #lisp 2017-08-15T10:20:52Z schweers: sorry, IPS? 2017-08-15T10:21:01Z dddddd joined #lisp 2017-08-15T10:21:21Z axion: Hello Fare. 2017-08-15T10:22:34Z jasom: http://www.boost.org/doc/libs/1_64_0/libs/mpl/doc/tutorial/higher-order.html <-- crazy stuff you can do in C++ 2017-08-15T10:22:41Z axion: Fare: Do you know if that patch you did to uiop about a year ago to fix the performance of listing subdirectories was propagated to any major implementations yet with an asdf update? 2017-08-15T10:26:00Z Fare: schweers, see my ILC 2012 article on it 2017-08-15T10:26:33Z Fare: axion: I'd guess CCL probably has it, SBCL probably not. 2017-08-15T10:26:52Z Fare: CCL is very quick to adopt ASDF updates. SBCL very slow. 2017-08-15T10:27:12Z axion: Having trouble even finding the commit/version 2017-08-15T10:27:37Z axion: But yeah, SBCL is still incredibly slow with it. 2017-08-15T10:27:38Z schweers: Fare: this one? https://common-lisp.net/~frideau/lil-ilc2012/lil-ilc2012.pdf 2017-08-15T10:28:09Z Fare: axion, you mean this? 1e6f8eccad0a477a63c3d7317b6cfde96d4556c6 2017-08-15T10:28:15Z Fare: schweers, yes! 2017-08-15T10:28:21Z schweers: k, thanks 2017-08-15T10:28:30Z schweers: I hope I’ll find time to read it 2017-08-15T10:28:55Z axion: Fare: yes 2017-08-15T10:28:57Z axion: thanks 2017-08-15T10:29:12Z Fare: axion, it was released in 3.2.0 only. 2017-08-15T10:30:13Z krasnal quit (Ping timeout: 246 seconds) 2017-08-15T10:30:16Z jasom: Fare: http://en.cppreference.com/w/cpp/algorithm <-- this is entirely templated functions for performing operations on containers, and one can include an execution-policy object in the template parameters for parallel or sequential operation... 2017-08-15T10:30:28Z axion: Fare: Of course, SBCL still on 3.1.5 2017-08-15T10:31:09Z krasnal joined #lisp 2017-08-15T10:32:53Z kora9` quit (Remote host closed the connection) 2017-08-15T10:33:40Z varjag joined #lisp 2017-08-15T10:37:23Z narendraj9 quit (Remote host closed the connection) 2017-08-15T10:37:30Z jasom: Fare: iterators also work by declaring which traits they implement (rather than inheriting from a class heirarchy). I think it's even sound as of C++17 (google SFINAE if you want to spend way too much time learning about incorrect compilation of templates) 2017-08-15T10:38:20Z grumble quit (Quit: o) 2017-08-15T10:38:41Z narendraj9 joined #lisp 2017-08-15T10:38:59Z grumble joined #lisp 2017-08-15T10:39:37Z damke__ joined #lisp 2017-08-15T10:40:18Z damke quit (Ping timeout: 240 seconds) 2017-08-15T10:40:20Z krasnal quit (Ping timeout: 246 seconds) 2017-08-15T10:42:28Z krasnal joined #lisp 2017-08-15T10:44:09Z marvin2 joined #lisp 2017-08-15T10:44:58Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T10:45:15Z test1600 quit (Quit: Leaving) 2017-08-15T10:45:30Z abel-abel quit (Quit: abel-abel) 2017-08-15T10:45:36Z Fare quit (Remote host closed the connection) 2017-08-15T10:46:46Z Fare joined #lisp 2017-08-15T10:47:07Z damke__ joined #lisp 2017-08-15T10:56:18Z djinni` quit (Quit: Leaving) 2017-08-15T11:01:46Z damke joined #lisp 2017-08-15T11:03:58Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T11:05:40Z djeis quit (Quit: Mutter: www.mutterirc.com) 2017-08-15T11:06:04Z daniel-s joined #lisp 2017-08-15T11:13:57Z djeis joined #lisp 2017-08-15T11:18:19Z djeis quit (Client Quit) 2017-08-15T11:18:44Z djeis joined #lisp 2017-08-15T11:19:47Z knobo joined #lisp 2017-08-15T11:20:10Z knobo: I was supprised to see anaphoric macros in sbcl. 2017-08-15T11:20:40Z djeis: Where are there anaphoric macros in sbcl? 2017-08-15T11:20:51Z schweers: does anyone here use series? I had a problem that I always got a whole load of warnings about using non-series objects as series expressions (or something like that, I don’t remember the exact detail). Was I likely doing something wrong or does series not behave well if parts of a series computation are defined and reused in different places? 2017-08-15T11:20:56Z djinni` joined #lisp 2017-08-15T11:21:14Z neoncontrails joined #lisp 2017-08-15T11:22:15Z knobo: djeis: https://sourceforge.net/p/sbcl/sbcl/ci/f0cda4884a396fa7a215f461c0187bac28f87521/ 2017-08-15T11:22:25Z djeis: schweers: I've worked with it a good bit, but I don't understand too much of the internals. It's code-walker does some fun stuff inside lol. 2017-08-15T11:23:04Z schweers: as long as I had /one/ large expression all was well, but … that’s not how I like to do things 2017-08-15T11:23:16Z djeis: knobo: huh. Sbcl uses anaphoric macros. 2017-08-15T11:23:43Z schweers: why not? some people like them 2017-08-15T11:24:24Z djeis: Nothing's wrong with them. I like them too, when they make code clearer. Just wasn't expecting it 😁 2017-08-15T11:26:04Z djeis: Are you using the series versions of defun and let? 2017-08-15T11:26:43Z neoncontrails quit (Ping timeout: 276 seconds) 2017-08-15T11:26:48Z knobo: I also like anaphoric macros. Just that I realized that my likings does not always help me. 2017-08-15T11:27:52Z knobo: I'm kind of damaged by using perl for many years. Though it's quite many years since I used perl now. 2017-08-15T11:28:34Z knobo: I'm still afraid of going down the path of "wow... thats a cool feature. let me see how I can misuse that" 2017-08-15T11:29:33Z djeis: That's fair, I suppose, but I find in Lisp that kind of thinking can also lead you to a better understanding of what's actually going on under the hood. 2017-08-15T11:30:28Z schweers: djeis: did you also get many warnings when using series? 2017-08-15T11:30:56Z djeis: Depends on if the code walker succeeded in optimizing the expression 2017-08-15T11:31:31Z schweers: hm 2017-08-15T11:31:43Z damke_ joined #lisp 2017-08-15T11:31:43Z schweers: I don’t get how to help it get along 2017-08-15T11:31:53Z schweers: I’m also not sure if one /can/ help it in many cases 2017-08-15T11:31:55Z djeis: The series optimizer is trying to make a single loop out of the series expression you've created, so it can efficiently pipeline everything. 2017-08-15T11:32:45Z djeis: If the expression has state which cannot be resolved in a single pass loop the optimization fails 2017-08-15T11:33:19Z djeis: And it gives you a ton of warnings because when screamer was written the fallback runtime code was a lot slower 2017-08-15T11:33:29Z schweers: that’s what I though too. seems to me that that makes it almost unusable in real programs 2017-08-15T11:33:38Z damke quit (Ping timeout: 240 seconds) 2017-08-15T11:33:41Z damke__ joined #lisp 2017-08-15T11:34:12Z djeis: It makes it a lot less flexible, I suppose, but no less that any other looping construct. 2017-08-15T11:34:19Z djeis: *than 2017-08-15T11:34:48Z djeis: And solving that problem generally is probably NP-Hard 2017-08-15T11:35:08Z schweers: I was looking for something similar to what clojure does with transducers 2017-08-15T11:35:25Z schweers: without fully understanding those in the firstplace, so I may have been very misguided 2017-08-15T11:35:39Z schweers: oh well, I’ve settled on iterate for the time being 2017-08-15T11:35:47Z djeis: Clojure transducers have the same limitations, IIRC 2017-08-15T11:35:59Z djeis: Well... not quite 2017-08-15T11:36:08Z schweers: I’m not so sure about that, as clojure does some lazy-eval 2017-08-15T11:36:18Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T11:36:43Z schweers: I’m not sure how good their overall performance is though 2017-08-15T11:36:48Z djeis: I don't think series evaluates more of the input than it needs either 2017-08-15T11:37:18Z schweers: I know, but it doesn’t seem to do that by storing state (i.e. closures and the like) but by resolving it all at macro expansion time 2017-08-15T11:37:25Z Bike joined #lisp 2017-08-15T11:38:24Z djeis: The problem with series is that it's trying to not loop over its inputs twice. Transducers can't do that either. 2017-08-15T11:39:23Z djeis: And the fallback series code ought to work just as well as clojure transducers 2017-08-15T11:39:36Z sjl joined #lisp 2017-08-15T11:39:38Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T11:39:51Z djeis: That actually uses lazy streams and handles everything with runtime state 2017-08-15T11:40:26Z schweers: are you sure? because I thought that transducers avoid exactly that. Well, that and consing. 2017-08-15T11:40:32Z mishoo_ quit (Ping timeout: 240 seconds) 2017-08-15T11:40:41Z schweers: but again, I don’t fully understand them, so I might be wrong about this 2017-08-15T11:40:54Z djeis: Didn't say as efficiently, admittedly 2017-08-15T11:41:33Z djeis: Although the transducer protocol has its own overhead, albeit a pretty small one. 2017-08-15T11:42:13Z damke__ joined #lisp 2017-08-15T11:42:17Z djeis: But yeah, the series fallback is closer to using lazy sequences in clojure instead building a transducer 2017-08-15T11:42:37Z schweers: I guess I was expecting a silver bullet, which sadly does not exist 2017-08-15T11:42:39Z schweers: oh well 2017-08-15T11:43:52Z daniel-s quit (Remote host closed the connection) 2017-08-15T11:43:56Z djeis: Do you have an example I could look at? 2017-08-15T11:44:20Z djeis: That doesn't optimize properly, I mean 2017-08-15T11:44:41Z schweers: I’m afraid I don’t, no 2017-08-15T11:44:48Z schweers: its been a while since I tried it out 2017-08-15T11:44:59Z schweers: and changed my code to use iterate instead 2017-08-15T11:45:19Z schweers: I might still have some code in git, but I can hardly remember where and when to look 2017-08-15T11:45:21Z djeis: Fair enough. Yeah, iterate is nice and it's what I do with a lot of my code 2017-08-15T11:45:38Z djeis: When I don't just use loop, at least 2017-08-15T11:46:00Z djeis: Only issue with iterate I've found is that its also a code-walker 2017-08-15T11:46:02Z schweers: but it was basically something like this: (let ((intermediate (series stuff ...))) (do series stuff with intermediate)) 2017-08-15T11:46:25Z schweers: why exactly is that a problem for you? 2017-08-15T11:46:41Z schweers: it does seem a little like black magic, but it works really well 2017-08-15T11:46:44Z damke joined #lisp 2017-08-15T11:46:58Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T11:47:41Z djeis: Every code-walker you introduce adds a ton of compilation overhead, and because code walking isn't standard across implementations occasionally they step on each other's toes. Not a huge problem in practice, but it's bitten me once or twice. 2017-08-15T11:47:55Z djeis: Like, iterate and CL-cont 2017-08-15T11:48:07Z knicklux joined #lisp 2017-08-15T11:48:18Z djeis: Decent code mixing them can take a good minute to compile on sbcl 2017-08-15T11:48:23Z schweers: hmm, okay? I do have one issue with this: iter code is annoying to debug, at least in sbcl 2017-08-15T11:49:01Z djeis: Really? That's never actually been an issue for me... 2017-08-15T11:49:45Z djeis: If you've set debugging to 3 you can usually step through it just fine, in my experience. 2017-08-15T11:49:52Z schweers: sbcl just seems to see it as one giant expression 2017-08-15T11:50:08Z djeis: Oh yeah, actually I do remember that now... 2017-08-15T11:50:12Z schweers: well, it’s not /quite/ true what i said 2017-08-15T11:50:36Z djeis: Can still step through it, but jump to source sees the entire expression. 2017-08-15T11:50:41Z schweers: sbcl tells me which expression it’s about to evaluate, but if I let slime show me the code it highlights the entire iter expression 2017-08-15T11:50:48Z schweers: exactly 2017-08-15T11:50:51Z djeis: That would be the code-walker 2017-08-15T11:50:53Z schweers: not something I can’t live with 2017-08-15T11:51:04Z arrsim quit (Ping timeout: 246 seconds) 2017-08-15T11:51:43Z djeis: It's not like a regular macro, so it's much more difficult for sbcl to track where the input code ends up in the generated expression. It also effects the warnings sometimes. 2017-08-15T11:52:14Z djeis: I've gotten some fun dead-code warnings by mixing iterate and trivia before... 2017-08-15T11:52:24Z arrsim joined #lisp 2017-08-15T11:52:27Z schweers: oh yes, same here 2017-08-15T11:52:38Z damke quit (Ping timeout: 240 seconds) 2017-08-15T11:54:47Z djeis: So yeah, when I can I often use loop or do, since they have much better behaved semantics with the debugger and compiler and are often slightly better optimized. Occasionally tho, you can't beat some of the tools iterate gives you. 2017-08-15T11:55:01Z damke joined #lisp 2017-08-15T11:55:50Z djeis: I am keeping an eye on some of the newer iteration macros tho 2017-08-15T11:55:57Z schweers: I’ve never been a fan of loop, I always have to look up how to say things. iter just feels much more natural to me. that’s one of the reasons I use it. Also there are things that are easy to say with iter, but cannot be directly expressed with loop 2017-08-15T11:56:05Z schweers: are there others worthy of note? 2017-08-15T11:56:14Z schweers: that you can name off the top of your head, that is 2017-08-15T11:56:18Z djeis: for and do+ 2017-08-15T11:56:30Z Devon joined #lisp 2017-08-15T11:56:40Z djeis: Both have similar tools to iterate but limit themselves just enough that they don't need a code walker 2017-08-15T11:57:08Z djeis: But I haven't really taken the time to get used to them yet 2017-08-15T11:57:18Z vibs29 quit (Ping timeout: 248 seconds) 2017-08-15T11:57:29Z djeis: Yeah, iterate does feel the most natural to me. 2017-08-15T11:57:44Z abel-abel joined #lisp 2017-08-15T11:57:51Z djeis: Once the code gets complicated enough, readability alone is often enough that I use iterate regardless 2017-08-15T11:58:26Z vibs29 joined #lisp 2017-08-15T11:58:34Z varjag quit (Ping timeout: 276 seconds) 2017-08-15T12:02:06Z epony quit (Ping timeout: 248 seconds) 2017-08-15T12:05:09Z razieliyo joined #lisp 2017-08-15T12:05:16Z zooey quit (Remote host closed the connection) 2017-08-15T12:06:18Z zooey joined #lisp 2017-08-15T12:07:37Z varjag joined #lisp 2017-08-15T12:08:58Z krasnal quit (Ping timeout: 276 seconds) 2017-08-15T12:09:24Z krasnal joined #lisp 2017-08-15T12:11:46Z quazimodo joined #lisp 2017-08-15T12:11:58Z damke quit (Ping timeout: 240 seconds) 2017-08-15T12:12:54Z damke joined #lisp 2017-08-15T12:13:28Z Bike quit (Ping timeout: 246 seconds) 2017-08-15T12:14:07Z krasnal quit (Ping timeout: 255 seconds) 2017-08-15T12:15:43Z damke_ joined #lisp 2017-08-15T12:17:29Z krasnal joined #lisp 2017-08-15T12:18:43Z damke quit (Ping timeout: 246 seconds) 2017-08-15T12:18:44Z damke__ joined #lisp 2017-08-15T12:20:58Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T12:25:08Z Devon quit (Remote host closed the connection) 2017-08-15T12:26:28Z mishoo_ joined #lisp 2017-08-15T12:38:02Z vap1 quit (Read error: Connection reset by peer) 2017-08-15T12:39:32Z vaporatorius joined #lisp 2017-08-15T12:39:33Z vaporatorius quit (Changing host) 2017-08-15T12:39:33Z vaporatorius joined #lisp 2017-08-15T12:39:34Z vap1 joined #lisp 2017-08-15T12:40:35Z d4ryus joined #lisp 2017-08-15T12:42:01Z neoncontrails joined #lisp 2017-08-15T12:43:32Z d4ryus4 quit (Ping timeout: 240 seconds) 2017-08-15T12:50:38Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T12:50:56Z narendraj9 quit (Ping timeout: 240 seconds) 2017-08-15T12:52:05Z damke__ joined #lisp 2017-08-15T12:53:05Z djeis quit (Quit: Mutter: www.mutterirc.com) 2017-08-15T12:54:30Z narendraj9 joined #lisp 2017-08-15T12:56:51Z hosas joined #lisp 2017-08-15T12:57:48Z chz joined #lisp 2017-08-15T12:58:11Z chz 2017-08-15T12:58:17Z chz quit (Client Quit) 2017-08-15T13:00:27Z doesthiswork joined #lisp 2017-08-15T13:01:46Z hosas left #lisp 2017-08-15T13:02:37Z Shinmera: Speaking of FOR, I've just updated the docs to add some comparisons to LOOP for the examples. 2017-08-15T13:02:45Z Shinmera: https://shinmera.github.io/for/ 2017-08-15T13:03:13Z sdemarre quit (Ping timeout: 240 seconds) 2017-08-15T13:04:37Z Bike joined #lisp 2017-08-15T13:04:58Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T13:06:35Z vicfred joined #lisp 2017-08-15T13:08:47Z abel-abel quit (Remote host closed the connection) 2017-08-15T13:09:06Z damke__ joined #lisp 2017-08-15T13:11:00Z axion: Shinmera: Thanks for listening. and I saw your comment, I just don't know how to reply yet. 2017-08-15T13:11:22Z Shinmera: Heh! 2017-08-15T13:11:40Z phoe: one more iterating library 2017-08-15T13:11:59Z Shinmera: phoe: is that the name of your library? 2017-08-15T13:12:09Z phoe: Shinmera: no, just a remark 2017-08-15T13:12:19Z phoe: but OMIL sounds like a nice name, thanks 2017-08-15T13:12:20Z Shinmera: I know, I was making a joek 2017-08-15T13:12:30Z phoe: Well, you maed a joek 2017-08-15T13:12:45Z Shinmera: One could even call it a jök 2017-08-15T13:12:50Z phoe: ... 2017-08-15T13:13:16Z phoe: A jœk? 2017-08-15T13:14:15Z schweers: the unicode is strong in this channel 2017-08-15T13:14:55Z Shinmera: 𝕴𝖙 𝖍𝖆𝖙𝖍 𝖇𝖊𝖊𝖓 𝖉𝖊𝖊𝖒𝖊𝖉 𝖘𝖚𝖈𝖍 2017-08-15T13:15:01Z axion: Shinmera: would it be possible to have the same syntax as loop destructuring, minus the ordinary lambda list sutff like &key etc, but given a VALUE form? 2017-08-15T13:15:10Z schweers just realized that the word umlaut does not contain any of the characters it describes 2017-08-15T13:15:11Z axion: VALUES* 2017-08-15T13:15:12Z jackdaniel: ▯▯▯▯▯▯▯ ▯▯▯▯▯▯▯ ▯▯▯ 2017-08-15T13:15:14Z schweers: o_O 2017-08-15T13:15:16Z schweers: was was that? 2017-08-15T13:15:29Z Shinmera: axion: I'm not sure I understand. Can you give an example? 2017-08-15T13:15:43Z phoe: jackdaniel: https://i.imgtc.com/zipi6EU.png 2017-08-15T13:15:54Z axion: (for:for (((a b c) in (values 1 2 3))) ..) 2017-08-15T13:16:01Z jackdaniel: schweers: "▯▯▯▯▯▯▯ ▯▯▯▯▯▯▯ ▯▯▯"? 2017-08-15T13:16:07Z muzik is now known as muzik_asleep 2017-08-15T13:16:21Z schweers: no, the way "it hath been deemed such" is represented 2017-08-15T13:16:25Z raynold joined #lisp 2017-08-15T13:16:41Z Shinmera: axion: IN operates on lists. 2017-08-15T13:16:49Z jackdaniel: phoe: it was an unicode character `WHITE VERTICAL RECTANGLE (U+25AF)' copied over to fool around 2017-08-15T13:17:10Z phoe: jackdaniel: I guessed such :D 2017-08-15T13:17:25Z shka: what a mundane motivation, though 2017-08-15T13:17:38Z phoe: schweers: 𝖞𝖔𝖚 𝖙𝖞𝖕𝖊 𝖜𝖎𝖙𝖍 𝖙𝖍𝖊 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 𝖐𝖊𝖞 𝖕𝖗𝖊𝖘𝖘𝖊𝖉. 𝕯𝖎𝖉 𝖞𝖔𝖚𝖗 𝕷𝖎𝖘𝖕 𝖒𝖆𝖈𝖍𝖎𝖓𝖊 𝖈𝖔𝖒𝖊 𝖜𝖎𝖙𝖍𝖔𝖚𝖙 𝖎𝖙? 2017-08-15T13:18:01Z Mon_Ouie quit (Ping timeout: 255 seconds) 2017-08-15T13:18:12Z jackdaniel: one needs to at least make an impression, that he has sense of humor 2017-08-15T13:18:30Z phoe: ,þ 2017-08-15T13:19:11Z schweers: and I thought it was somewhat fancy that I can enter some greek symbols directly from the keyboard 2017-08-15T13:19:43Z Shinmera: axion: Having something like (for:for (((a b c) = (something) :transform-by multiple-value-list))) could work, but I don't know. 2017-08-15T13:20:17Z Mon_Ouie joined #lisp 2017-08-15T13:21:50Z Shinmera: axion: Alternatively: (for:for (((values a b c) = (something)))) could work, but it would rule out using values as the name of a variable while destructuring. 2017-08-15T13:21:59Z jackdaniel: hum, someone apparently wrote a paper with a proof, that P <> NP: https://arxiv.org/pdf/1708.03486.pdf 2017-08-15T13:22:36Z axion: Shinmera: I have been thinking about it, and I don't think it is easily handled, nor does it make much sense. 2017-08-15T13:22:39Z xaotuk joined #lisp 2017-08-15T13:22:58Z Shinmera: axion: Well, I can see value in it, or value in the general :transform-by argument as posted above. 2017-08-15T13:23:01Z razieliyo left #lisp 2017-08-15T13:23:05Z Shinmera: So I don't want to throw it on the side just yet. 2017-08-15T13:23:14Z _rumbler31 joined #lisp 2017-08-15T13:23:37Z axion: Ok, I'm just not sure the best way to do it. I will say that loop, metabang, let-plus, etc all do not handle it though 2017-08-15T13:24:12Z Shinmera: The first case would require modifying all the existing bindings to include a :transform-by key argument. The latter would require changing the UPDATE operator. 2017-08-15T13:24:56Z axion: Actually ignore that last comment. let-plus does handle it, but it's not an iteration library. I'm not sure what I was thinking. There is something it didn't handle, but I can't remember now. I think I need to wake up. 2017-08-15T13:25:03Z sdemarre joined #lisp 2017-08-15T13:25:20Z Shinmera: I wish I was awake and it's already 15:25 2017-08-15T13:25:52Z Shinmera: The foreign update binding thingy I have on my own wishlist for FOR is much more complicated to implement without incurring general overhead. 2017-08-15T13:26:02Z _cosmonaut_1 quit (Ping timeout: 240 seconds) 2017-08-15T13:26:02Z axion: I don't really like the non hygenic macro aproach. 2017-08-15T13:26:28Z Shinmera: Me neither, but hey. 2017-08-15T13:26:52Z Shinmera: It would be the easier one to implement. 2017-08-15T13:28:16Z BitPuffin|osx quit (Ping timeout: 276 seconds) 2017-08-15T13:30:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T13:30:45Z krasnal joined #lisp 2017-08-15T13:30:51Z Shinmera: The foreign update binding would require either a prefetch phase where the bindings are scanned for injections, which are then inserted into the update forms of the respective target bindings, or control variables that are set when an update happens. 2017-08-15T13:31:21Z Shinmera: The former sounds cleaner, but... yeah it's iffy either way. 2017-08-15T13:31:31Z Achylles joined #lisp 2017-08-15T13:33:05Z Shinmera: It would be a really sweet addition though. 2017-08-15T13:33:08Z axion: The cleaner method would rule out FOR in any performance critical applications 2017-08-15T13:33:20Z Shinmera: Hm? Why? 2017-08-15T13:33:21Z damke joined #lisp 2017-08-15T13:33:25Z axion: Not that it probably isn't ruled out already heh...but I didn't test 2017-08-15T13:33:28Z Shinmera: I'd say the latter would. 2017-08-15T13:33:37Z axion: Oh ok. 2017-08-15T13:33:59Z Shinmera: Also: FOR generates efficient code where it can. Expansions should be on par with LOOP. 2017-08-15T13:34:01Z axion: I really haven't looked at the code :( 2017-08-15T13:34:23Z axion: I tested OVER and boy was that slow 2017-08-15T13:34:35Z Shinmera: Well OVER uses iterator objects and CLOS, so 2017-08-15T13:34:59Z axion: Yeah that's expected 2017-08-15T13:35:01Z damke__ quit (Ping timeout: 246 seconds) 2017-08-15T13:35:59Z Shinmera forgot FOR had a LINES-OF binding 2017-08-15T13:36:15Z Shinmera: nifty. 2017-08-15T13:38:28Z oleo joined #lisp 2017-08-15T13:38:32Z axion: Shinmera: For your games, what graphics format do you use? 2017-08-15T13:39:15Z Shinmera: You mean texture images? 2017-08-15T13:40:14Z axion: Yes, that. 2017-08-15T13:40:28Z Shinmera: PNG. There's really no other choice. 2017-08-15T13:40:42Z axion: I assume you use SOIL rather than something more...native? 2017-08-15T13:40:47Z Shinmera: Yes. 2017-08-15T13:40:56Z axion: Ok, just wondering. 2017-08-15T13:41:03Z Shinmera: Simply because I don't want to constrain people that use my engine to PNG. 2017-08-15T13:41:20Z axion: Why is there no other choice besides PNG? 2017-08-15T13:41:44Z Shinmera: It's a very widely supported non-lossy, compressed, open format. 2017-08-15T13:42:04Z _cosmonaut_ joined #lisp 2017-08-15T13:42:05Z axion: TIFF supports 32 bit color, layers, and many internal formats, mostly lossless with better compression. 2017-08-15T13:43:02Z Shinmera: I've hardly ever seen, and never used TIFF. 2017-08-15T13:43:07Z axion: Well I guess I can't ask you to compare my library with png-read then if you use FFI :) 2017-08-15T13:44:13Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T13:44:32Z Shinmera: I'm always open to switching to CL-native things, if I don't have to drop support. So, if there's something that can load JPG, PNG, GIF, and BMP in reasonable time I'd be happy to switch. 2017-08-15T13:44:53Z jackdaniel: Shinmera: opticl 2017-08-15T13:45:00Z Shinmera: Bonus points for rasterized SVG 2017-08-15T13:45:06Z damke_ joined #lisp 2017-08-15T13:45:29Z krasnal joined #lisp 2017-08-15T13:46:03Z axion: opticl currently uses png-read, which is incredibly slow, but I am looking to change that. 2017-08-15T13:46:05Z Shinmera: jackdaniel: If I am to believe axion's tests, that's not acceptably fast. 2017-08-15T13:46:18Z damke quit (Ping timeout: 240 seconds) 2017-08-15T13:46:18Z axion: acceptably fast == insanely slow 2017-08-15T13:46:39Z axion: or, you know what i mean 2017-08-15T13:47:02Z Shinmera: Either way, SOIL having no other dependencies, I'm not that miffed by using it. 2017-08-15T13:47:02Z axion: a full second to load a 720p image on this semi recent cpu 2017-08-15T13:47:27Z axion: SOIL will not work with GL core profile though 2017-08-15T13:47:33Z axion: so your users may not be able to load 2017-08-15T13:47:35Z Shinmera: I'm currently much more bothered by Harmony/cl-mixed fucking crashing in my face for inexplicable reasons. 2017-08-15T13:47:49Z Shinmera: axion: Huh? Why not? 2017-08-15T13:47:50Z axion: if you use the gl texture loading facilities 2017-08-15T13:48:01Z axion: I posted an issue about it on Bagger's library 2017-08-15T13:48:32Z Shinmera: Ah. I don't use the gl functions. I just load into memory and handle the texture allocation myself. 2017-08-15T13:48:48Z axion: Then you're okay. 2017-08-15T13:49:06Z damke joined #lisp 2017-08-15T13:49:10Z Shinmera: Phew. I thought there was something subtle about the binary data or whatever 2017-08-15T13:49:57Z axion: It's a nasty issue though, for an unmaintained piece of software. Baggers wants to wrap SOIL2 soon. 2017-08-15T13:50:09Z Shinmera: Right. 2017-08-15T13:50:46Z xaotuk quit (Ping timeout: 246 seconds) 2017-08-15T13:50:58Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T13:50:59Z abel-abel joined #lisp 2017-08-15T13:51:15Z Shinmera: Speaking of texture crap, any idea why this would give me an invalid operation gl error: (GL:TEX-IMAGE-2D :TEXTURE-2D 0 :DEPTH-STENCIL 956 1160 0 :DEPTH-STENCIL :UNSIGNED-BYTE (null-ptr)) 2017-08-15T13:51:17Z axion: I personally try to do everything in portable CL except when I have no control. I use sdl2 for windowing, and opengl because, yeah. 2017-08-15T13:51:23Z cromachina quit (Quit: Leaving) 2017-08-15T13:51:32Z Shinmera: Even if I use a specific internal format like :depth24-stencil8, I get the same complaint. 2017-08-15T13:51:49Z axion: Thinking 2017-08-15T13:51:56Z krasnal quit (Ping timeout: 240 seconds) 2017-08-15T13:52:18Z Shinmera: The same works for just :depth-component for internal-format and format. 2017-08-15T13:52:45Z axion: You know you can just use nil instead of a null point for the lispy package? 2017-08-15T13:52:49Z axion: pointer* 2017-08-15T13:53:00Z Shinmera: Yeah, the null pointer comes from elsewhere. This is from a stack trace 2017-08-15T13:53:29Z axion: I haven't ever messed with the stencil buffer before. 2017-08-15T13:53:41Z Shinmera: I'm working on a UI system, so it's kinda mandatory. 2017-08-15T13:53:56Z _cosmonaut_ quit (Ping timeout: 240 seconds) 2017-08-15T13:54:08Z krasnal joined #lisp 2017-08-15T13:55:15Z damke_ joined #lisp 2017-08-15T13:56:12Z narendraj9 quit (Quit: ERC (IRC client for Emacs 26.0.50)) 2017-08-15T13:56:37Z rgrau joined #lisp 2017-08-15T13:56:42Z axion: Nothing in the spec says that should fail I don't think. I would ask |3b| sometime. 2017-08-15T13:56:53Z Fare quit (Ping timeout: 240 seconds) 2017-08-15T13:56:57Z Shinmera: Yeah, I came to the same conclusion 2017-08-15T13:56:57Z damke quit (Ping timeout: 240 seconds) 2017-08-15T13:58:54Z epony joined #lisp 2017-08-15T13:59:57Z doesthiswork quit (Quit: Leaving.) 2017-08-15T14:01:02Z Achylles quit (Ping timeout: 248 seconds) 2017-08-15T14:06:32Z BitPuffin|osx joined #lisp 2017-08-15T14:09:25Z xaotuk joined #lisp 2017-08-15T14:11:42Z Bike: simple-array definition question. clhs make-array says that if :displaced-to is nil, the new array is not a displaced array. but clhs array-displacement says it can, depending on implementation, return something for arrays that were made with :displaced-to nil 2017-08-15T14:12:05Z Fare joined #lisp 2017-08-15T14:12:09Z Bike: am i missing something here 2017-08-15T14:12:32Z Mon_Ouie quit (Ping timeout: 240 seconds) 2017-08-15T14:13:03Z Guest75134 quit 2017-08-15T14:13:24Z Guest75134 joined #lisp 2017-08-15T14:13:53Z Guest75134 is now known as tfb 2017-08-15T14:14:02Z xaotuk quit (Ping timeout: 240 seconds) 2017-08-15T14:14:02Z tfb quit (Client Quit) 2017-08-15T14:14:17Z tfb joined #lisp 2017-08-15T14:14:18Z Bike quit (Remote host closed the connection) 2017-08-15T14:14:32Z nirved quit (Quit: Leaving) 2017-08-15T14:14:41Z Mon_Ouie joined #lisp 2017-08-15T14:14:50Z Achylles joined #lisp 2017-08-15T14:16:35Z Bike joined #lisp 2017-08-15T14:16:44Z phoe: clhs make-array 2017-08-15T14:16:44Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_mk_ar.htm 2017-08-15T14:17:01Z phoe: "If make-array is called with adjustable, fill-pointer, and displaced-to each nil, then the result is a simple array." 2017-08-15T14:17:33Z phoe: oh wait. wrong quote. 2017-08-15T14:17:48Z beach: Bike: See the Cleanup issue. 2017-08-15T14:18:39Z beach: Some implementations implicitly displace some arrays. (For example, adjustable arrays might be represented as displaced arrays.) Permitting ARRAY-DISPLACEMENT to return non-NIL for those arrays allows those implementations not to have to record some additional information in the array about whether an explicit :DISPLACED-TO was provided. 2017-08-15T14:18:39Z beach: 2017-08-15T14:18:39Z beach: 2017-08-15T14:18:39Z beach: 2017-08-15T14:18:44Z beach: Oops, sorry. 2017-08-15T14:19:12Z Bike: That's what I thought, but I don't understand how that's allowed by the definition of make-array 2017-08-15T14:19:24Z Bike: which cleanup issue do you mean? 2017-08-15T14:19:56Z beach: Bottom of the page on array-displacement. 2017-08-15T14:20:21Z beach: If you pass :adjustable t, then the implementation may create a displaced array. 2017-08-15T14:20:31Z beach: clhs array-displacement 2017-08-15T14:20:31Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_ar_dis.htm 2017-08-15T14:20:42Z beach: http://www.lispworks.com/documentation/HyperSpec/Issues/iss132.htm 2017-08-15T14:20:52Z damke joined #lisp 2017-08-15T14:20:55Z beach: http://www.lispworks.com/documentation/HyperSpec/Issues/iss132_w.htm 2017-08-15T14:21:34Z Mon_Ouie quit (Ping timeout: 276 seconds) 2017-08-15T14:22:46Z damke__ joined #lisp 2017-08-15T14:23:18Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T14:24:03Z Bike: i understand that, what i don't get is the apparently clear prohibition on make-array: "If displaced-to is nil, the array is not a displaced array." 2017-08-15T14:24:15Z Bike: is that just wrong? or does "displaced array" not mean "array that returns something from array-displacement"? 2017-08-15T14:24:18Z flamebeard quit (Quit: Leaving) 2017-08-15T14:24:28Z Mon_Ouie joined #lisp 2017-08-15T14:24:29Z beach: The latter. 2017-08-15T14:24:57Z fsmunoz joined #lisp 2017-08-15T14:25:17Z Bike: oh, okay. 2017-08-15T14:25:17Z damke quit (Ping timeout: 240 seconds) 2017-08-15T14:25:51Z beach: But, honestly, I think they got it wrong. The two pages were probably written at different times. 2017-08-15T14:26:05Z Bike: okay. 2017-08-15T14:26:27Z beach: Note to self: Define "displaced array" better in WSCL. 2017-08-15T14:27:14Z smazga joined #lisp 2017-08-15T14:27:15Z xaotuk joined #lisp 2017-08-15T14:29:35Z phoe: What's WSCL? 2017-08-15T14:29:37Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T14:29:55Z papachan joined #lisp 2017-08-15T14:30:04Z elfmacs joined #lisp 2017-08-15T14:30:09Z phoe: Oh, I know what's WSCL. 2017-08-15T14:31:32Z EvW joined #lisp 2017-08-15T14:31:47Z beach: My plan to make an updated standard which is backward compatible. 2017-08-15T14:32:07Z damke__ joined #lisp 2017-08-15T14:32:15Z beach: Well-Specified Common Lisp. Pronounce it like "whistle". 2017-08-15T14:32:19Z felipedvorak quit (Ping timeout: 260 seconds) 2017-08-15T14:32:33Z mson joined #lisp 2017-08-15T14:34:09Z edgar-rft: Thank you. I just had the horrible vision of JSCL :-) 2017-08-15T14:35:08Z damke joined #lisp 2017-08-15T14:35:27Z beach: https://github.com/robert-strandh/Well-Specified-Common-Lisp 2017-08-15T14:36:23Z ryan_vw joined #lisp 2017-08-15T14:36:53Z damke__ quit (Ping timeout: 240 seconds) 2017-08-15T14:38:14Z sz0 joined #lisp 2017-08-15T14:41:35Z keviv joined #lisp 2017-08-15T14:43:46Z loke: What does WSCL stand for? 2017-08-15T14:43:49Z nick123 joined #lisp 2017-08-15T14:43:54Z schweers: beach: is this a typo? “Furthermore, most of the improvements will be such that a modern 2017-08-15T14:43:54Z schweers: conforming implementation of WSCL will already be a conforming 2017-08-15T14:43:54Z schweers: implementation of WSCL, or will require relatively few modifications 2017-08-15T14:43:57Z schweers: in order to become one.” 2017-08-15T14:43:59Z schweers: damn, sorry0 2017-08-15T14:44:47Z beach: It is possible. I become more and more dyslexic over time. 2017-08-15T14:44:51Z felipedvorak joined #lisp 2017-08-15T14:44:51Z beach: What seems to be the problem? 2017-08-15T14:45:05Z Bike: you meant "a modern conforming implementation of Common Lisp", probably? 2017-08-15T14:45:11Z schweers: ^ 2017-08-15T14:45:18Z beach: Ah, yes. Thanks. 2017-08-15T14:45:58Z xaotuk quit (Quit: WeeChat 1.4) 2017-08-15T14:46:43Z beach: schweers: Fixed! Thanks! 2017-08-15T14:46:53Z schweers: thank you! 2017-08-15T14:48:17Z schweers: um. I thought you meant it the other way around: that a modern conforming implementation of of Common Lisp will already be a conforming implementation of WSCL 2017-08-15T14:48:19Z _cosmonaut_ joined #lisp 2017-08-15T14:48:28Z Bike: that's what i meant. 2017-08-15T14:48:35Z beach: Crap. 2017-08-15T14:48:47Z Bike: oh. changed the other way. 2017-08-15T14:49:27Z beach: *sigh*. 2017-08-15T14:49:34Z beach: I think I got it right this time. 2017-08-15T14:50:06Z schweers: looks good :) 2017-08-15T14:50:10Z schweers: thanks again for fixing 2017-08-15T14:50:18Z schweers: looks like a cool project, thanks for working on such a thing 2017-08-15T14:50:31Z schweers: do you think there is any chance it will be adopted and taken seriously? 2017-08-15T14:50:52Z beach: schweers: Yes, I think so, because no radical changes are going to be suggested. 2017-08-15T14:50:55Z schweers: also: do you have a quick example of what to change? 2017-08-15T14:51:08Z beach: Let me think of a few... 2017-08-15T14:52:06Z attila_lendvai quit (Ping timeout: 255 seconds) 2017-08-15T14:54:07Z beach: schweers: For example, take AREF. 2017-08-15T14:54:11Z beach: clhs aref 2017-08-15T14:54:11Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_aref.htm 2017-08-15T14:54:33Z beach: schweers: What happens if the array argument is not an array? 2017-08-15T14:54:57Z random-nick quit (Read error: Connection reset by peer) 2017-08-15T14:55:01Z schweers: oh 2017-08-15T14:55:15Z beach: It so happens that the Common Lisp HyperSpec states that, by default, if nothing else is mentioned, then the behavior is undefined (or unspecified, I forget). 2017-08-15T14:55:33Z beach: And in this case, it says: Exceptional situations: None. 2017-08-15T14:55:46Z Bike: undefined, yeah. 2017-08-15T14:55:49Z schweers: what would you suggest? 2017-08-15T14:55:55Z beach: In WSCL, I would like to specify that in safe code, an error is signaled. 2017-08-15T14:56:19Z beach: ... perhaps with a minimum value of the SAFETY quality. 2017-08-15T14:56:33Z beach: schweers: There are dozens of pages like that, in fact. 2017-08-15T14:56:34Z schweers: ah, but in unsafe code we get nasal daemons? 2017-08-15T14:56:43Z random-nick joined #lisp 2017-08-15T14:56:47Z Bike: technically, right now, in safe code, you get nasal demons. 2017-08-15T14:56:57Z damke quit (Ping timeout: 240 seconds) 2017-08-15T14:57:02Z Bike: which is kind of dumb, thus WSCL 2017-08-15T14:57:08Z schweers: yeah, I meant what to put into WSCL 2017-08-15T14:57:18Z beach: schweers: Yes, some implementations would like to make some code as fast as possible, so it is reasonable to leave the door open in unsafe code. 2017-08-15T14:57:22Z schweers: as beach mentioned safe code explicitly 2017-08-15T14:58:41Z Bike: it's pretty inconsistent. integer-length has "should signal a type error", which means in safe code it's signaled 2017-08-15T14:58:51Z Bike: + has "might be signaled" which means it's undefined 2017-08-15T14:59:09Z schweers: uhhhh … really? 2017-08-15T14:59:17Z Bike: weird, right? 2017-08-15T14:59:24Z schweers: “should signal” means: signal in safe code? 2017-08-15T14:59:25Z beach: Yes, very inconsistent. And I am guessing that the reason for that is mostly laziness on the part of the authors. 2017-08-15T14:59:28Z damke joined #lisp 2017-08-15T14:59:29Z Bike: clhs 1.4.2 2017-08-15T14:59:29Z specbot: Error Terminology: http://www.lispworks.com/reference/HyperSpec/Body/01_db.htm 2017-08-15T14:59:33Z Bike: explains what "should" and "might" mean 2017-08-15T15:00:17Z Bike: lol, it gives + as an example for "should", and then the actual page says "might". 2017-08-15T15:00:38Z schweers: oh dear, I’m not sure I wanted to know this 2017-08-15T15:01:01Z Bike: welcome to the most boring part of the standard 2017-08-15T15:01:11Z beach: schweers: So I don't want to add any work (or as little as possible) for maintainers of existing modern Common Lisp implementations. I merely want to make life easier for application programmers, so that they can trust some widely agreed-upon behavior. 2017-08-15T15:01:45Z schweers: that’s the message I took from your readme and I applaud that :) 2017-08-15T15:01:54Z beach: Thanks! 2017-08-15T15:02:19Z beach: And I think that is the only kind of update to the standard that would be widely accepted. 2017-08-15T15:02:39Z Bike: there's the typos and stuff cliki lists 2017-08-15T15:02:45Z Bike: or do you mean actual changes 2017-08-15T15:02:46Z schweers: Bike: this is not merely a boring part. It’s scary! I didn’t know that “should be signaled” meant that I might not get a condition if i lower the safety level below 3. 2017-08-15T15:03:24Z Bike: well.... yep. 2017-08-15T15:03:40Z beach: schweers: Since it is sooo 20th century to print things, we can afford to have the explicit text on every page nowadays. 2017-08-15T15:04:14Z schweers: you think that page estate was the reason to write the text that way? 2017-08-15T15:04:30Z beach: I can't imagine it was incompetence with TeX macros. 2017-08-15T15:04:48Z beach: The rest of the standard contradicts such a hypothesis. 2017-08-15T15:05:15Z beach: The standard, as sold by ANSI, is the printed document. 2017-08-15T15:05:15Z beach: 2017-08-15T15:05:17Z damke_ joined #lisp 2017-08-15T15:05:22Z schweers: I would have guessed that it was for brevity, but not because paper was expensive 2017-08-15T15:05:53Z beach: I meant "afford" more loosely." 2017-08-15T15:07:17Z damke quit (Ping timeout: 240 seconds) 2017-08-15T15:07:30Z beach: So, for this issue about array-displacement, I would check all major implementations, and if they all return NIL when NIL was given to :DISPLACED-TO I would remove the possibility for implementations to return something else. 2017-08-15T15:08:04Z beach: ... just as an example of how I think I will proceed. 2017-08-15T15:08:44Z whoman joined #lisp 2017-08-15T15:09:01Z beach: The possibility of returning non-NIL saves at most a word in the implementation of an array. That doesn't seem relevant anymore. 2017-08-15T15:09:53Z Bike: but the value of that restriction is also tiny 2017-08-15T15:10:10Z beach: Sure. 2017-08-15T15:11:25Z beach: Anyway, I consider taking contributions to WSCL. Someone told me I unfortunately used an old dpANS, so that could be fixed. And turning individual chapter files into a single LaTeX document is something other people are better at than I am. 2017-08-15T15:14:08Z kami joined #lisp 2017-08-15T15:14:16Z kami: Hello #lisp. 2017-08-15T15:14:51Z FreeBirdLjj joined #lisp 2017-08-15T15:18:08Z elfmacs quit (Quit: WeeChat 1.9) 2017-08-15T15:18:39Z phoe: Key kami 2017-08-15T15:18:50Z elfmacs joined #lisp 2017-08-15T15:20:30Z beach: Hello kami. You don't show up very often these days. 2017-08-15T15:21:31Z kami: Hi beach: I was very busy working in two different customer projects at the same time. 2017-08-15T15:21:35Z daemoz quit (Remote host closed the connection) 2017-08-15T15:21:54Z daemoz joined #lisp 2017-08-15T15:22:10Z kami: Hope to get back to a sane mode soon. 2017-08-15T15:22:10Z beach: I see. Work take a lot of time from more interesting stuff, doesn't it? 2017-08-15T15:22:45Z kami: beach: definitely! Especially if it is boring Java SOAP stuff. 2017-08-15T15:23:32Z beach: Got to pay the bills, I suppose. 2017-08-15T15:23:48Z Kyo91 joined #lisp 2017-08-15T15:24:01Z kami: beach: that's it. 2017-08-15T15:24:39Z damke joined #lisp 2017-08-15T15:25:32Z kami: Can someone please help me optimise this function. I've sprinkled it with any combination of (the single-float ...) and (the fixnum ...) without avail. Now I've decided to try to understand with your help what happens. 2017-08-15T15:25:33Z kami: http://paste.lisp.org/display/353520 2017-08-15T15:26:17Z damke_ quit (Ping timeout: 240 seconds) 2017-08-15T15:27:28Z Shinmera: kami: Well, your integer can be a bignum, so log can't be optimised for fixnums, so truncate can't, so 1+ can't. 2017-08-15T15:27:42Z Shinmera: That's what the notes are saying. 2017-08-15T15:29:10Z Shinmera: axion: Apparently the data type had to be :unsigned-int-24-8 (which is not mentioned on the spec page!) to match the depth-stencil format. 2017-08-15T15:29:14Z phoe: kami: why do you want this optimized so insanely? 2017-08-15T15:29:25Z kami: Shinmera: I also tried '(declare (type unsigned-byte n)'. With the same result IIRC. 2017-08-15T15:29:26Z Shinmera: axion: Wouldn't have been able to come to that idea without Baggers 2017-08-15T15:29:35Z axion: Ha 2017-08-15T15:30:04Z Shinmera: Anyway, so UI component clipping works. https://filebox.tymoon.eu//file/TVRRd013PT0= 2017-08-15T15:30:06Z kami: phoe: I was asked by a colleague :) 2017-08-15T15:32:06Z Bike: kami: unsigned-byte means numbers zero and up. there is no upper bound. 2017-08-15T15:32:32Z Trystam joined #lisp 2017-08-15T15:32:47Z Bike: so n can still be a bignum. 2017-08-15T15:32:55Z attila_lendvai joined #lisp 2017-08-15T15:32:55Z attila_lendvai quit (Changing host) 2017-08-15T15:32:55Z attila_lendvai joined #lisp 2017-08-15T15:33:55Z attila_lendvai quit (Read error: Connection reset by peer) 2017-08-15T15:33:59Z EvW quit (Ping timeout: 246 seconds) 2017-08-15T15:34:02Z kami: Bike: I pasted a wrong version. http://paste.lisp.org/display/353520#1 is with fixnum. Here, log is obviously optimised, but truncate now complains. 2017-08-15T15:34:54Z Tristam quit (Ping timeout: 248 seconds) 2017-08-15T15:34:57Z Trystam is now known as Tristam 2017-08-15T15:35:59Z attila_lendvai joined #lisp 2017-08-15T15:36:19Z axion: Oh my, that form 2017-08-15T15:36:35Z sdemarre quit (Quit: Leaving.) 2017-08-15T15:37:23Z Bike: not totally sure what's going on there, but you allow n to be negative, meaning log n will be complex 2017-08-15T15:37:53Z Shinmera: Try (unsigned-byte 32) as the type or something like that. 2017-08-15T15:38:11Z sdemarre joined #lisp 2017-08-15T15:38:11Z _death: it seems you're just trying stuff until things seem to work, instead of actually thinking about what input you want to have 2017-08-15T15:38:17Z Shinmera: Or better yet, do (check-type n (unsigned-byte 32)) 2017-08-15T15:38:28Z Bike quit (Remote host closed the connection) 2017-08-15T15:38:39Z sdemarre quit (Client Quit) 2017-08-15T15:38:45Z Bike joined #lisp 2017-08-15T15:38:57Z whoman: need something like this for CL: https://github.com/Wilfred/suggest.el 2017-08-15T15:38:57Z sdemarre joined #lisp 2017-08-15T15:39:04Z zulu_inuoe: Just because I always seem to discover new magical loop uses, is there a non-consing way to LOOP backwards through a list? 2017-08-15T15:39:25Z phoe: http://paste.lisp.org/display/353520#3 <- no warnings 2017-08-15T15:39:34Z phoe: zulu_inuoe: no. 2017-08-15T15:39:37Z Bike: zulu_inuoe: i'm afriad not. 2017-08-15T15:39:45Z phoe: You can nreverse the list if it's mutable. 2017-08-15T15:40:04Z zulu_inuoe: It is not. But okay! Just checking 2017-08-15T15:40:12Z quazimodo quit (Read error: Connection reset by peer) 2017-08-15T15:40:19Z phoe: kami: ^ 2017-08-15T15:40:20Z Bike: "list backwards" is not a great way to go 2017-08-15T15:40:23Z phoe: I added a plusp assertion 2017-08-15T15:40:32Z quazimodo joined #lisp 2017-08-15T15:40:50Z _death: you can also do a nonconsing loop that's inefficient 2017-08-15T15:41:01Z phoe: oh wait, you can do without the COERCE actually 2017-08-15T15:41:07Z phoe: _death: O(n²), sure 2017-08-15T15:41:30Z zulu_inuoe: Bike: That is true. I'll need to go back and optimize it anyway (drawing goes back-to-front, but raycasting happens front-to-back) so for now a consing loop (reverse it is 2017-08-15T15:42:22Z AxelAlex quit (Quit: AxelAlex) 2017-08-15T15:42:50Z phoe: zulu_inuoe: NREVERSE is the non-consing destructive version, REVERSE has no side effects but conses. 2017-08-15T15:44:07Z sdemarre quit (Ping timeout: 276 seconds) 2017-08-15T15:44:26Z zulu_inuoe: phoe: Yes. I am aware. I'm going to cons away with reverse for now and come back to it, because it's not worth it to make it a 'from end' loop if I have to hand-code it. So I'll just come back to it eventually and probably use a different data structure 2017-08-15T15:44:57Z _death: a nitpick is that nreverse may cons 2017-08-15T15:45:13Z kami: phoe: thank you. It was the possible zero! 2017-08-15T15:45:42Z kami: phoe: or this: http://paste.lisp.org/display/353520#5 2017-08-15T15:47:13Z elfmacs quit (Ping timeout: 240 seconds) 2017-08-15T15:54:10Z phoe: zulu_inuoe: how long is your list? 2017-08-15T15:54:31Z phoe: kami: >4611686018427387903 2017-08-15T15:54:33Z phoe: agh my eyes 2017-08-15T15:54:37Z phoe: magic numbers in code 2017-08-15T15:55:02Z kami: phoe: :) I wanted to try with most-positive-fixnum 2017-08-15T15:55:24Z phoe: kami: did it work? 2017-08-15T15:55:27Z kami: Yes 2017-08-15T15:55:41Z phoe: use that. it'll be portable that way. 2017-08-15T15:55:50Z phoe: different impls have different m-p-fixnums. 2017-08-15T15:55:51Z dTal left #lisp 2017-08-15T15:56:11Z kami: phoe: I know, thanks. Just wanted to see if there is a difference. 2017-08-15T15:56:17Z zulu_inuoe: phoe: It's UI code. Panels have a list of their children. So, small numbers like 10, max. 2017-08-15T15:56:35Z phoe: zulu_inuoe: you could be crazy and use recursion for such small numbers. 2017-08-15T15:56:37Z zulu_inuoe: And this reverse call is only on hit detection for mouse clicks, so it's not every frame sort of thing 2017-08-15T15:56:55Z phoe: do code "before", recursive call, do code after 2017-08-15T15:57:07Z phoe: there, you can iterate forwards and backwards on the list 2017-08-15T15:57:16Z zulu_inuoe: Oh. Haha yes I see 2017-08-15T15:57:30Z fiddlerwoaroof: Shinmera: I'm not ignoring you, I'll respond later this evening 2017-08-15T15:57:33Z zulu_inuoe: I understand. But.. no I think I'll keep this for now 0:) 2017-08-15T15:57:36Z phoe: and you allocate, but on the stack, so it might be cheating but, huh :D 2017-08-15T15:58:32Z zulu_inuoe: yeah. Allocating on the stack is totally cool nowadays right 2017-08-15T15:58:41Z zulu_inuoe: it's free 2017-08-15T15:59:03Z schweers: well … full function calls are quite expensive, are they not? 2017-08-15T15:59:18Z oleo: ya 2017-08-15T15:59:30Z phoe: schweers: the requirement was, no consing 2017-08-15T15:59:45Z oleo: use a continuation or closure if that's the case..... 2017-08-15T15:59:46Z schweers: I know, yet I guess for performance reasons 2017-08-15T16:00:04Z phoe: it would be awful, right. 2017-08-15T16:00:07Z oleo: call will be once and it will speed up things.... 2017-08-15T16:00:30Z phoe: closures cons though 2017-08-15T16:00:55Z dyelar joined #lisp 2017-08-15T16:01:12Z quazimodo quit (Read error: Connection reset by peer) 2017-08-15T16:01:25Z oleo: well you can also employ inlining 2017-08-15T16:01:37Z phoe: oh, I just got a crazy idea. 2017-08-15T16:01:45Z wooden quit (Read error: Connection reset by peer) 2017-08-15T16:01:48Z oleo: for not so big code...it will work fine..... 2017-08-15T16:01:50Z phoe: zulu_inuoe: do you know the length of the list in advance? is it constant for your whole operation? 2017-08-15T16:02:06Z zulu_inuoe: I was just joking guys! Sorry haha 2017-08-15T16:02:10Z wooden joined #lisp 2017-08-15T16:02:17Z zulu_inuoe: phoe: Yes. 2017-08-15T16:02:35Z oleo: there's no guarantee on inlining but the compiler will know when and when not the best.... 2017-08-15T16:02:41Z oleo: and you can hint at it 2017-08-15T16:03:32Z phoe: zulu_inuoe: stack-allocate a vector of length N and copy your list into it. 2017-08-15T16:03:43Z zulu_inuoe: Really.. I am just going to go back and write something efficient at a future date. It is okay!.. But thank you 2017-08-15T16:03:50Z phoe: if required, bind it to a special variable so you can access it from anywhere in your call. 2017-08-15T16:04:01Z phoe: to iterate forwards, aref it 0, 1, ..., N 2017-08-15T16:04:07Z phoe: to iterate backwards, N, N-1, ..., 0 2017-08-15T16:05:05Z phoe: O(n) time, O(n) stack space. 2017-08-15T16:05:33Z MrBismuth quit (Ping timeout: 240 seconds) 2017-08-15T16:06:07Z zulu_inuoe: http://paste.lisp.org/display/353524 2017-08-15T16:06:39Z zulu_inuoe: and yeah I just realized I can get rid of that let and use two more :for clauses 2017-08-15T16:06:50Z DeadTrickster quit (Remote host closed the connection) 2017-08-15T16:06:57Z zulu_inuoe: but aughh I will move on to my actual TODO list for today :P this is too distracting 2017-08-15T16:07:46Z Kevslinger joined #lisp 2017-08-15T16:08:38Z schweers quit (Remote host closed the connection) 2017-08-15T16:10:14Z beach: zulu_inuoe: Sorry. Bike and phoe have not read our paper. 2017-08-15T16:10:37Z beach: zulu_inuoe: http://metamodular.com/reverse-order.pdf 2017-08-15T16:11:37Z shka: eeeee, how about not doing that? :P 2017-08-15T16:15:51Z zulu_inuoe: :( 2017-08-15T16:16:12Z rippa joined #lisp 2017-08-15T16:16:47Z phoe: beach: woah 2017-08-15T16:18:13Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2017-08-15T16:19:37Z damke quit (Ping timeout: 240 seconds) 2017-08-15T16:21:12Z neoncontrails quit (Remote host closed the connection) 2017-08-15T16:22:03Z neoncontrails joined #lisp 2017-08-15T16:22:29Z neoncontrails quit (Remote host closed the connection) 2017-08-15T16:23:07Z neoncontrails joined #lisp 2017-08-15T16:24:38Z fkac quit (Remote host closed the connection) 2017-08-15T16:24:44Z Karl_Dscc joined #lisp 2017-08-15T16:24:46Z damke_ joined #lisp 2017-08-15T16:27:40Z neoncontrails quit (Ping timeout: 276 seconds) 2017-08-15T16:30:33Z elfmacs joined #lisp 2017-08-15T16:31:08Z Karl_Dscc quit (Remote host closed the connection) 2017-08-15T16:33:36Z jasom: beach: so basically build a skip-list rather than a reversed copy of the list? 2017-08-15T16:34:01Z beach: Except it is never explicitly built, so there is no consing. 2017-08-15T16:34:10Z arbv quit (Ping timeout: 276 seconds) 2017-08-15T16:34:11Z beach: Just traverse the list multiple times instead. 2017-08-15T16:34:59Z arbv joined #lisp 2017-08-15T16:35:18Z beach: As it turns out, the maximum number of traversals is quite small, and traversing a list is quite fast. 2017-08-15T16:35:46Z beach: For the sequence functions, it is expected that the most time is spent in the KEY and TEST functions. 2017-08-15T16:36:17Z varjag quit (Ping timeout: 246 seconds) 2017-08-15T16:38:02Z Shinmera: beach: You presented this at ELS'15, right? 2017-08-15T16:38:30Z beach: Some ELS. I forget which one. 2017-08-15T16:38:48Z Shinmera: Right. 2017-08-15T16:38:52Z jasom: beach: is the overhead for calculating the length (when not known) significant? 2017-08-15T16:39:28Z beach: jasom: No, that's just another traversal. 2017-08-15T16:39:51Z beach: Except for cache issues, it is very cheap. 2017-08-15T16:40:03Z beach: CONSP is typically just a tag test. 2017-08-15T16:40:17Z jasom: except on sbcl, as you note 2017-08-15T16:40:24Z beach: Yes. :) 2017-08-15T16:40:44Z beach: But the benchmarks in the paper are for SBCL. 2017-08-15T16:42:21Z m00natic quit (Remote host closed the connection) 2017-08-15T16:42:34Z beach: Time to go fix dinner for my (admittedly small) family. I might check in briefly later. 2017-08-15T16:47:06Z damke joined #lisp 2017-08-15T16:48:54Z damke_ quit (Ping timeout: 246 seconds) 2017-08-15T16:49:24Z kami quit (Ping timeout: 260 seconds) 2017-08-15T16:51:21Z jasom: Fare: it looks like I left my ql2nix script in a non-working state. I fixed the two issues I found and it's now running smoothly with 1270 nix expressions generated, which is ~40% done. It's an O(n^2) algorithm, (though with a verly large factor on the N and small factor on N^2) so probably ~20 more hours for it to run. I plan on parallelizing it once it's working solidly, which should hopefully get me to 2017-08-15T16:51:23Z jasom: ~12 hours of runtime on my machine. 2017-08-15T16:53:46Z axion: pngload is finished! 2017-08-15T16:54:37Z Xach: where does it live? 2017-08-15T16:54:52Z axion: https://github.com/mfiano/pngload 2017-08-15T16:55:37Z Fare quit (Ping timeout: 276 seconds) 2017-08-15T16:55:48Z warweasle joined #lisp 2017-08-15T17:00:01Z elfmacs quit (Ping timeout: 240 seconds) 2017-08-15T17:00:17Z defaultxr joined #lisp 2017-08-15T17:01:12Z al-damiri joined #lisp 2017-08-15T17:01:38Z Xach: sweet 2017-08-15T17:01:51Z neoncontrails joined #lisp 2017-08-15T17:02:16Z axion: Issue made 2017-08-15T17:02:57Z damke quit (Ping timeout: 240 seconds) 2017-08-15T17:03:40Z jackdaniel: congrats 2017-08-15T17:03:49Z moei quit (Quit: Leaving...) 2017-08-15T17:03:58Z jackdaniel: are you planning to include some kind of benchmark table? (comparing to cffi and png-read)? 2017-08-15T17:04:08Z warweasle: In PAIP, where he uses unification to create a logic-based prolog: Could I use a depth first topological sort instead? 2017-08-15T17:04:25Z warweasle: Instead of unification, I mean. 2017-08-15T17:04:52Z Xach: I wonder what kind of speedup you could get from avoiding the special variables. 2017-08-15T17:05:05Z axion: jackdaniel: Not at the moment but see: https://www.axity.net/blog/article/7 2017-08-15T17:06:04Z axion: and the new library is 2-3 times faster than those results. 2017-08-15T17:07:14Z Fare joined #lisp 2017-08-15T17:07:28Z Xach: axion: have you considered apng support? 2017-08-15T17:07:37Z Xach: it is something i've considered for zpng from time to time 2017-08-15T17:08:06Z axion: Xach: Not much actually, and the benefit of the 2 (I think) specials far outweigh a performance penalty. The specials shadow the buffer pointer for each branch of the concrete syntax tree, so I do not have to manage it myself. 2017-08-15T17:08:59Z axion: Xach: I have not. 2017-08-15T17:09:07Z axion: I'll look into it 2017-08-15T17:09:28Z axion: I've only heard of MNG 2017-08-15T17:09:38Z kami joined #lisp 2017-08-15T17:09:44Z Xach: apng has been around for a long time but support is not universal. but i think it is increasing. 2017-08-15T17:10:15Z MrBismuth joined #lisp 2017-08-15T17:10:35Z Bicyclidine joined #lisp 2017-08-15T17:11:48Z axion: I see. 2017-08-15T17:12:08Z milanj joined #lisp 2017-08-15T17:12:22Z axion: I will be taking a break from image formats for a little bit. It took me a week to code this up, because I wanted to do it right. I had help from |3b|...he contributed quite a bit of code too. Thanks! 2017-08-15T17:12:31Z FreeBirdLjj quit (Remote host closed the connection) 2017-08-15T17:12:54Z Bike quit (Ping timeout: 240 seconds) 2017-08-15T17:13:54Z strelox joined #lisp 2017-08-15T17:16:31Z Fare quit (Ping timeout: 240 seconds) 2017-08-15T17:17:23Z varjag joined #lisp 2017-08-15T17:17:33Z varjag quit (Remote host closed the connection) 2017-08-15T17:18:36Z safe joined #lisp 2017-08-15T17:19:50Z Suzuran quit (Read error: Connection reset by peer) 2017-08-15T17:20:32Z Suzuran joined #lisp 2017-08-15T17:22:11Z vtomole joined #lisp 2017-08-15T17:23:41Z brendos quit (Ping timeout: 248 seconds) 2017-08-15T17:28:31Z neoncontrails quit 2017-08-15T17:30:01Z Achylles quit (Ping timeout: 240 seconds) 2017-08-15T17:30:53Z knobo quit (Ping timeout: 246 seconds) 2017-08-15T17:46:11Z FreeBirdLjj joined #lisp 2017-08-15T17:52:22Z mson quit (Quit: Connection closed for inactivity) 2017-08-15T17:58:46Z thetabit joined #lisp 2017-08-15T18:01:21Z thetabit: What are some use cases that plist should be used instead of a hashtable? 2017-08-15T18:02:21Z Achylles joined #lisp 2017-08-15T18:02:25Z Shinmera: readability, convenience, speed for small sets. 2017-08-15T18:02:29Z axion: When you want to use APPLY to create an instance? 2017-08-15T18:02:32Z jasom: thetabit: if you want destructuring-bind 2017-08-15T18:03:37Z arbv quit (Quit: ZNC - http://znc.in) 2017-08-15T18:03:41Z jasom: thetabit: also if you want to share structure (plists can be used as a very simple immutable data type) 2017-08-15T18:04:44Z axion: Don't forget about alists though 2017-08-15T18:04:48Z arbv joined #lisp 2017-08-15T18:04:52Z thetabit: Okay 2017-08-15T18:06:34Z Achylles quit (Ping timeout: 246 seconds) 2017-08-15T18:06:45Z Payphone joined #lisp 2017-08-15T18:06:49Z thetabit: so I am trying to create objects that store information about a database and it's tables and fields. Properties include can update table, can update a field within a table, or table is read only, etc. I can't imagine that the property list would be very big, maybe like 15 properties 2017-08-15T18:07:15Z axion: Have you read PCL. There is a practical chapter on doing just this with CDs. 2017-08-15T18:07:28Z axion: That was meant to be a question. 2017-08-15T18:07:34Z thetabit: Yeah, the small database 2017-08-15T18:07:44Z thetabit: I was just reading that 2017-08-15T18:09:15Z axion: Did you have a question about that? 2017-08-15T18:10:24Z thetabit: haha, I'm just being hesitant because it feels like it needs to be more complicated... I am going to try to build first using plist, (or alist) and see how it feels :D 2017-08-15T18:10:58Z axion: Well, like all data structures, it really depends on how the data will be used. 2017-08-15T18:11:08Z thetabit: in PCL he states that plist or a poor mans hashtable 2017-08-15T18:11:19Z thetabit: so I wasn't sure if I should avoid using them 2017-08-15T18:11:29Z thetabit: are* 2017-08-15T18:12:08Z EvW joined #lisp 2017-08-15T18:12:13Z axion: Right. Any list, or actually linked list, must traverse it to the end to add to it, or find something in it. Hash tables are near constant speed....not linear. 2017-08-15T18:12:34Z axion: You can push to the front of a list rather fast, or keep a pointer to the tail to avoid this, but 2017-08-15T18:12:43Z axion: It really depends how you want to use the data :) 2017-08-15T18:13:16Z Shinmera: The constant lookup of a hash table can exceed the traversal of a list in some cases. 2017-08-15T18:13:28Z thetabit: Yep just small data sets contain properties for how an object should be loaded. So small lists seem to be okay in this instance I think 2017-08-15T18:13:30Z Shinmera: So as always: benchmark, if you have to care. 2017-08-15T18:13:42Z Shinmera: And if you don't have to care: just do what is convenient 2017-08-15T18:14:09Z warweasle: If I have a recursive function where all paths return nil, will that tail-call optimize? 2017-08-15T18:14:19Z axion: warweasle: That depends 2017-08-15T18:14:33Z Shinmera: What a function returns has nothing to do with whether it's at tail position 2017-08-15T18:14:39Z KongWubba joined #lisp 2017-08-15T18:15:19Z warweasle: Shinmera: So adding a (recurse ..) nil)))) might make things worse? 2017-08-15T18:15:25Z vap1 quit (Quit: Leaving) 2017-08-15T18:15:29Z Fare joined #lisp 2017-08-15T18:16:29Z scymtym_ joined #lisp 2017-08-15T18:17:46Z scymtym quit (Ping timeout: 240 seconds) 2017-08-15T18:18:08Z Zinzon joined #lisp 2017-08-15T18:18:47Z Shinmera: Test and find out. 2017-08-15T18:20:05Z Achylles joined #lisp 2017-08-15T18:21:57Z eazar001 joined #lisp 2017-08-15T18:23:02Z FreeBirdLjj quit (Remote host closed the connection) 2017-08-15T18:23:27Z Payphone left #lisp 2017-08-15T18:28:45Z JohnTalent joined #lisp 2017-08-15T18:33:07Z thetabit quit (Quit: Page closed) 2017-08-15T18:33:25Z Bock quit (Ping timeout: 240 seconds) 2017-08-15T18:39:29Z sellout- quit (Quit: Leaving.) 2017-08-15T18:44:29Z Hknwb77 joined #lisp 2017-08-15T18:50:19Z LiamH joined #lisp 2017-08-15T18:50:47Z moei joined #lisp 2017-08-15T18:51:02Z Bicyclidine: is change-class a no-op if the instsance is already a direct instance of the class, or should i ust avoid that 2017-08-15T18:51:10Z knicklux quit (Quit: Leaving) 2017-08-15T18:51:28Z knicklux joined #lisp 2017-08-15T18:52:33Z some-user joined #lisp 2017-08-15T18:52:36Z some-user: hello 2017-08-15T18:52:57Z some-user: is it possible to destructure struct inside defun's arguments? 2017-08-15T18:53:27Z JohnTalent quit (Quit: leaving) 2017-08-15T18:53:29Z axion: some-user: inside arguments? 2017-08-15T18:53:32Z Bicyclidine: function parameters aren't destructured arbitrarily. you can use destructuring-bind for that. 2017-08-15T18:53:48Z some-user: for example if i'm expecting function to accept point struct(x,y) can i get those x and y in (defun f (magic x y))? 2017-08-15T18:54:03Z some-user: Bicyclidine: ah, okay 2017-08-15T18:54:07Z _death: not with cl:defun 2017-08-15T18:54:25Z some-user: _death:is there defun which can do that? 2017-08-15T18:54:46Z _death: not that I know, you could have some-user:defun do it 2017-08-15T18:54:57Z some-user: _death: yeah :) 2017-08-15T18:55:28Z axion: What's wrong with destructuring-bind anyway? 2017-08-15T18:55:42Z _death: it also won't work with a structure-object 2017-08-15T18:56:09Z scymtym__ joined #lisp 2017-08-15T18:56:31Z varjag joined #lisp 2017-08-15T18:56:40Z eazar001 quit (Quit: WeeChat 1.9) 2017-08-15T18:57:09Z axion: If that is a real 2d point struct, it should probably not be a structure-class anyway and supply :type argument instead. 2017-08-15T18:57:33Z scymtym_ quit (Ping timeout: 240 seconds) 2017-08-15T18:57:49Z _cosmonaut_ quit (Ping timeout: 276 seconds) 2017-08-15T18:57:55Z some-user: axion: could you please elaborate on why (defstruct point (x y)) is bad? 2017-08-15T18:58:04Z Fare quit (Ping timeout: 240 seconds) 2017-08-15T18:59:46Z _death: one old trick is to represent 2d coordinates as complex numbers 2017-08-15T19:00:05Z axion: some-user: Sure. a defstruct has the option to be typed into a list or vector, to be compiled into such a type, instead of having the overhead of a class instance. This way, you get vector indexing with aref etc, as well as named accessors, and the result, on sbcl at least is the same assembly as regular arrays. 2017-08-15T19:00:15Z axion: So, performance. 2017-08-15T19:00:23Z axion: and convenience rolled into one 2017-08-15T19:01:02Z _death: then it may save space.. and abs, for example, would give you distance from 0, 0 2017-08-15T19:02:26Z EvW quit (Ping timeout: 240 seconds) 2017-08-15T19:03:08Z knicklux quit (*.net *.split) 2017-08-15T19:03:08Z LiamH quit (*.net *.split) 2017-08-15T19:03:09Z strelox quit (*.net *.split) 2017-08-15T19:03:09Z MrBismuth quit (*.net *.split) 2017-08-15T19:03:09Z defaultxr quit (*.net *.split) 2017-08-15T19:03:09Z warweasle quit (*.net *.split) 2017-08-15T19:03:19Z whoman quit (*.net *.split) 2017-08-15T19:03:19Z random-nick quit (*.net *.split) 2017-08-15T19:03:19Z ryan_vw quit (*.net *.split) 2017-08-15T19:03:19Z smazga quit (*.net *.split) 2017-08-15T19:03:19Z tfb quit (*.net *.split) 2017-08-15T19:03:19Z vicfred quit (*.net *.split) 2017-08-15T19:03:19Z djinni` quit (*.net *.split) 2017-08-15T19:03:19Z grumble quit (*.net *.split) 2017-08-15T19:03:19Z head|cat quit (*.net *.split) 2017-08-15T19:03:19Z beach quit (*.net *.split) 2017-08-15T19:03:19Z zymurgy quit (*.net *.split) 2017-08-15T19:03:19Z Intensity quit (*.net *.split) 2017-08-15T19:03:19Z axion: some-user: Here is an example of mine. 'instances' of this struct are not class instances like normal structs, and are instead (simple-array single-float (3)) types. At the same time, you can still use the x/y/z accessors to index into them. https://github.com/mfiano/gamebox-math/blob/master/src/vector-base.lisp#L6-L13 2017-08-15T19:03:21Z smazga joined #lisp 2017-08-15T19:03:29Z vicfred joined #lisp 2017-08-15T19:03:34Z grumble joined #lisp 2017-08-15T19:03:35Z head|cat joined #lisp 2017-08-15T19:03:37Z ryan_vw joined #lisp 2017-08-15T19:03:37Z knicklux joined #lisp 2017-08-15T19:03:39Z beach joined #lisp 2017-08-15T19:03:43Z tfb joined #lisp 2017-08-15T19:03:51Z whoman joined #lisp 2017-08-15T19:03:56Z defaultxr joined #lisp 2017-08-15T19:04:05Z pjb: Bicyclidine: the standard doesn't seem to say anything, but the name of update-instance-for-different-class would indicate that change-class doesn't call it when it's the same class. Otherwise, you could count on side effects performed by shared-initialize and update-instance-for-different-class to apply. I think I would avoid doing that… 2017-08-15T19:04:07Z djinni` joined #lisp 2017-08-15T19:04:11Z MrBismuth joined #lisp 2017-08-15T19:04:15Z zymurgy joined #lisp 2017-08-15T19:04:24Z pjb: some-user: only if the structure is of :type list. 2017-08-15T19:04:33Z pjb: some-user: otherwise you can use with-accessors 2017-08-15T19:04:39Z pjb: clhs with-accessors 2017-08-15T19:04:39Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_w_acce.htm 2017-08-15T19:04:54Z axion: pjb: I use with-accessors on type vector 2017-08-15T19:05:17Z pjb: You can use with-accessors on any kind of structure or even other things, as long as you have accessors for it. 2017-08-15T19:05:25Z vibs29 quit (Ping timeout: 240 seconds) 2017-08-15T19:05:55Z Xal quit (Ping timeout: 240 seconds) 2017-08-15T19:05:56Z axion: What was that about only of :type list? 2017-08-15T19:06:01Z some-user: axion: pjb thank you! 2017-08-15T19:06:03Z _death: I don't remember the last time I wanted to use with-accessors 2017-08-15T19:06:31Z _death: axion: d-bind won't do with vector 2017-08-15T19:06:33Z EvW joined #lisp 2017-08-15T19:06:38Z axion: Oh right. 2017-08-15T19:06:52Z pjb: (defstruct (point (:type list)) x y) (defun foo (p) (destructuring-bind (x y) p (list :x x :y y))) (foo (make-point :x 1 :y 2)) #| --> (:x 1 :y 2) |# 2017-08-15T19:06:53Z mfiano quit (Remote host closed the connection) 2017-08-15T19:07:11Z axion: Two different topics, sorry :) 2017-08-15T19:07:16Z mfiano joined #lisp 2017-08-15T19:07:26Z pjb: or (defun bar (x y) (list 'x x 'y y)) (apply (function bar) (make-point :x 1 :y 2) #| --> (1 2) |# 2017-08-15T19:07:57Z pjb: You can even use apply :-) 2017-08-15T19:08:13Z pjb: (as long as your structure has less than call-arguments-limit slots). 2017-08-15T19:08:18Z pjb: structure/list 2017-08-15T19:08:26Z vibs29 joined #lisp 2017-08-15T19:09:16Z axion: Which is plenty high on most implementations. As far as I remember ABCL had 50, which is by far the lowest I've seen. 2017-08-15T19:09:17Z Xal joined #lisp 2017-08-15T19:09:38Z pjb: Yes, it's the absolute lowest for a conforming CL implementation. 2017-08-15T19:09:59Z pjb: But I've seen (not in lisp) structures with way more slots… 2017-08-15T19:10:01Z _death: but how will you represent 2^128-d points? 2017-08-15T19:12:00Z phoe: _death: gimme n*2^128 bytes of memory - we'll talk later 2017-08-15T19:13:08Z axion: Talk to the JVM 2017-08-15T19:14:47Z sellout- joined #lisp 2017-08-15T19:14:48Z _death: phoe: sure, I can give you at a monetary rate that's a little higher than average.. and a supply rate that's reasonable 2017-08-15T19:14:56Z LiamH joined #lisp 2017-08-15T19:16:04Z drcode quit (Read error: Connection reset by peer) 2017-08-15T19:17:11Z _death: (pay-as-you-go, in case you thought of /that/ retort ;) 2017-08-15T19:17:41Z Jesin joined #lisp 2017-08-15T19:18:39Z pjb: You'd need, I estimate, about one billion Earth planets to gather 2^128 bytes of RAM… 2017-08-15T19:18:58Z pjb: If you have to ask the price, you're not rich enough to pay for a galaxy… 2017-08-15T19:19:25Z pjb: (current Earth planets. Of course, we'll have more storage in the future; can you afford a time machine?) 2017-08-15T19:19:55Z _death: pjb: if you understood my meaning, you'd understand that I would get richer and richer so I can buy more and more galaxy to sell :) 2017-08-15T19:21:17Z shka: what is the estimate number of atoms in the universe? 2017-08-15T19:21:48Z _death: shka: https://en.wikipedia.org/wiki/Observable_universe 2017-08-15T19:22:52Z vicfred quit (Quit: Leaving) 2017-08-15T19:23:06Z shka: ok 2017-08-15T19:23:10Z shka: good 2017-08-15T19:23:32Z shka: great 2017-08-15T19:23:32Z FreeBirdLjj joined #lisp 2017-08-15T19:23:43Z shka: so there is at the very least enough atoms for every bit :P 2017-08-15T19:23:59Z shka: but not for 257 2017-08-15T19:24:23Z shka: good night 2017-08-15T19:25:11Z _death: 10^80 = 2^265.75 approx 2017-08-15T19:25:23Z shka: indeed 2017-08-15T19:25:32Z shka: but byte contains 8 bits 2017-08-15T19:25:43Z axion: Not always 2017-08-15T19:25:47Z shka: right 2017-08-15T19:25:49Z shka: not always 2017-08-15T19:25:55Z axion: A byte is a very ambiguous term 2017-08-15T19:26:01Z _death: so you meant "for every byte"? 2017-08-15T19:26:29Z shka: anyway, 128 bit long adress space is large 2017-08-15T19:26:33Z shka: seriously large 2017-08-15T19:27:41Z _death: the age of naive cryptography hammered that into the heads of many 2017-08-15T19:28:25Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2017-08-15T19:28:34Z shka: oh, i was not talking about hash lenght 2017-08-15T19:28:40Z shka: good bye! 2017-08-15T19:32:55Z shka quit (Ping timeout: 240 seconds) 2017-08-15T19:33:22Z fsmunoz quit (Ping timeout: 246 seconds) 2017-08-15T19:36:54Z random-nick joined #lisp 2017-08-15T19:42:03Z Hknwb77 quit (Remote host closed the connection) 2017-08-15T19:43:31Z BlueRavenGT joined #lisp 2017-08-15T19:48:34Z angavrilov quit (Remote host closed the connection) 2017-08-15T19:49:39Z Achylles quit (Quit: Leaving) 2017-08-15T19:50:52Z hosas joined #lisp 2017-08-15T20:00:10Z hosas left #lisp 2017-08-15T20:02:06Z nick123 left #lisp 2017-08-15T20:03:50Z some-user quit (Remote host closed the connection) 2017-08-15T20:05:35Z fsmunoz joined #lisp 2017-08-15T20:05:58Z scymtym__ quit (Ping timeout: 260 seconds) 2017-08-15T20:08:47Z arbv quit (Ping timeout: 255 seconds) 2017-08-15T20:09:50Z Patzy quit (Quit: leaving) 2017-08-15T20:10:10Z Patzy joined #lisp 2017-08-15T20:12:54Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2017-08-15T20:15:34Z arbv joined #lisp 2017-08-15T20:21:18Z yrk quit (Read error: Connection reset by peer) 2017-08-15T20:24:44Z FreeBirdLjj joined #lisp 2017-08-15T20:26:59Z jrm: Anyone here today affiliated with common-lisp.net ? Most or all of the tarball links at gitlab.common-lisp.net seem to be broken. 2017-08-15T20:27:17Z phoe: jrm: #common-lisp.net 2017-08-15T20:27:56Z jrm: ty phoe 2017-08-15T20:29:07Z FreeBirdLjj quit (Ping timeout: 255 seconds) 2017-08-15T20:30:45Z malice joined #lisp 2017-08-15T20:31:41Z Fare joined #lisp 2017-08-15T20:35:02Z dyelar quit (Quit: Leaving.) 2017-08-15T20:39:19Z yrk joined #lisp 2017-08-15T20:41:05Z Guest6344 joined #lisp 2017-08-15T20:41:17Z BlueRavenGT quit (Remote host closed the connection) 2017-08-15T20:42:31Z Zinzon quit (Ping timeout: 260 seconds) 2017-08-15T20:51:42Z Posterdati: hi 2017-08-15T20:51:57Z Posterdati: is anyone using openbsd? 2017-08-15T20:53:53Z phoe: Posterdati: what's your issue? 2017-08-15T20:57:33Z Posterdati: phoe I fixed an iolib issue with openbsd errno constants, if someone is interested... 2017-08-15T20:58:01Z phoe: Posterdati: did you file a github PR for that? 2017-08-15T20:58:27Z varjag quit (Read error: Connection reset by peer) 2017-08-15T20:58:53Z Posterdati: phoe: I think I did one year ago... still no fix 2017-08-15T21:00:07Z phoe: Posterdati: I meant a PR, not an issue 2017-08-15T21:00:15Z phoe: you mean that you filed an issue, a year passed, and now you fixed it? 2017-08-15T21:01:01Z Posterdati: no I fixed one year ago 2017-08-15T21:01:52Z Posterdati: I do not recall how I PR it and if I submit a fork 2017-08-15T21:02:00Z phoe: Posterdati: I see 2017-08-15T21:02:06Z Posterdati: I do not recall how I PR it and if I submitted a fork 2017-08-15T21:02:46Z Posterdati: I experienced again the same issue installing a new openbsd system :) 2017-08-15T21:03:17Z pjb: Posterdati: it's rather very easy to know, you just log in into your github account, and it will tell you everything about your PR. 2017-08-15T21:04:37Z Posterdati: no record on github 2017-08-15T21:06:34Z Posterdati: wait! 2017-08-15T21:06:37Z Posterdati: I forked it! 2017-08-15T21:06:43Z phoe: hah! 2017-08-15T21:06:49Z phoe: go make a pull request then! 2017-08-15T21:06:50Z Draz joined #lisp 2017-08-15T21:07:48Z Posterdati: in 2015 2017-08-15T21:08:02Z Posterdati: I should PR it again 2017-08-15T21:09:18Z phoe: Common Lisp: where you suddenly remember that you made a pull request two years ago and go check if it was merged 2017-08-15T21:09:24Z phoe: 10/10 would commit again 2017-08-15T21:09:29Z vydd joined #lisp 2017-08-15T21:10:06Z Posterdati: ok I will check tomorrow... Good night! 2017-08-15T21:11:24Z Jesin quit (Ping timeout: 240 seconds) 2017-08-15T21:11:42Z Jesin joined #lisp 2017-08-15T21:12:38Z rpg joined #lisp 2017-08-15T21:19:02Z Fare: rpg: any news re: ASDF 3.3.0 ? 2017-08-15T21:19:24Z rpg: Still waiting to get the test transcript files from our volunteers. 2017-08-15T21:19:53Z attila_lendvai quit (Quit: Leaving.) 2017-08-15T21:19:55Z kami quit (Ping timeout: 240 seconds) 2017-08-15T21:20:03Z Bicyclidine quit (Ping timeout: 260 seconds) 2017-08-15T21:22:25Z KongWubba quit (Ping timeout: 240 seconds) 2017-08-15T21:25:27Z FreeBirdLjj joined #lisp 2017-08-15T21:27:12Z cluck joined #lisp 2017-08-15T21:30:01Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2017-08-15T21:31:08Z Zotan quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2017-08-15T21:31:16Z Fare: do you have access to a machine with LW7 ? 2017-08-15T21:31:32Z Fare: I suppose I could beg LW for a new license? 2017-08-15T21:31:36Z rpg: Only Linux and Mac. 2017-08-15T21:32:06Z rpg: I could perhaps ask Dave if I could put the LW evaluation license I have on his VM, but he'd have to agree it's only for ASDF testing use. 2017-08-15T21:32:13Z mishoo_ quit (Ping timeout: 248 seconds) 2017-08-15T21:32:29Z rpg: I'd like to punch the person who thought /var was a good place to put virtual machines..... 2017-08-15T21:39:29Z phoe: rpg: of course it's the proper location, /var/ stands for Virtualization Area Root 2017-08-15T21:40:36Z z3t0_ joined #lisp 2017-08-15T21:40:39Z z3t0_: hi 2017-08-15T21:40:41Z z3t0_ is now known as z3t0 2017-08-15T21:40:45Z z3t0: hi 2017-08-15T21:41:04Z phoe: hey 2017-08-15T21:46:26Z rpg: phoe: I thought it stood for "Robert won't back it up," in cyrillic 2017-08-15T21:47:12Z rpg: Or maybe "rsnapshot won't back it up" 2017-08-15T21:48:01Z emacsomancer joined #lisp 2017-08-15T21:48:09Z zotan joined #lisp 2017-08-15T21:58:41Z Achylles joined #lisp 2017-08-15T22:04:53Z jamtho quit (Ping timeout: 240 seconds) 2017-08-15T22:07:25Z jamtho joined #lisp 2017-08-15T22:09:01Z Kyo91 quit (Ping timeout: 248 seconds) 2017-08-15T22:10:53Z dim: I want to extend a feature from cl-mustache, and for that I want to add a bahevior when a defmethod returns nil, can I do that from an :after auxiliary method, or do I need to implement an :around method? 2017-08-15T22:11:18Z Bike joined #lisp 2017-08-15T22:11:41Z dim: seems I need :around 2017-08-15T22:15:55Z wooden quit (Ping timeout: 240 seconds) 2017-08-15T22:16:47Z dim: yeah works 2017-08-15T22:16:56Z dim: ♥ clos 2017-08-15T22:17:26Z gabiruh quit (Ping timeout: 240 seconds) 2017-08-15T22:17:54Z random-nick quit (Remote host closed the connection) 2017-08-15T22:18:07Z sellout- quit (Read error: Connection reset by peer) 2017-08-15T22:18:27Z sellout- joined #lisp 2017-08-15T22:18:34Z zotan quit (Quit: ZNC - http://znc.in) 2017-08-15T22:19:11Z phoe: dim: you need to create a subclass of that class, unless the class is final, at which point you're screwed. inside that subclass, create a method with the same signature and include a call to super() that will return a value; based on that value, you will be able to implement the logic you want. 2017-08-15T22:19:17Z zotan joined #lisp 2017-08-15T22:19:41Z phoe: oh, whoops, this is not Java - here you can do it in three lines of code instead of a whole separate God damn class file <3 2017-08-15T22:19:43Z rRru joined #lisp 2017-08-15T22:19:59Z gabiruh joined #lisp 2017-08-15T22:20:08Z Karl_Dscc joined #lisp 2017-08-15T22:23:01Z Draz quit (Ping timeout: 240 seconds) 2017-08-15T22:23:06Z Karl_Dscc quit (Remote host closed the connection) 2017-08-15T22:24:08Z random-nick joined #lisp 2017-08-15T22:25:56Z Shinmera: If reflection actually allowed replacing methods Java could be made to be much more bearable. 2017-08-15T22:26:13Z FreeBirdLjj joined #lisp 2017-08-15T22:26:59Z Shinmera: Maybe that'll show up in Java 95 2017-08-15T22:28:50Z dim: phoe: and in Java you can't make anything happen unless you have access to all call sites instanciating the objects 2017-08-15T22:29:00Z Draz joined #lisp 2017-08-15T22:30:31Z phoe: dim: of course you have all call sites instantiating the objects, after all you've made your own Factory class that produces these objects for you, so you only change the Factory code. 2017-08-15T22:30:49Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2017-08-15T22:31:00Z phoe: it's obvious you don't create these objects anywhere else in any other places or ways and no other client code you're using creates them anywhere else, right? Right? 2017-08-15T22:31:22Z jamtho_ joined #lisp 2017-08-15T22:33:42Z AntiSpamMeta quit (Read error: Connection reset by peer) 2017-08-15T22:33:55Z AntiSpamMeta joined #lisp 2017-08-15T22:34:15Z jamtho quit (Ping timeout: 276 seconds) 2017-08-15T22:35:10Z dim: oh, that would be why they invented Factories then... 2017-08-15T22:36:09Z cluck: FactoryFactoryFactory(train.joke) 2017-08-15T22:36:20Z mason left #lisp 2017-08-15T22:37:07Z pierpa joined #lisp 2017-08-15T22:41:09Z justinmcp_ quit (Quit: No Ping reply in 180 seconds.) 2017-08-15T22:42:15Z justinmcp joined #lisp 2017-08-15T22:44:17Z mson joined #lisp 2017-08-15T22:44:48Z phoe: AbstractLispObjectFactoryInstantiationStrategyLoaderImpl 2017-08-15T22:46:12Z smazga quit (Quit: leaving) 2017-08-15T22:48:13Z random-nick quit (Remote host closed the connection) 2017-08-15T22:48:58Z malice: Java's design decisions can be hilarious. 2017-08-15T22:49:08Z malice: For example, they don't have default arguments for their parameters. 2017-08-15T22:51:38Z phoe: of course they don't. you couldn't determine a function by its signature then 2017-08-15T22:52:10Z phoe: if you have foo(String, String default "bar") and foo(String) you have separate functions, but then a call to foo("asfads") would be ambiguous 2017-08-15T22:53:13Z RainingRainbows joined #lisp 2017-08-15T22:55:07Z dim: the compiler would then complain and prevent this situation from happening 2017-08-15T22:55:13Z dim: that's what PostgreSQL does, IIRC 2017-08-15T22:58:18Z basket: Same with C++ 2017-08-15T22:58:30Z basket: That's no reason not to have default arguments 2017-08-15T23:02:31Z Kyo91 joined #lisp 2017-08-15T23:05:25Z cromachina joined #lisp 2017-08-15T23:06:09Z pjb: public void foo(String a, String b); public void foo(String a){ foo(a,"bar"/*the default*/); } 2017-08-15T23:06:26Z pjb: that's because it has default arguments, even _computed_ default arguments! 2017-08-15T23:06:32Z quazimodo joined #lisp 2017-08-15T23:07:34Z dim: pjb: do you know http://p-nand-q.com/programming/obfuscation/java/computed_gotos_howto.html already? ;-) 2017-08-15T23:08:14Z pjb: :-) 2017-08-15T23:08:22Z Draz quit (Quit: Leaving) 2017-08-15T23:08:22Z pjb: This is what we'd do in CL too :-) 2017-08-15T23:08:38Z LiamH quit (Quit: Leaving.) 2017-08-15T23:09:28Z dim: somehow related, http://p-nand-q.com/programming/languages/java2k/index.html 2017-08-15T23:12:24Z sellout- quit (Quit: Leaving.) 2017-08-15T23:22:08Z whoman quit (Remote host closed the connection) 2017-08-15T23:24:37Z Achylles quit (Ping timeout: 255 seconds) 2017-08-15T23:27:01Z FreeBirdLjj joined #lisp 2017-08-15T23:28:31Z _rumbler31 quit (Ping timeout: 240 seconds) 2017-08-15T23:33:17Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2017-08-15T23:34:17Z rumbler31 quit (Remote host closed the connection) 2017-08-15T23:37:00Z jamtho_ quit (Ping timeout: 246 seconds) 2017-08-15T23:39:59Z al-damiri quit (Quit: Connection closed for inactivity) 2017-08-15T23:40:41Z Jesin quit (Quit: Leaving) 2017-08-15T23:41:46Z jamtho_ joined #lisp 2017-08-15T23:52:43Z cluck quit (Ping timeout: 246 seconds) 2017-08-15T23:53:23Z whoman joined #lisp 2017-08-15T23:56:49Z rngoodn joined #lisp