2018-01-16T00:03:27Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T00:05:56Z arbv joined #lisp 2018-01-16T00:07:43Z pagnol joined #lisp 2018-01-16T00:08:37Z fikka joined #lisp 2018-01-16T00:08:52Z wigust_ joined #lisp 2018-01-16T00:10:32Z wigust quit (Ping timeout: 276 seconds) 2018-01-16T00:13:24Z fikka quit (Ping timeout: 268 seconds) 2018-01-16T00:14:33Z lroca joined #lisp 2018-01-16T00:15:30Z fortitude quit (Quit: Leaving) 2018-01-16T00:16:35Z squaanchi joined #lisp 2018-01-16T00:16:39Z squaanchi: hmm 2018-01-16T00:16:55Z squaanchi: is there anything like spark or cassandra in lisp? 2018-01-16T00:18:28Z aeth: NoSQL DB in general? 2018-01-16T00:19:48Z smasta joined #lisp 2018-01-16T00:19:59Z s992 joined #lisp 2018-01-16T00:21:18Z rpg: I think my colleagues have used MongoDB from lisp, but I'm afraid I don't know what API they used. 2018-01-16T00:21:51Z s992 quit (Read error: Connection reset by peer) 2018-01-16T00:22:05Z aeth: I don't think there's a major modern NoSQL (or SQL) database written in Common Lisp. Most people who need a database afaik use postmodern to use PostgreSQL. 2018-01-16T00:22:25Z aeth: There are probably libraries that support the major NoSQLs, too. 2018-01-16T00:23:50Z aeth: Some databases are written in Java, which is roughly the performance of SBCL (it's hard to compare languages) so there's probably nothing stopping someone from writing a DB in Lisp. 2018-01-16T00:24:36Z aeth: Interestingly, a database isn't on this list. http://metamodular.com/Common-Lisp/suggested-projects.html 2018-01-16T00:28:01Z aeth: http://www.cliki.net/Database 2018-01-16T00:28:15Z aeth: squaanchi: One of those databases might be what you want. ^ 2018-01-16T00:28:41Z fikka joined #lisp 2018-01-16T00:28:59Z aeth: Too bad it's a mix between databases written in Lisp and bindings to other databases 2018-01-16T00:32:02Z nalik891 quit (Ping timeout: 256 seconds) 2018-01-16T00:33:35Z fikka quit (Ping timeout: 248 seconds) 2018-01-16T00:37:03Z damke joined #lisp 2018-01-16T00:37:53Z igemnace quit (Read error: Connection reset by peer) 2018-01-16T00:38:28Z igemnace joined #lisp 2018-01-16T00:39:57Z damke_ quit (Ping timeout: 264 seconds) 2018-01-16T00:43:11Z smasta quit (Ping timeout: 248 seconds) 2018-01-16T00:45:04Z pilfink quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-16T00:48:56Z fikka joined #lisp 2018-01-16T00:52:38Z ikki quit (Ping timeout: 255 seconds) 2018-01-16T00:53:19Z jstypo quit (Ping timeout: 256 seconds) 2018-01-16T00:53:34Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T00:55:19Z jstypo joined #lisp 2018-01-16T00:55:19Z jmercouris joined #lisp 2018-01-16T00:56:11Z Jesin joined #lisp 2018-01-16T00:59:25Z fikka joined #lisp 2018-01-16T01:03:57Z xantoz quit (Ping timeout: 240 seconds) 2018-01-16T01:04:05Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T01:08:37Z ckonstanski quit (Remote host closed the connection) 2018-01-16T01:08:48Z turkja joined #lisp 2018-01-16T01:09:25Z fikka joined #lisp 2018-01-16T01:10:19Z pagnol quit (Ping timeout: 256 seconds) 2018-01-16T01:11:59Z mishoo_ quit (Ping timeout: 248 seconds) 2018-01-16T01:12:03Z smasta joined #lisp 2018-01-16T01:12:34Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-16T01:14:09Z warweasle joined #lisp 2018-01-16T01:14:09Z fikka quit (Ping timeout: 248 seconds) 2018-01-16T01:17:07Z markong quit (Ping timeout: 256 seconds) 2018-01-16T01:21:53Z quazimodo joined #lisp 2018-01-16T01:22:54Z lroca quit (Quit: lroca) 2018-01-16T01:24:24Z ikki joined #lisp 2018-01-16T01:24:44Z pjb quit (Ping timeout: 256 seconds) 2018-01-16T01:29:36Z fikka joined #lisp 2018-01-16T01:30:47Z orivej joined #lisp 2018-01-16T01:35:02Z fikka quit (Ping timeout: 276 seconds) 2018-01-16T01:36:03Z ebzzry joined #lisp 2018-01-16T01:39:58Z jstypo quit (Remote host closed the connection) 2018-01-16T01:42:11Z arbv quit (Ping timeout: 276 seconds) 2018-01-16T01:45:08Z arbv joined #lisp 2018-01-16T01:47:20Z Oladon joined #lisp 2018-01-16T01:49:42Z fikka joined #lisp 2018-01-16T01:58:27Z jfb4 quit (Ping timeout: 240 seconds) 2018-01-16T01:58:51Z Patzy quit (Ping timeout: 256 seconds) 2018-01-16T02:00:10Z mareskeg joined #lisp 2018-01-16T02:00:31Z jfb4 joined #lisp 2018-01-16T02:00:31Z Patzy joined #lisp 2018-01-16T02:01:47Z warweasle quit (Quit: Leaving) 2018-01-16T02:03:01Z bkst quit (Read error: Connection reset by peer) 2018-01-16T02:03:16Z bkst joined #lisp 2018-01-16T02:04:38Z kozy quit (Ping timeout: 255 seconds) 2018-01-16T02:05:50Z kozy joined #lisp 2018-01-16T02:09:22Z dddddd quit (Remote host closed the connection) 2018-01-16T02:15:15Z yangby joined #lisp 2018-01-16T02:15:53Z jmercouris quit (Ping timeout: 255 seconds) 2018-01-16T02:24:08Z fikka quit (Ping timeout: 268 seconds) 2018-01-16T02:27:02Z igemnace quit (Read error: Connection reset by peer) 2018-01-16T02:27:31Z igemnace joined #lisp 2018-01-16T02:33:25Z smasta quit (Ping timeout: 256 seconds) 2018-01-16T02:33:27Z vancan1ty joined #lisp 2018-01-16T02:37:24Z xantoz joined #lisp 2018-01-16T02:39:36Z smasta joined #lisp 2018-01-16T02:39:38Z fikka joined #lisp 2018-01-16T02:40:02Z igemnace quit (Read error: Connection reset by peer) 2018-01-16T02:41:01Z igemnace joined #lisp 2018-01-16T02:41:33Z ikki quit (Ping timeout: 256 seconds) 2018-01-16T02:43:10Z nalik891 joined #lisp 2018-01-16T02:44:11Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T02:45:40Z mareskeg quit (Quit: mareskeg) 2018-01-16T02:49:17Z nalik891 quit (Ping timeout: 256 seconds) 2018-01-16T02:49:33Z fikka joined #lisp 2018-01-16T02:51:36Z FreeBirdLjj joined #lisp 2018-01-16T02:52:17Z Cymew joined #lisp 2018-01-16T02:52:50Z nika joined #lisp 2018-01-16T02:53:19Z d4ryus1 joined #lisp 2018-01-16T02:53:41Z orivej quit (Ping timeout: 255 seconds) 2018-01-16T02:54:23Z fikka quit (Ping timeout: 248 seconds) 2018-01-16T02:55:59Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-16T02:56:17Z d4ryus quit (Ping timeout: 256 seconds) 2018-01-16T02:57:28Z mareskeg joined #lisp 2018-01-16T02:57:35Z Cymew quit (Ping timeout: 276 seconds) 2018-01-16T02:58:44Z Cymew joined #lisp 2018-01-16T03:00:23Z damke_ joined #lisp 2018-01-16T03:02:09Z damke quit (Ping timeout: 264 seconds) 2018-01-16T03:02:09Z lemonpepper24 quit (Ping timeout: 264 seconds) 2018-01-16T03:03:21Z Cymew quit (Ping timeout: 264 seconds) 2018-01-16T03:04:13Z lemonpepper24 joined #lisp 2018-01-16T03:06:08Z nalik891 joined #lisp 2018-01-16T03:09:27Z tonton quit (Ping timeout: 240 seconds) 2018-01-16T03:09:40Z fikka joined #lisp 2018-01-16T03:11:10Z tonton joined #lisp 2018-01-16T03:12:09Z nalik891 quit (Ping timeout: 256 seconds) 2018-01-16T03:14:40Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T03:19:51Z jmercouris joined #lisp 2018-01-16T03:20:07Z fikka joined #lisp 2018-01-16T03:22:12Z jmercouris: what are some key things to include in function docstrings? 2018-01-16T03:22:16Z jmercouris: e.g. what makes a good docstring? 2018-01-16T03:25:11Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T03:29:52Z fikka joined #lisp 2018-01-16T03:34:25Z smasta quit (Quit: WeeChat 2.0.1) 2018-01-16T03:35:24Z openthesky joined #lisp 2018-01-16T03:36:41Z smasta joined #lisp 2018-01-16T03:38:51Z mareskeg quit (Quit: mareskeg) 2018-01-16T03:39:59Z openthesky quit (Ping timeout: 260 seconds) 2018-01-16T03:40:31Z jasom: jmercouris: "How do I use this function" 2018-01-16T03:41:20Z jasom: that's the question a docstring should answer, with a secondary question of "when should I use this function" 2018-01-16T03:41:33Z jasom: if someone is looking at the docstring, they think they ought to use the function, but aren't sure how 2018-01-16T03:41:34Z jmercouris: When you say "how" what do you mean? 2018-01-16T03:41:35Z jmercouris: which args? 2018-01-16T03:41:44Z jmercouris: the expected behavior of the args? 2018-01-16T03:41:50Z lemonpepper24 quit (Ping timeout: 255 seconds) 2018-01-16T03:42:03Z jmercouris: e.g. second arg should be an int, this integer moderates the function in this way 2018-01-16T03:42:17Z jasom: jmercouris: that's dependent on the function 2018-01-16T03:42:19Z jmercouris: and what is meant by "when"? 2018-01-16T03:42:34Z aeth: jmercouris: Input and output are a good place to start. 2018-01-16T03:42:56Z aeth: e.g. if there's a meaningful return value "Returns foo..." or "and returns foo..." probably should be in that docstring 2018-01-16T03:43:02Z jmercouris: should I treat my docstrings as blackboxes about the content of the function? 2018-01-16T03:43:25Z jmercouris: so that the docstring remains accurate even if the implementation changes? 2018-01-16T03:43:59Z aeth: What you really want to say are the inputs, outputs, and side effects. 2018-01-16T03:44:16Z aeth: I usually write that in prose, but you could probably get away with literally just listing those 2018-01-16T03:44:26Z jasom: jmercouris: they should *not* document how the function works, that belongs in comments. 2018-01-16T03:45:39Z aeth: Ideally, the way the actual function works should be obvious, even if you need to add helper functions (there's basically no penalty if you move stuff out into meaningfully named functions that are inline) 2018-01-16T03:46:13Z jmercouris: aeth: I thought declaring functions inline within a function form was a bad idea? 2018-01-16T03:46:54Z aeth: jmercouris: no, I mean move stuff to top-level helper functions that are obvious if some part of your function isn't obvious, rather than comment 2018-01-16T03:46:58Z jmercouris: jasom: Okay, so that is so far confirmed then :) 2018-01-16T03:47:14Z jmercouris: Okay 2018-01-16T03:47:20Z jasom: jmercouris: inputs/outputs/side-effects is a good checklist for "how do I use this function" 2018-01-16T03:47:23Z jmercouris: so let me make sure I understand what you are saying 2018-01-16T03:47:43Z jmercouris: if there is enough complexity that warrants a comment, you should probably abstract it out into a function? 2018-01-16T03:47:43Z aeth: I'm agreeing with jasom that "that belongs in comments", but then adding that imo if you do need to comment, you probably should break the function up 2018-01-16T03:47:50Z aeth: yes 2018-01-16T03:48:12Z hexfive joined #lisp 2018-01-16T03:48:19Z jmercouris: ok, I'll make that a standard thing then 2018-01-16T03:48:24Z jmercouris: inputs/outputs/side-effects 2018-01-16T03:48:27Z Arcaelyx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T03:48:36Z jmercouris: though really we should be avoiding side effects I think, at least when possible 2018-01-16T03:48:43Z jmercouris: otherwise we can't easily prove the correctness of our systems 2018-01-16T03:49:11Z jasom: jmercouris: aeth is suggesting (foo bar baz (biff (boff buff))) ;; I can't just frobnotz bar and baz because sbcl's optimizer is dumbs --- instead: (frobnotz-efficiently-on-sbcl bar baz) 2018-01-16T03:50:18Z aeth: jmercouris: If you are mostly going to avoid side-effects, you might like the Scheme convention of ! when there are side effects present 2018-01-16T03:50:31Z aeth: That's a lot more obvious than a docstring 2018-01-16T03:51:04Z Zhivago: jasom: Perhaps that's something that would be better solved by adding a compiler-macro for sbcl rather than changing the code. 2018-01-16T03:51:08Z jmercouris: I'd rather not invent conventions foreign to cl for my codebase :D 2018-01-16T03:51:19Z aeth: It's not foreign to CL 2018-01-16T03:51:44Z jmercouris: jasom: I have no idea what you mean by frobnotzing 2018-01-16T03:51:44Z jasom: Zhivago: that was the first example I thought of, but that's not a bad idea 2018-01-16T03:51:51Z Cymew joined #lisp 2018-01-16T03:52:19Z aeth: Pretty much the only thing in "Conventions in Scheme" that you should never do and I've never seen is $foo for constant (since CL has +foo+) http://www.cliki.net/Naming+conventions 2018-01-16T03:52:38Z jasom: jmercouris: frobnotz is a throw-away verb, much like foo and bar are throwaway nouns 2018-01-16T03:53:26Z aeth: jmercouris: The problem with alternatives to "foo!" is that there is no direct CL equivalent. The n in nfoo means "non-consing" but that doesn't guarantee that it is destructive... also you can be both destructive and cons 2018-01-16T03:54:37Z aeth: and -f like incf is essentially limited to define-modify-macro macros afaik 2018-01-16T03:56:09Z jmercouris: I really need to spend more time mastering CL 2018-01-16T03:56:09Z Cymew quit (Ping timeout: 256 seconds) 2018-01-16T03:58:37Z mareskeg joined #lisp 2018-01-16T03:58:47Z mareskeg quit (Remote host closed the connection) 2018-01-16T03:59:37Z aeth: I think you don't see foo! in CL because Lispers don't care about destructive code as much as Schemers... but if you're writing part of a program that does care, why not use that convention? 2018-01-16T04:02:34Z aeth: jmercouris: Oh, and before you mentioned about documenting types. Don't trust the user imo. 2018-01-16T04:03:25Z jmercouris: aeth: What do you mean? you put type checking into your functions? 2018-01-16T04:03:43Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T04:03:48Z aeth: There are two approaches. check-type is 100% portable, but not necessarily what you want. Type declarations might just assume the type in Cthulhu Lisp or some other non-euclidean eldrich abomination lisp from before time, but should work as expected on most modern Lisps when saftey != 0 (and that should always be the case) 2018-01-16T04:05:09Z aeth: A ton of code written recently uses type declarations and assumes they work as expected, with type checking when safety != 0 2018-01-16T04:06:37Z aeth: Iirc, an added advantage of type declarations is that they don't need to check type if they're running on Lisp machine hardware that is designed with Lisp types in mind. 2018-01-16T04:11:22Z jmercouris: I didn't even know type declarations were a thing in CL 2018-01-16T04:12:26Z aeth: (defun foo (x y) (declare (single-float x y)) (+ x y)) 2018-01-16T04:13:03Z aeth: It can generate very efficient code for non-bignum numbers and sequences because a lot of built-in functions are generic over numbers or sequences (like + or map) 2018-01-16T04:13:31Z aeth: Although a check-type should produce a very similar result, just with the type-checking in the function instead of before the function 2018-01-16T04:13:45Z jmercouris: aeth: That is pretty useful, I amy start using that in my code 2018-01-16T04:14:14Z jmercouris: aeth: where is a list of all types like "single-float")? 2018-01-16T04:14:41Z Bike: what makes a type like single-float? 2018-01-16T04:14:42Z jasom: jmercouris: there is no exaustive list of types since e.g. (integer 5 8) would be all integers in the range [5,8) 2018-01-16T04:14:58Z aeth: Actually, the checking in a foo with type declarations seems to be considerably more concise than the checking in a foobar with check-type when I use sb-disassem:disassemble-code-component to see the full disassembly (which disassemble does not provide) 2018-01-16T04:15:12Z jasom: jmercouris: but the hyperspec lists types in the various sections (e.g. the numeric types are listed in the chapter on numbers) 2018-01-16T04:15:32Z jasom: clhs integer 2018-01-16T04:15:32Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_intege.htm 2018-01-16T04:15:36Z jmercouris: the only usage I've seen of declare is for ignore 2018-01-16T04:15:36Z aeth: this might be SBCL specific, but I think it's because of the semantics of check-type vs type declarations 2018-01-16T04:15:38Z Bike: there is a comprehensive list, not that it's very enlightening 2018-01-16T04:15:43Z aeth: A function can just error, check-type has to be recoverable iirc 2018-01-16T04:15:43Z Bike: clhs 4.2.3 2018-01-16T04:15:44Z specbot: Type Specifiers: http://www.lispworks.com/reference/HyperSpec/Body/04_bc.htm 2018-01-16T04:15:55Z aeth: i.e. you can just store a new value in check-type 2018-01-16T04:15:56Z Bike: sorry, six comprehensive lists. hell yea 2018-01-16T04:16:13Z jasom: er it's rather the integer range [5, 8] the bounds on the type integer are inclusive 2018-01-16T04:16:22Z shka joined #lisp 2018-01-16T04:16:28Z jmercouris: can you declare a type that is a custom struct? 2018-01-16T04:16:30Z aeth: Hmm, this seems to be the difference in SBCL. check-type will let you insert a valid replacement and a type declaration won't 2018-01-16T04:16:33Z Bike: jmercouris: sure 2018-01-16T04:16:34Z jmercouris: or an object of some time? 2018-01-16T04:16:39Z jmercouris: s/time/type 2018-01-16T04:16:47Z jmercouris: Bike: How might that look? 2018-01-16T04:17:04Z Bike: (declare (type fuckshit x)) where fuckshit is the name of your struct 2018-01-16T04:17:10Z Bike: same as any other type 2018-01-16T04:17:25Z jmercouris: I see, your foobar is a little more aggressive than most :D 2018-01-16T04:17:26Z jasom: you can even declare parameterized types 2018-01-16T04:17:36Z jmercouris: jasom: What is "parameterized type"? 2018-01-16T04:17:47Z Bike: it's kind of shit as parametrization goes 2018-01-16T04:17:55Z jasom: yeah it's not very powerful 2018-01-16T04:18:07Z jameser joined #lisp 2018-01-16T04:18:07Z Bike: and it means, like a type with a parameter 2018-01-16T04:18:11Z jmercouris: yes, but what does it mean for a type to be parameterized? 2018-01-16T04:18:14Z Bike: like (integer 3) has 3 as a parameter 2018-01-16T04:18:16Z jasom: jmercouris: (integer 5 8) is a type that includes only the objects 5, 6, 7, and 8 2018-01-16T04:18:37Z jmercouris: ah, so a type is a function that accepts args to produce some sort of check function? 2018-01-16T04:18:44Z jmercouris: based on some criteria? 2018-01-16T04:18:58Z jmercouris: so a type that accepts no args just checks for identity? 2018-01-16T04:18:59Z Bike: er... how did you get that out of this 2018-01-16T04:19:08Z Bike: that's creative, but wrong 2018-01-16T04:19:15Z jmercouris: well (integer 5 8) looks like a function call to "integer" with the arguments 5 and 8 2018-01-16T04:19:19Z Bike: it's not 2018-01-16T04:19:25Z Bike: integer by itself is also a type 2018-01-16T04:19:26Z fikka joined #lisp 2018-01-16T04:19:30Z Bike: it is the type of integers 2018-01-16T04:19:37Z jmercouris: that is true 2018-01-16T04:19:47Z Bike: if you don't know what parameterization is don't sweat it 2018-01-16T04:19:57Z Bike: not everybody has a copy of TaPL blessed by the vatican 2018-01-16T04:20:05Z smasta quit (Ping timeout: 255 seconds) 2018-01-16T04:20:23Z jasom: you will almost never define a new parameterized type in lisp because Lisps type parameterization is not very powerful 2018-01-16T04:20:54Z aeth: You almost certainly want to restrict the integer type for it to be useful. "fixnum" is the laziest way to do it, but is non-portable. Stuff like (unsigned-byte 8) and (unsigned-byte 32) are great because they're almost certainly going to be supported in 64-bit implementations' specialized-arrays 2018-01-16T04:20:59Z jmercouris: now would (declare (type my-object x)) also work? 2018-01-16T04:21:13Z Bike: that depends onw hat my-object is 2018-01-16T04:21:21Z Bike: if you have (defstruct my-object ...) sure 2018-01-16T04:21:21Z jmercouris: Bike: a class 2018-01-16T04:21:23Z jasom: as long as my-object is a type then yes 2018-01-16T04:21:28Z Bike: (defclass my-object ...) would also make it valid 2018-01-16T04:21:33Z jasom: all classes are types, but not all types are classes 2018-01-16T04:21:34Z Bike: all classes are types (but not vice versa) 2018-01-16T04:21:38Z aeth: But if you want type information to produce more efficient code you really want the compiler to know that the integer is never going to be a bignum (which might have to require more complicated code on your end) 2018-01-16T04:21:41Z Bike: it won't help optimization too much, though 2018-01-16T04:21:48Z Bike: correctness, maybe 2018-01-16T04:21:49Z jmercouris: I'm not interested in optimization 2018-01-16T04:21:53Z Bike: ok great 2018-01-16T04:21:56Z jmercouris: I'm mostly interested in safety, for some applications 2018-01-16T04:22:11Z Bike: the thing about type declarations is that they are an assertion to the compiler 2018-01-16T04:22:18Z Bike: and the implementation is NOT required to check that assertion 2018-01-16T04:22:27Z jasom: jmercouris: cmucl and sbcl at least will emit some compile-time checks in the presence of types, and will always emit run-time errors if safety is non-zero 2018-01-16T04:22:28Z aeth: Afaik, for the most part, the compiler already knows what the type has to for a variable be by the function you try to use on it. 2018-01-16T04:22:29Z hexfive quit (Quit: WeeChat 1.9.1) 2018-01-16T04:22:34Z Bike: if you want an actual assertion, use check-type or negotiate with your vendor (i.e. read the manual) 2018-01-16T04:22:42Z jmercouris: jasom: I just tested CCL, it also seems to work 2018-01-16T04:23:06Z Bike: for the most part the compiler knows jack s hit about anything 2018-01-16T04:23:07Z aeth: If it works on SBCL, CCL, ECL, and CMUCL it is very portable. Does it work on ECL? 2018-01-16T04:23:19Z jasom: jmercouris: yeah, once you use a lisp like that, it becomes so obviously the right way, that most implementations have copied it 2018-01-16T04:23:47Z aeth: Bike: I think it's more nuanced than that, i.e.: For the most part the compiler does know anything between function boundaries because (foo 42) might return 43 now, but could be redefined at runtime to return "Hello, World!" 2018-01-16T04:24:19Z Bike: the gulf between what a compiler could know and what it does is vast 2018-01-16T04:24:22Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T04:24:22Z jmercouris: I just want to emit useful error messages to the user if they have supplied an incorrect type 2018-01-16T04:24:34Z jmercouris: Bike: And this is true in every language 2018-01-16T04:24:35Z Bike: yeah, so use declare if it works, or check-type if you wanna be super sure 2018-01-16T04:24:44Z Bike: and uh, allow replacements 2018-01-16T04:24:46Z Bike: weird feature that 2018-01-16T04:24:51Z jmercouris: because if the compiler knew what I was trying to program, it could possibly do it for me instead of me having to type it out :D 2018-01-16T04:25:01Z aeth: An alternative is to use this: https://github.com/markcox80/specialization-store/ 2018-01-16T04:25:22Z jmercouris: aeth: You keep promoting this lib :P 2018-01-16T04:26:40Z jmercouris: I've read the description, and I don't understand what this does 2018-01-16T04:26:47Z jmercouris: can you ELI5 it? 2018-01-16T04:27:17Z aeth: jmercouris: instead of having a foo-fixnum, foo-single-float, foo-double-float, foo-bignum, etc., you can just have one foo 2018-01-16T04:27:28Z jmercouris: ah okay 2018-01-16T04:27:31Z jmercouris: the CLOS parallel makes me get it now 2018-01-16T04:27:46Z jmercouris: interesting idea 2018-01-16T04:27:47Z aeth: It's like defmethod but it works on types, so it's useful for arrays and numbers 2018-01-16T04:27:57Z jmercouris: how much slower is it than foo-fixnum and foo-single-float? 2018-01-16T04:28:09Z aeth: If it's inline, it produces exactly the same code as if you had that many inline functions 2018-01-16T04:28:17Z aeth: If it's not inline, it will do generic dispatch. 2018-01-16T04:28:34Z aeth: But... you could do an inline function call as a sort of compromise (and that's probably common enough that that library should support it imo) 2018-01-16T04:28:36Z jmercouris: also, I thought everything in CL was an object 2018-01-16T04:28:43Z jmercouris: so aren't integers like "5" actually just objects? 2018-01-16T04:28:48Z jmercouris: can you not do a defmethod anyway? 2018-01-16T04:28:57Z aeth: jmercouris: But an integer is never of the class (integer 0 5) 2018-01-16T04:29:09Z Bike: 5s are objects sure 2018-01-16T04:29:19Z Bike: and you can define a method specializing on the integer class 2018-01-16T04:29:28Z Bike: but generic functions are necessarily a runtime dispatch 2018-01-16T04:29:37Z Bike: itll check that it's a 5 at runtime. specialization store can avoid that 2018-01-16T04:29:41Z aeth: (class-of (make-array 3 :element-type 'single-float)) => # 2018-01-16T04:29:46Z fikka joined #lisp 2018-01-16T04:29:48Z aeth: (type-of (make-array 3 :element-type 'single-float)) => (SIMPLE-ARRAY SINGLE-FLOAT (3)) 2018-01-16T04:30:05Z aeth: Not only is that class not portable afaik, it also doesn't have some critical information, like length 2018-01-16T04:30:20Z aeth: So it really is useful with arrays 2018-01-16T04:30:32Z jmercouris: interesting, interesting 2018-01-16T04:30:35Z jmercouris: thank you for sharing your project 2018-01-16T04:30:54Z aeth: And, yeah, specialization store is most useful when you want to inline or at least inline the function call so the runtime dispatch is avoided 2018-01-16T04:31:08Z aeth: jmercouris: It's not my project 2018-01-16T04:31:13Z aeth: It's by pillton 2018-01-16T04:31:32Z aeth: I just want CL code to be faster so pure-CL libs are more popular 2018-01-16T04:31:46Z jmercouris: ah yes, sorry 2018-01-16T04:31:47Z aeth: Dealing with C libraries through CFFI is a nightmare... and C++ is ultra-nightmare or something. 2018-01-16T04:31:51Z jmercouris: I apparently confused you two then 2018-01-16T04:31:56Z jmercouris: even though your usernames are so different 2018-01-16T04:32:04Z Bike: they're both blue it's ienvitable 2018-01-16T04:32:13Z jmercouris: I thought CFFI was just fine in CL 2018-01-16T04:32:17Z jmercouris: you should try using it in python 2018-01-16T04:32:23Z ebrasca` is now known as ebrasca 2018-01-16T04:32:32Z aeth: CFFI is okay, C itself is not :-p 2018-01-16T04:32:50Z aeth: The real problems come with things like segfaults :-p 2018-01-16T04:32:50Z jmercouris: Bike: What do you mean? where is their color denoted? 2018-01-16T04:32:56Z jmercouris: aeth: Fun stuff that 2018-01-16T04:33:07Z Bike: haven't you ever read the bible the colors are in the geneology 2018-01-16T04:33:13Z pierpa quit (Quit: Page closed) 2018-01-16T04:33:58Z jmercouris: Bike: I don't follow 2018-01-16T04:34:34Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T04:39:53Z fikka joined #lisp 2018-01-16T04:41:14Z quazimodo quit (Ping timeout: 255 seconds) 2018-01-16T04:44:42Z nalik891 joined #lisp 2018-01-16T04:44:50Z fikka quit (Ping timeout: 255 seconds) 2018-01-16T04:45:26Z aeth: jmercouris: My personal design philosophy for my Lisp code is that anything that can be done ahead of runtime should. 2018-01-16T04:48:29Z sthalik: (like register allocation!) 2018-01-16T04:49:11Z Bike: that's kind of a weird comment 2018-01-16T04:49:41Z aeth: mine? I'm just explaining why I like libraries that do things ahead of time 2018-01-16T04:49:54Z Bike: no 2018-01-16T04:50:11Z fikka joined #lisp 2018-01-16T04:51:14Z sthalik: aeth, it's good to allow redefine stuff, but caching for perf is another thing 2018-01-16T04:51:21Z jmercouris: Bike: Are you feeling alright? 2018-01-16T04:51:30Z Bike quit (Quit: Lost terminal) 2018-01-16T04:55:13Z fikka quit (Ping timeout: 268 seconds) 2018-01-16T04:56:05Z nalik891 quit (Ping timeout: 255 seconds) 2018-01-16T04:56:07Z beach: Good morning everyone! 2018-01-16T04:59:50Z jmercouris: beach: Good morning, and in case I don't see ya, good afternoon, good evening, and good night! 2018-01-16T04:59:53Z Tobbi quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T05:00:24Z fikka joined #lisp 2018-01-16T05:00:35Z schoppenhauer quit (Ping timeout: 255 seconds) 2018-01-16T05:01:24Z brucem quit (Quit: ZNC - http://znc.sourceforge.net) 2018-01-16T05:02:18Z schoppenhauer joined #lisp 2018-01-16T05:02:36Z aeth: Do implementations turn (list 1 2 3 4 5) into (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 nil))))) or is there a better way that I'm overlooking? 2018-01-16T05:03:14Z jmercouris: aeth: I don't see how you could avoid the linking operations when making a linked list 2018-01-16T05:04:55Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T05:04:58Z aeth: https://github.com/sbcl/sbcl/blob/0d398686138fa05504c57567d28130cb85fb143e/src/code/list.lisp#L343-L345 2018-01-16T05:05:02Z aeth: lol 2018-01-16T05:05:05Z aeth: jmercouris: That's how ^ 2018-01-16T05:05:25Z esthlos quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-01-16T05:06:24Z nalik891 joined #lisp 2018-01-16T05:09:37Z aeth: To save people a click, the source is just this when newlines and the docstring are removed: (defun list (&rest args) args) 2018-01-16T05:10:28Z pillton: aeth: Specialization store can do the optimization you were talking about before. https://github.com/markcox80/specialization-store/blob/master/tests/standard-store-syntax-layer.lisp#L357 2018-01-16T05:10:35Z fikka joined #lisp 2018-01-16T05:10:49Z jmercouris: aeth: Yes, but doesn't it still need to make a list? 2018-01-16T05:11:11Z jmercouris: just because SBCL happens to make a list of args and then returns that list, doesn't mean that along the line it didn't make the list in the way you are describing 2018-01-16T05:11:38Z jmercouris: I don't see how it is avoidable to make a linked list without linking the elements of the list 2018-01-16T05:12:25Z aeth: pillton: so named specializations are inline function calls instead of runtime dispatch? 2018-01-16T05:12:36Z pillton: aeth: Yes. 2018-01-16T05:12:51Z nalik891 quit (Ping timeout: 256 seconds) 2018-01-16T05:12:58Z pillton: Look at the compiler-macro-expand-1 test. (Line 366). 2018-01-16T05:13:15Z aeth: pillton: What happens if named specializations are also inline? 2018-01-16T05:13:38Z vancan1ty quit (Ping timeout: 255 seconds) 2018-01-16T05:13:49Z aeth: pillton: And do the names have to be exported/imported? 2018-01-16T05:13:52Z pillton: I'm not sure why you would do that, but I'll check. 2018-01-16T05:14:02Z pillton: The names do not have to be exported. 2018-01-16T05:14:07Z aeth: ah, okay 2018-01-16T05:14:17Z aeth: pillton: It looks like you've thought of everything, then. 2018-01-16T05:14:39Z aeth: I like it when people write things so I don't have to :-) 2018-01-16T05:15:25Z fikka quit (Ping timeout: 265 seconds) 2018-01-16T05:16:00Z aeth: jmercouris: And that's why I promote specialization-store, btw. The library literally anticipates my feature requests and then implements them in the past 2018-01-16T05:17:32Z jmercouris: aeth: perhaps he is using cl-read-mind 2018-01-16T05:17:53Z jmercouris: it's on quicklisp afaik 2018-01-16T05:18:02Z aeth: read-mind, eval-mind, print-mind, loop-mind 2018-01-16T05:20:33Z fikka joined #lisp 2018-01-16T05:21:07Z jmercouris: are there any CL projects using "blockchain" technology? 2018-01-16T05:22:04Z aeth: jmercouris: Possibly, but mere blockchains aren't enough. Smart contracts are what people want now. 2018-01-16T05:22:18Z aeth: Fortunately, literally any design would be more secure than Ethereum imo. 2018-01-16T05:23:22Z aeth: Formal verification would be an interesting project. 2018-01-16T05:24:51Z philosaur quit (Quit: philosaur) 2018-01-16T05:25:41Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T05:30:41Z fikka joined #lisp 2018-01-16T05:32:56Z jmercouris: aeth: Formal verification is a pipe dream 2018-01-16T05:33:25Z aeth: jmercouris: Formal verification for general purpose programming, yes, but smart contracts kind of need them because hundreds of millions of dollars are on the line. 2018-01-16T05:33:35Z nowhereman_ quit (Ping timeout: 276 seconds) 2018-01-16T05:33:52Z aeth: So you kind of have to program more like NASA and less like a JavaScript web developer when you're doing an Ethereum clone 2018-01-16T05:34:15Z jmercouris: I somehow doubt that that's what these guys are doing 2018-01-16T05:34:52Z jmercouris: I've done formal verification, and, it is not a fun time, nor is it easy, nor is it even possible truly except for on some embedded systems 2018-01-16T05:34:53Z aeth: They're absolutely not doing anything close to reliable programming. e.g. https://news.ycombinator.com/item?id=16148608 2018-01-16T05:35:01Z jmercouris: there are so many unknown variables when running your program 2018-01-16T05:35:09Z philosaur joined #lisp 2018-01-16T05:35:32Z aeth: jmercouris: yes, but solving it for smart contracts on blockchains is probably a $1,000,000,000 idea. 2018-01-16T05:35:46Z jmercouris: aeth: Solving it is irrelevant, marketing is what matters 2018-01-16T05:35:46Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T05:35:58Z jmercouris: just look at Microsoft 2018-01-16T05:36:27Z jmercouris: people literally PAY for microsoft, when there are free pieces of software that are better, blows my mind 2018-01-16T05:36:30Z aeth: Reliable smart contracts in Common Lisp practically writes itself for Hacker News. Guaranteed #1 position on the site. :-p 2018-01-16T05:36:37Z aeth: jmercouris: Oracle is probably a better example. 2018-01-16T05:36:40Z jmercouris: Lol you don't even have to do it 2018-01-16T05:36:43Z aeth: Microsoft software has advantages 2018-01-16T05:36:45Z jmercouris: just speculate about it in a medium article 2018-01-16T05:36:46Z aeth: Oracle is 100% marketing 2018-01-16T05:36:47Z nowhereman_ joined #lisp 2018-01-16T05:36:50Z jmercouris: and people will blindly upvote 2018-01-16T05:37:11Z jmercouris: also, throw in some false information for extra publicity 2018-01-16T05:37:38Z aeth: This channel doesn't have false information, only nil information 2018-01-16T05:37:41Z jmercouris: like "what makes CL great is the fact that it recently surpassed javascript for number of active developers" 2018-01-16T05:38:01Z dtornabene joined #lisp 2018-01-16T05:38:23Z yangby quit (Ping timeout: 268 seconds) 2018-01-16T05:38:57Z jmercouris: integers can overflow in solidity? 2018-01-16T05:39:02Z jmercouris: when was this language designed!? 2018-01-16T05:39:17Z aeth: A couple of years ago iirc 2018-01-16T05:39:42Z aeth: Smart contracts in *Common Lisp* would be more reliable 2018-01-16T05:39:49Z aeth: No need for a DSL 2018-01-16T05:39:55Z yangby joined #lisp 2018-01-16T05:40:28Z aeth: jmercouris: My favorite part is that the language apparently has no garbage collection *and* no manual memory management. 2018-01-16T05:40:37Z aeth: So apparently that language is 1950s era :-p 2018-01-16T05:40:49Z fikka joined #lisp 2018-01-16T05:41:11Z aeth: At least according to this post: https://news.ycombinator.com/item?id=14691212 2018-01-16T05:42:06Z quazimodo joined #lisp 2018-01-16T05:42:10Z jmercouris: aeth: Surely you are joking, how can this be? 2018-01-16T05:42:37Z aeth: And it's just integers, so you'd have to call in a contract that is a fixed-point arithmetic library and hope you can trust it iirc 2018-01-16T05:43:17Z jmercouris: no floating point support!?????????? 2018-01-16T05:43:24Z aeth: jmercouris: I'm guessing Solidity behaves just like the very early Lisps pre-GC 2018-01-16T05:43:27Z knobo joined #lisp 2018-01-16T05:43:51Z jmercouris: I could design a better language by throwing darts at a board of language features 2018-01-16T05:44:05Z aeth: You'd probably want decimal fixed point, though, for the money parts. Not just floats 2018-01-16T05:44:15Z jmercouris: Well, that just goes to show, time and time again, marketing is everything 2018-01-16T05:44:30Z aeth: https://coinmarketcap.com/ 2018-01-16T05:44:46Z aeth: $120,000,000,000 market cap, now slightly more than half the market cap of Bitcoin 2018-01-16T05:44:53Z aeth: 100% marketing since you can't write usable software in it! 2018-01-16T05:45:17Z aeth: They apparently decided to release early and hype it so that they could then get the resources to implement it properly. 2018-01-16T05:45:43Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T05:45:46Z jmercouris: that is unbelievable 2018-01-16T05:45:50Z jmercouris: I should have an ICO :P 2018-01-16T05:45:55Z aeth: jmercouris: Oh, and apparently the reason it's slow is not because it's distributed but because it runs in a 256 bit VM. 2018-01-16T05:46:00Z oleo quit (Quit: Leaving) 2018-01-16T05:46:09Z jmercouris: so many questions 2018-01-16T05:46:20Z damke joined #lisp 2018-01-16T05:46:38Z jmercouris: writing fast distributed software is hard enough with all of the scheduling and memory challenges, why do this? 2018-01-16T05:47:24Z jmercouris: Alright, who wants to join me in writing a new platform called Lisperium? 2018-01-16T05:47:26Z aeth: I'm guessing that that's probably large enough to express all of its currency as an integer (which is necessary because of how badly it handles numbers), whereas 64-bit and 128-bit wouldn't be 2018-01-16T05:47:50Z jmercouris: I love that all data types are exactly the same size, even the byte 2018-01-16T05:48:15Z jmercouris: why couldn't they even do something simple like reference counting based GC 2018-01-16T05:48:16Z jmercouris: that's not even hard 2018-01-16T05:48:43Z jmercouris: they could even have had it be manual like on Objective-c 2018-01-16T05:48:52Z aeth: Iirc, the creator was 20 when he wrote it (and he's only 23 now) 2018-01-16T05:49:28Z jmercouris: to be fair, when I was 20, I was struggling to write my own implementation of malloc 2018-01-16T05:50:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-16T05:50:20Z aeth: jmercouris: If you are serious, I'd start with a fixed-point math library. You generally want decimal fixed-point math for currency (e.g. at 1/10000 to represent 1/100th of a cent), although if it's cryptocurrency, you might just want to work in powers of 2 all of the time for efficiency (i.e. use ash) 2018-01-16T05:50:48Z aeth: Once you find or write that, the rest of the language practically writes itself 2018-01-16T05:50:59Z fikka joined #lisp 2018-01-16T05:51:07Z aeth: lisp-in-lisp is easy 2018-01-16T05:51:10Z jmercouris: aeth: You don't want to work on the lisperium platform? 2018-01-16T05:51:55Z jmercouris: heres the yc title; Lisperium - Lisp Blockchain ICO 2018-01-16T05:52:06Z aeth: jmercouris: Well, I know the pain point you're going to reach: cryptography. I wouldn't trust any pure-Lisp crypto libraries with real money of any kind (not battle-tested enough), including cryptocurrency. 2018-01-16T05:52:20Z aeth: And you kind of need crypto for a cryptocurrency 2018-01-16T05:52:36Z jmercouris: Here's what we'll do, we'll just use CFFI 2018-01-16T05:52:44Z aeth: idk 2018-01-16T05:53:03Z aeth: If you could actually do an ICO, you could pay some crypto person to write a pure-Lisp crypto library that is reliable, at least in SBCL 2018-01-16T05:53:18Z aeth: SBCL has everything you need, unless the GC is problematic. 2018-01-16T05:53:19Z jmercouris: here's what you need for a successful ICO, just write a white paper 2018-01-16T05:53:31Z jmercouris: you could probably take any ELS paper, change the title and abstract 2018-01-16T05:53:35Z jmercouris: nobody reads beyond that anyway 2018-01-16T05:53:59Z smurfrobot joined #lisp 2018-01-16T05:54:34Z jmercouris: you know how rust has these sort of semi-automatic rust-->c converters 2018-01-16T05:54:37Z jmercouris: do any such tools exist in lisp? 2018-01-16T05:54:38Z aeth: jmercouris: No, if you were serious about writing a white paper for an ICO, just get a PhD to write it and invite a PhD to the team. PhD + writes lots of papers. There are several here afaik. 2018-01-16T05:55:15Z jmercouris: aeth: I'm totally joking, I bet the SEC is going to begin regulating ICOs in the near-term and I don't want to be involved in that legislative nightmare that will arise 2018-01-16T05:55:21Z aeth: I'm sure writing a VM in CL to run a blockchain-distributed reliable program (Rust-like or Haskell-like) would be a project someone would want in on 2018-01-16T05:56:18Z aeth: jmercouris: An ICO is almost certainly a bad idea, but a blockchain probably has enough interest from SEO-approved investors at this point. 2018-01-16T05:56:26Z fikka quit (Ping timeout: 276 seconds) 2018-01-16T05:56:27Z aeth: s/SEO/SEC/ 2018-01-16T05:56:31Z aeth: But they're probably SEO approved too 2018-01-16T05:56:44Z jmercouris: aeth: That is probably true, just throw that word into any presentation and people just lose it 2018-01-16T05:56:59Z jmercouris: seems to be the "cloud" of 2017-2018 2018-01-16T05:59:02Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-16T06:00:08Z aeth: jmercouris: All you need is: a fixed-point math library, a proof-of-stake blockchain, a VM to run smart contracts on that blockchain, a Haskell-like or Rust-like language with Lisp syntax to run on that VM. That would near-guarantee a $1,000,000,000 market cap for that cryptocoin. There are already 38 (!!!) valued that much. 2018-01-16T06:00:58Z damke_ joined #lisp 2018-01-16T06:00:58Z jmercouris: yeah, if only it was that simple 2018-01-16T06:01:04Z fikka joined #lisp 2018-01-16T06:01:07Z aeth: jmercouris: It's actually simpler 2018-01-16T06:01:12Z jmercouris: the key here is marketing, there are thousands, if not tens of thousands of cyrpto languages 2018-01-16T06:01:22Z jmercouris: why is one more popular than the other? 2018-01-16T06:01:51Z jmercouris: what would we call it? 2018-01-16T06:02:13Z aeth: jmercouris: read-eval-pay-coin 2018-01-16T06:02:58Z jmercouris: I like where you are going with that, but it has to be max 3 syllables 2018-01-16T06:03:02Z jmercouris: ideally two 2018-01-16T06:03:48Z jmercouris: also we can't put the word "coin" in the title, that's overused 2018-01-16T06:03:56Z aeth: There are a lot of shitcoins with nothing to offer except being a github fork of Bitcoin or Litecoin or something. It would be hard to find a unique name for a cryptocurrency 2018-01-16T06:03:57Z damke quit (Ping timeout: 264 seconds) 2018-01-16T06:04:17Z jmercouris: it's not hard at all, creativity is a skill that can be nurtured 2018-01-16T06:05:19Z jmercouris: how about "Lvault" 2018-01-16T06:05:24Z jmercouris: lisp vault 2018-01-16T06:05:41Z jmercouris: clv as a tla 2018-01-16T06:06:11Z fikka quit (Ping timeout: 276 seconds) 2018-01-16T06:06:15Z jmercouris: or you could call it "c-store" 2018-01-16T06:06:18Z sukaeto quit (Quit: WeeChat 1.0.1) 2018-01-16T06:06:25Z jmercouris: it sounds catchy, digital, and people can imagine what the "c" stands for 2018-01-16T06:06:37Z aeth: anything that begins with C is interpreted as something implemented in C 2018-01-16T06:06:43Z jmercouris: that's fine, confusion is good 2018-01-16T06:06:51Z jmercouris: we can get people fro the C community to ignorantly support it 2018-01-16T06:06:56Z jmercouris: plus C has a lot of credibility 2018-01-16T06:07:29Z jmercouris: the logo could be like a clamshell or something 2018-01-16T06:07:37Z jmercouris: a play on words of "c" sounding like "sea" 2018-01-16T06:07:52Z igemnace quit (Read error: Connection reset by peer) 2018-01-16T06:07:58Z aeth: this name is probably taken a million times for a million different things, but "clash" would be the perfect name, imo. A pun on the "cl" prefix a lot of cl libraries/programs have, and "cash" 2018-01-16T06:08:19Z aeth: i.e. cl-cash 2018-01-16T06:08:29Z jmercouris: yeah, that's a good one, it's too bad that a clash is an unpleasant thing 2018-01-16T06:08:39Z igemnace joined #lisp 2018-01-16T06:08:50Z jmercouris: what if we drop the c in front and call it "lash" 2018-01-16T06:09:00Z jmercouris: because it's a bunch of data secured "together" 2018-01-16T06:09:08Z aeth: "lash" is still negative, unless you're into that sort of thing 2018-01-16T06:09:42Z aeth: i.e. https://en.wikipedia.org/wiki/Flagellation 2018-01-16T06:09:45Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T06:09:49Z jmercouris: right yeah 2018-01-16T06:09:59Z jmercouris: what about cloister, isn't that a type of fish? 2018-01-16T06:10:23Z jmercouris: damnit, that's a pokemon :D 2018-01-16T06:11:06Z aeth: good name though 2018-01-16T06:11:22Z fikka joined #lisp 2018-01-16T06:11:25Z aeth: also, I think people can name more Pokémon than animals 2018-01-16T06:11:25Z jmercouris: I've got it 2018-01-16T06:11:28Z jmercouris: "Clock" 2018-01-16T06:11:33Z jmercouris: CL-Lock effectively 2018-01-16T06:11:56Z aeth: too close to "cock" and too close to "coq" https://en.wikipedia.org/wiki/Coq 2018-01-16T06:12:22Z jmercouris: I can't believe such a program exists 2018-01-16T06:12:48Z jmercouris: how about "clamshell" 2018-01-16T06:12:50Z aeth: Well, they're referencing a rooster, clearly 2018-01-16T06:13:08Z jmercouris: or "closure" 2018-01-16T06:13:13Z aeth: jmercouris: "shell" is synonymous with "unreliable programming full of landmines" 2018-01-16T06:13:14Z jmercouris: that doesn't look like a rooster at all 2018-01-16T06:13:33Z jmercouris: I don't think programmers are who we are marketing to 2018-01-16T06:13:38Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-16T06:13:40Z jmercouris: what we need to get is the herd investors 2018-01-16T06:13:46Z jmercouris: and make enough hype around our new platform 2018-01-16T06:14:01Z jmercouris: so actually, the language is irrelevant to them, it just happens to be in cl, which is conveniently easy for us 2018-01-16T06:14:27Z aeth: there are some investors on the Lisp hype train, although probably not as many as in the past 2018-01-16T06:14:52Z turkja quit (Ping timeout: 256 seconds) 2018-01-16T06:15:06Z jmercouris: we need to somehow make our technology "AI" or something 2018-01-16T06:15:22Z aeth: hmm 2018-01-16T06:16:07Z jmercouris: we could just call it the "Smart" platform "self-learning machine application technology" 2018-01-16T06:16:11Z fikka quit (Ping timeout: 255 seconds) 2018-01-16T06:16:37Z aeth: "closure" would be the most clever name of your list, too bad it is too close to clojure and clozure 2018-01-16T06:16:54Z jmercouris: clojure and clozure have no name recognition, we could just do it 2018-01-16T06:17:21Z aeth: well, it needs to be a misspelling, so maybe cloxure 2018-01-16T06:17:34Z jmercouris: maybe we could get more street cred by writing it in cyrillic 2018-01-16T06:18:23Z orivej joined #lisp 2018-01-16T06:18:27Z aeth: I'd probably start with the blockchain and VM and name the combined product later 2018-01-16T06:18:30Z aeth: Names usually come last 2018-01-16T06:18:34Z QualityAddict quit (Quit: Leaving) 2018-01-16T06:19:15Z Oladon quit (Quit: Leaving.) 2018-01-16T06:19:21Z jmercouris: sounds like a plan, I'm going to sleep for now, but let me know which yachts you'd like to check out tomorrow 2018-01-16T06:21:03Z aeth: As crowded as the crypto market is, probably a GTA Online yacht 2018-01-16T06:21:23Z asarch quit (Quit: Leaving) 2018-01-16T06:21:25Z fikka joined #lisp 2018-01-16T06:22:10Z aeth: (It's funny how a game franchise about stealing virtual vehicles somehow became a game about buying virtual vehicles with RL money.) 2018-01-16T06:22:37Z jmercouris: aeth: woah woah, didn't you say earlier we'd make roughly a billion? 2018-01-16T06:22:40Z jmercouris: are you backing out? 2018-01-16T06:23:02Z aeth: It'd be a billion with a 100% pre-mine 2018-01-16T06:23:11Z aeth: And it'd be about as easy to cash out of as a dot-com stock 2018-01-16T06:23:27Z jmercouris: We're back at square one 2018-01-16T06:23:31Z jmercouris: we have to do an ICO 2018-01-16T06:24:39Z aeth: Who here writes white papers for fun? beach? 2018-01-16T06:25:27Z aeth: It would actually be interesting for the #lisp community to explore the idea of Lisp smart contracts, even though it's about 4 years too late to make real money from the idea. 2018-01-16T06:26:04Z jmercouris: I believe he does, he seems to enjoy it :D 2018-01-16T06:26:29Z fikka quit (Ping timeout: 268 seconds) 2018-01-16T06:26:52Z aeth: Imo if you're semi-serious about seeing where this could go (1) don't expect any money because of all of the competition, (2) whoever writes white papers for fun gets to be project lead 2018-01-16T06:30:08Z aeth: I do think that the Lisp community could make something better than Ethereum fairly easily with the existing ecosystem 2018-01-16T06:30:44Z jmercouris quit (Ping timeout: 256 seconds) 2018-01-16T06:31:32Z turkja joined #lisp 2018-01-16T06:33:22Z JuanDaugherty joined #lisp 2018-01-16T06:35:49Z milanj quit (Quit: This computer has gone to sleep) 2018-01-16T06:41:32Z fikka joined #lisp 2018-01-16T06:42:21Z quazimodo quit (Ping timeout: 264 seconds) 2018-01-16T06:46:21Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T06:47:47Z Karl_Dscc joined #lisp 2018-01-16T06:48:12Z fikka joined #lisp 2018-01-16T06:49:11Z QualityAddict joined #lisp 2018-01-16T06:50:17Z orivej quit (Ping timeout: 276 seconds) 2018-01-16T06:51:16Z mishoo_ joined #lisp 2018-01-16T06:53:09Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T06:55:01Z smurfrobot joined #lisp 2018-01-16T06:57:09Z orivej joined #lisp 2018-01-16T06:58:17Z fikka joined #lisp 2018-01-16T06:59:45Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-16T07:00:16Z yeticry quit (Ping timeout: 248 seconds) 2018-01-16T07:01:33Z yangby quit (Ping timeout: 264 seconds) 2018-01-16T07:01:39Z orivej quit (Ping timeout: 256 seconds) 2018-01-16T07:02:08Z yeticry joined #lisp 2018-01-16T07:03:21Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T07:03:27Z yangby joined #lisp 2018-01-16T07:05:08Z makomo quit (Ping timeout: 265 seconds) 2018-01-16T07:05:42Z LocaMocha joined #lisp 2018-01-16T07:06:40Z damke joined #lisp 2018-01-16T07:08:24Z fikka joined #lisp 2018-01-16T07:09:21Z damke_ quit (Ping timeout: 264 seconds) 2018-01-16T07:09:24Z damke__ joined #lisp 2018-01-16T07:11:03Z dec0n joined #lisp 2018-01-16T07:11:28Z hiroaki joined #lisp 2018-01-16T07:11:42Z orivej joined #lisp 2018-01-16T07:12:07Z sz0 joined #lisp 2018-01-16T07:12:21Z damke quit (Ping timeout: 264 seconds) 2018-01-16T07:13:03Z fikka quit (Ping timeout: 248 seconds) 2018-01-16T07:13:32Z fikka joined #lisp 2018-01-16T07:13:55Z yangby quit (Ping timeout: 256 seconds) 2018-01-16T07:14:21Z Karl_Dscc quit (Remote host closed the connection) 2018-01-16T07:15:42Z yangby joined #lisp 2018-01-16T07:19:47Z thijso quit (Ping timeout: 256 seconds) 2018-01-16T07:23:18Z flip214: Xach: well, at least a logical pathname pointing to /proc should be possible... 2018-01-16T07:23:39Z flip214: Xach: I've had success with current SBCL (and so ASDF 3.3.1 IIRC) and 2018-01-16T07:24:03Z flip214: (:module "proc" :pathname #p"/proc/" :components ((:static-file "uptime"))) 2018-01-16T07:25:19Z orivej quit (Ping timeout: 248 seconds) 2018-01-16T07:27:15Z smurfrobot joined #lisp 2018-01-16T07:29:10Z flip214: And now I've got a zero-byte file in ~/.cache/common-lisp/*/proc/uptime*.fasl ;) 2018-01-16T07:31:53Z scymtym quit (Ping timeout: 276 seconds) 2018-01-16T07:32:12Z flamebeard joined #lisp 2018-01-16T07:32:38Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-16T07:37:15Z koisoke quit (Ping timeout: 246 seconds) 2018-01-16T07:44:48Z lnostdal joined #lisp 2018-01-16T07:46:32Z murii joined #lisp 2018-01-16T07:51:46Z daniel-s joined #lisp 2018-01-16T07:53:37Z varjag joined #lisp 2018-01-16T07:56:50Z fikka quit (Ping timeout: 260 seconds) 2018-01-16T08:04:39Z koisoke joined #lisp 2018-01-16T08:08:19Z marusich quit (Quit: Leaving) 2018-01-16T08:08:20Z fikka joined #lisp 2018-01-16T08:13:29Z fikka quit (Ping timeout: 276 seconds) 2018-01-16T08:16:14Z hiroaki quit (Quit: Leaving) 2018-01-16T08:20:23Z Xal quit (Ping timeout: 255 seconds) 2018-01-16T08:21:25Z Cymew joined #lisp 2018-01-16T08:21:52Z daniel-s quit (Quit: Konversation terminated!) 2018-01-16T08:23:05Z Xal joined #lisp 2018-01-16T08:24:58Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-01-16T08:28:01Z smurfrobot joined #lisp 2018-01-16T08:28:37Z fikka joined #lisp 2018-01-16T08:29:44Z igemnace quit (Read error: Connection reset by peer) 2018-01-16T08:30:18Z igemnace joined #lisp 2018-01-16T08:33:05Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-16T08:35:58Z smurfrobot joined #lisp 2018-01-16T08:36:49Z scymtym joined #lisp 2018-01-16T08:40:01Z smurfrobot quit (Ping timeout: 248 seconds) 2018-01-16T08:43:37Z schweers joined #lisp 2018-01-16T08:50:08Z smurfrobot joined #lisp 2018-01-16T08:54:57Z dddddd joined #lisp 2018-01-16T08:55:02Z smurfrobot quit (Ping timeout: 255 seconds) 2018-01-16T08:57:59Z shrdlu68 joined #lisp 2018-01-16T08:58:33Z damke__ quit (Ping timeout: 264 seconds) 2018-01-16T09:01:33Z damke__ joined #lisp 2018-01-16T09:01:38Z yangby quit (Quit: Go out for a walk and buy a drink.) 2018-01-16T09:02:53Z smurfrobot joined #lisp 2018-01-16T09:03:29Z scymtym_ joined #lisp 2018-01-16T09:03:36Z scymtym quit (Remote host closed the connection) 2018-01-16T09:05:45Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T09:06:41Z mingus quit (Ping timeout: 256 seconds) 2018-01-16T09:07:27Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-16T09:10:07Z drot quit (Quit: Quit.) 2018-01-16T09:11:47Z drot joined #lisp 2018-01-16T09:11:48Z fikka joined #lisp 2018-01-16T09:12:27Z hhdave joined #lisp 2018-01-16T09:15:17Z lnostdal quit (Ping timeout: 255 seconds) 2018-01-16T09:16:38Z fikka quit (Ping timeout: 255 seconds) 2018-01-16T09:16:49Z murii quit (Ping timeout: 248 seconds) 2018-01-16T09:18:28Z lnostdal joined #lisp 2018-01-16T09:21:54Z fikka joined #lisp 2018-01-16T09:22:45Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-16T09:23:38Z damke joined #lisp 2018-01-16T09:24:25Z jfb4 joined #lisp 2018-01-16T09:26:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-16T09:27:40Z damke_ joined #lisp 2018-01-16T09:29:14Z hhdave quit (Ping timeout: 256 seconds) 2018-01-16T09:29:45Z damke quit (Ping timeout: 264 seconds) 2018-01-16T09:34:05Z shka: https://www.youtube.com/watch?v=LPIJVdQkb1Q 2018-01-16T09:34:13Z shka: sorry, wrong channel 2018-01-16T09:34:24Z shrdlu68: Right... 2018-01-16T09:34:43Z shka: but, seriously, what a terrible contraption 2018-01-16T09:34:46Z smurfrobot joined #lisp 2018-01-16T09:36:24Z sebastie1_ joined #lisp 2018-01-16T09:36:39Z sebastie1_ quit (Client Quit) 2018-01-16T09:39:05Z smurfrobot quit (Ping timeout: 240 seconds) 2018-01-16T09:39:17Z sebastien_ quit (Quit: Lost terminal) 2018-01-16T09:40:35Z dilated_dinosaur quit (Ping timeout: 276 seconds) 2018-01-16T09:40:55Z shka: Shinmera: hey, you there? How should i setup r-data-model and r-simple-auth so they both would use PG? 2018-01-16T09:41:28Z Shinmera: shka: They both use the database interface, so whatever database implementation you load will be used. 2018-01-16T09:42:09Z Shinmera: Actually r-simple-auth doesn't use the database interface, just the user one. But the default for that uses the database, so. 2018-01-16T09:42:19Z shka: ok 2018-01-16T09:42:34Z shka: that's reasonable 2018-01-16T09:42:35Z shka: thanks 2018-01-16T09:43:59Z pagnol joined #lisp 2018-01-16T09:45:04Z Ven`` joined #lisp 2018-01-16T09:53:25Z dilated_dinosaur joined #lisp 2018-01-16T09:58:26Z _cosmonaut_ joined #lisp 2018-01-16T10:05:08Z d4ryus1 is now known as d4ryus 2018-01-16T10:07:41Z pjb joined #lisp 2018-01-16T10:08:57Z msb quit (Ping timeout: 240 seconds) 2018-01-16T10:10:13Z msb joined #lisp 2018-01-16T10:12:04Z orivej joined #lisp 2018-01-16T10:13:13Z jameser quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T10:13:14Z nirved joined #lisp 2018-01-16T10:19:45Z msb quit (Ping timeout: 260 seconds) 2018-01-16T10:21:14Z msb joined #lisp 2018-01-16T10:22:23Z sebastien_ joined #lisp 2018-01-16T10:33:03Z wxie joined #lisp 2018-01-16T10:33:13Z nika quit 2018-01-16T10:35:40Z smurfrobot joined #lisp 2018-01-16T10:40:23Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-16T10:43:35Z nalik891 joined #lisp 2018-01-16T10:45:57Z jfb4 quit (Ping timeout: 264 seconds) 2018-01-16T10:46:58Z wxie quit (Remote host closed the connection) 2018-01-16T10:47:19Z jfb4 joined #lisp 2018-01-16T10:50:05Z nalik891 quit (Ping timeout: 260 seconds) 2018-01-16T10:51:40Z m00natic joined #lisp 2018-01-16T10:52:41Z hhdave joined #lisp 2018-01-16T11:03:05Z damke joined #lisp 2018-01-16T11:04:29Z murii joined #lisp 2018-01-16T11:05:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-16T11:06:29Z damke_ joined #lisp 2018-01-16T11:07:16Z jfb4_ joined #lisp 2018-01-16T11:08:43Z pjb quit (Ping timeout: 256 seconds) 2018-01-16T11:09:21Z damke quit (Ping timeout: 264 seconds) 2018-01-16T11:10:40Z jfb4 quit (Ping timeout: 256 seconds) 2018-01-16T11:11:47Z damke joined #lisp 2018-01-16T11:12:29Z jfb4_ quit (Ping timeout: 256 seconds) 2018-01-16T11:14:04Z jfb4 joined #lisp 2018-01-16T11:14:21Z milanj joined #lisp 2018-01-16T11:14:45Z damke_ quit (Ping timeout: 264 seconds) 2018-01-16T11:17:09Z knobo: Is there a way to run tests continuously whenever a source file is saved? 2018-01-16T11:22:31Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-16T11:30:51Z yeticry quit (Quit: leaving) 2018-01-16T11:31:20Z pjb joined #lisp 2018-01-16T11:31:21Z yeticry joined #lisp 2018-01-16T11:36:23Z smurfrobot joined #lisp 2018-01-16T11:41:01Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-16T11:42:37Z pagnol: knobo, I use a program called 'entr' for this 2018-01-16T11:42:40Z Xach: knobo: an emacs save-hook seems plausible. or an external watching program perhaps. 2018-01-16T11:43:19Z pagnol: knobo, http://entrproject.org/ 2018-01-16T11:44:44Z pagnol: I usually add a line like `find -name '*.lisp' | entr run-the-tests` to my makefiles 2018-01-16T11:49:26Z knobo: Ah... just save-hook and run tests :) Could be the solution. 2018-01-16T11:49:40Z knobo: Looks like entrproject could be good too. 2018-01-16T11:58:11Z shka: Shinmera: i can't figure out how to setup auth module, do you have example somewhere? 2018-01-16T11:58:26Z Shinmera: shka: What do you need to set up? 2018-01-16T11:59:02Z shka: i want to use auth module to have signing up, logging in, nothing out of ordinary i think 2018-01-16T11:59:09Z pjb quit (Ping timeout: 256 seconds) 2018-01-16T11:59:16Z shka: but right now I can't seem to figure out what auth module is really doing 2018-01-16T11:59:22Z Shinmera: Exactly that? 2018-01-16T12:00:04Z shka: well, also restricing content, based on the user, but i think i should do this myself 2018-01-16T12:00:18Z Shinmera: authentication is not authorization 2018-01-16T12:00:25Z Shinmera: authorization is handled by the user module 2018-01-16T12:00:31Z wxie joined #lisp 2018-01-16T12:00:36Z Shinmera: Colleen: tell shka look up radiance user:check 2018-01-16T12:00:37Z Colleen: shka: Function user:check https://shirakumo.github.io/radiance#FUNCTION%20USER%3ACHECK 2018-01-16T12:01:32Z shka: ok, that's all cool, but in the source code of auth i have this define-page login 2018-01-16T12:01:41Z shka: "auth/login" 2018-01-16T12:01:51Z Shinmera: Yeah? 2018-01-16T12:02:01Z shka: so i depend on auth now, those this mean that somehow this should already work in basic form? 2018-01-16T12:02:06Z Shinmera: Yes 2018-01-16T12:02:32Z shka: and i should access it by my-module/auth/login ? 2018-01-16T12:02:39Z Shinmera: No? 2018-01-16T12:02:46Z shka: uhm 2018-01-16T12:02:52Z Shinmera: auth is its own module. Why would it be under yours? 2018-01-16T12:03:30Z shka: so /auth/login it is 2018-01-16T12:03:40Z dtornabene quit (Remote host closed the connection) 2018-01-16T12:03:48Z Shinmera: The page is defined as auth/login, not /auth/login 2018-01-16T12:04:07Z Shinmera: Meaning that it's on the auth subdomain, on the /login path 2018-01-16T12:04:34Z Ven`` quit (Ping timeout: 260 seconds) 2018-01-16T12:04:35Z shka: like this http://localhost:8080/auth/login ? 2018-01-16T12:04:40Z Shinmera: No 2018-01-16T12:05:04Z Shinmera: For localhost, which does not have subdomains, you can reach it through a routing like so: http://localhost:8080/!/auth/login, which is translated to http://auth.localhost:8080/login internally. 2018-01-16T12:05:40Z Shinmera: On your deployed system you would either set up a proper auth subdomain, or set up a route to translate it. 2018-01-16T12:06:00Z shka: ok, i seriously need to take care when reading tutorial 2018-01-16T12:06:19Z Shinmera: The gist is, each module gets its own subdomain so that it can use the full path space for itself. 2018-01-16T12:06:30Z makomo joined #lisp 2018-01-16T12:06:37Z CrazyEddy joined #lisp 2018-01-16T12:06:51Z Shinmera: You can then use routes to translate different external urls to internal urls. 2018-01-16T12:07:36Z Shinmera: You can set it up so that the login page is reachable through /auth/login, or /userlogin, or whatever you want, but that's a step for later. 2018-01-16T12:09:03Z Shinmera: Colleen: tell shka look up radiance 1.3 2018-01-16T12:09:03Z Colleen: shka: 1.3 route https://shirakumo.github.io/radiance#1.3_route 2018-01-16T12:09:14Z Shinmera: ^this explains the system a bit. Hopefully that helps. 2018-01-16T12:09:21Z shifty quit (Ping timeout: 256 seconds) 2018-01-16T12:11:02Z shka: thanks, this is kinda confusing 2018-01-16T12:11:19Z shka: uri-to-url is interesting to say the least as well 2018-01-16T12:11:25Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-16T12:11:44Z smurfrobot joined #lisp 2018-01-16T12:13:04Z Kevslinger joined #lisp 2018-01-16T12:14:07Z Shinmera: The routing is probably the biggest hurdle in learning Radiance 2018-01-16T12:14:27Z turkja quit (Ping timeout: 240 seconds) 2018-01-16T12:15:05Z markong joined #lisp 2018-01-16T12:15:38Z shka: Shinmera: well, so how do i properly construct URL to module? 2018-01-16T12:15:57Z Shinmera: You want to link to one of your own pages? 2018-01-16T12:16:03Z shka: for instance 2018-01-16T12:16:35Z Shinmera: (uri-to-url :representation :external) 2018-01-16T12:16:55Z Shinmera: So if you define a page on the uri "foo/bar" that'd be (uri-to-url "foo/bar" :representation :external) 2018-01-16T12:17:29Z Shinmera: This is exactly what the @href attribute does in the clip pages of the tutorial. 2018-01-16T12:18:07Z shka: that was my first attempt but "http://foo.radiance/bar" does not look fine 2018-01-16T12:19:31Z Shinmera: Right, if you do it from the REPL that's what you'll get. Radiance has a list of top-level domains it knows about. By default that's "radiance" and "localhost". When you're running a translation from the REPL it doesn't really know which one you mean, so it just picks the first one. 2018-01-16T12:19:44Z Shinmera: When you do a translation within the context of a request, it knows which domain to pick based on the request. 2018-01-16T12:19:56Z shka: now, that's important info… 2018-01-16T12:20:15Z Shinmera: It also might know additional information, such as that you used some other translation route like the /!/ prefix, and uses that to translate back. 2018-01-16T12:20:29Z shka: yeah, that explain my problem 2018-01-16T12:21:04Z shka: i don't want to use templates, so i kinda wandered around 2018-01-16T12:21:14Z ebrasca left #lisp 2018-01-16T12:23:26Z Arcaelyx joined #lisp 2018-01-16T12:24:07Z Shinmera: Fair enough 2018-01-16T12:24:27Z Shinmera: I'll make a note to explain that in the tutorial a bit better. 2018-01-16T12:25:30Z shka: ok, now i better make login page look more like my own thing 2018-01-16T12:25:31Z damke_ joined #lisp 2018-01-16T12:26:28Z shrdlu68: varjag: I fixed yesterday's issue: https://github.com/shrdlu68/cl-tls/commit/2155de591134834184dcc1d19321da65a52eb254 2018-01-16T12:26:56Z smurfrobot quit (Remote host closed the connection) 2018-01-16T12:27:21Z damke quit (Ping timeout: 264 seconds) 2018-01-16T12:29:08Z shrdlu68: varjag: The OCSP issue still persists, because I've not yet implemented OCSP stapling for cl-tls. Most implementations fall back to "old-style" OCSP only when the server does not support OCSP stapling. I'll do that soon as I get some time. 2018-01-16T12:29:35Z pjb` joined #lisp 2018-01-16T12:30:36Z turkja joined #lisp 2018-01-16T12:30:52Z pjb` is now known as pjb 2018-01-16T12:35:45Z nullman quit (Ping timeout: 264 seconds) 2018-01-16T12:35:58Z nullman joined #lisp 2018-01-16T12:49:40Z varjag: shrdlu68: great, thanks 2018-01-16T12:51:18Z makomo: beach: i re-read your essay yesterday for fun and found a little typo -- ctrl+f ",," :-) 2018-01-16T12:53:09Z fikka quit (Ping timeout: 265 seconds) 2018-01-16T12:53:52Z fikka joined #lisp 2018-01-16T12:55:20Z orivej quit (Ping timeout: 255 seconds) 2018-01-16T12:58:10Z EvW joined #lisp 2018-01-16T12:59:27Z pagnol: what's the essay about? 2018-01-16T13:00:48Z rpg joined #lisp 2018-01-16T13:01:43Z orivej joined #lisp 2018-01-16T13:02:21Z makomo: pagnol: about lisp, this one: http://metamodular.com/Essays/wrong.html 2018-01-16T13:02:40Z pagnol: makomo, thanks 2018-01-16T13:04:01Z damke__ joined #lisp 2018-01-16T13:05:09Z damke_ quit (Ping timeout: 264 seconds) 2018-01-16T13:05:27Z arbv quit (Ping timeout: 256 seconds) 2018-01-16T13:07:10Z phoe: "What is wrong with Lisp?" ",," 2018-01-16T13:07:40Z phoe: this sounds strangely correct - by the time you're using double unquote, you're most likely already wrong somewhere 2018-01-16T13:07:53Z makomo: haha i thought about that too :D 2018-01-16T13:08:33Z makomo: i was thinking how i should have said "you probably meant to only single-unquote this space" :-) 2018-01-16T13:09:53Z jfb4 quit (Ping timeout: 276 seconds) 2018-01-16T13:10:18Z randomstrangerb joined #lisp 2018-01-16T13:11:32Z jfb4 joined #lisp 2018-01-16T13:15:23Z thijso joined #lisp 2018-01-16T13:22:22Z milanj quit (Quit: Leaving) 2018-01-16T13:27:33Z rgrau quit (Ping timeout: 256 seconds) 2018-01-16T13:28:29Z loke quit (Ping timeout: 256 seconds) 2018-01-16T13:29:19Z MetaYan quit (Remote host closed the connection) 2018-01-16T13:30:24Z MetaYan joined #lisp 2018-01-16T13:30:46Z aindilis quit (Read error: Connection reset by peer) 2018-01-16T13:31:40Z runejuhl quit (Ping timeout: 260 seconds) 2018-01-16T13:32:20Z pagnol quit (Ping timeout: 256 seconds) 2018-01-16T13:33:43Z aindilis joined #lisp 2018-01-16T13:34:29Z vap1 quit (Ping timeout: 255 seconds) 2018-01-16T13:34:31Z rgrau joined #lisp 2018-01-16T13:41:45Z lnostdal quit (Ping timeout: 264 seconds) 2018-01-16T13:43:56Z runejuhl joined #lisp 2018-01-16T13:44:18Z AntiSpamMeta quit (Remote host closed the connection) 2018-01-16T13:44:31Z AntiSpamMeta joined #lisp 2018-01-16T13:45:04Z asarch joined #lisp 2018-01-16T13:48:26Z beach: makomo: Thanks! Fixed! 2018-01-16T13:49:23Z makomo: :-) 2018-01-16T13:52:50Z flip214: phoe: right, you should most probably be using ",'," or ",@," 2018-01-16T13:54:06Z makomo: oh, regarding backquote, i have a question. i've been studying/inspecting the once-only macro (again) recently, and it uses ,,@ 2018-01-16T13:54:29Z SaganMan joined #lisp 2018-01-16T13:54:46Z lnostdal joined #lisp 2018-01-16T13:55:20Z makomo: at first i was confused because what is the leftmost unquote supposed to do? i confirmed experimentally that it unquotes every single element of the spliced-in list, but i can't exactly see where this behavior is specified in http://www.lispworks.com/documentation/HyperSpec/Body/02_df.htm 2018-01-16T13:58:11Z makomo: i should also probably link the source of ONCE-ONLY, here's one: https://stackoverflow.com/questions/9808928/understanding-how-to-implement-once-only-lisp-macro 2018-01-16T13:59:29Z randomstrangerb quit (Ping timeout: 248 seconds) 2018-01-16T13:59:55Z pfdietz: I've always found it easier to unpack macro code using nested backquotes into a series of functions. 2018-01-16T14:00:44Z randomstrangerb joined #lisp 2018-01-16T14:01:13Z Bike joined #lisp 2018-01-16T14:01:35Z makomo: and also, i feel like the page doesn't do a good job of explaining nested backquotes/unquotes. there's only a single line at the end and it's not clear to me what "should be *expanded* first" and "occur in a *row*" mean 2018-01-16T14:02:32Z makomo: (1) "expanded" because what does "expansion" even mean in this context and (2) commas can appear in a "row" but with ' and @ interspersed inbetween 2018-01-16T14:02:57Z lnostdal quit (Ping timeout: 240 seconds) 2018-01-16T14:05:56Z lonjil quit (Remote host closed the connection) 2018-01-16T14:06:01Z wxie quit (Remote host closed the connection) 2018-01-16T14:06:07Z lonjil joined #lisp 2018-01-16T14:12:00Z brendyn quit (Ping timeout: 256 seconds) 2018-01-16T14:14:13Z lonjil quit (Remote host closed the connection) 2018-01-16T14:14:21Z lonjil joined #lisp 2018-01-16T14:15:19Z lnostdal joined #lisp 2018-01-16T14:18:06Z brucem joined #lisp 2018-01-16T14:20:48Z smasta joined #lisp 2018-01-16T14:26:13Z beach: makomo: Unfortunately, the only way to understand backquote that I know of is to apply the algorithm they show. The Common Lisp HyperSpec is meant for people who implement Common Lisp, so it is kind of understandable that it is not very pedagogical in this respect. 2018-01-16T14:27:18Z ikki joined #lisp 2018-01-16T14:27:40Z makomo: beach: yeah, i agree with that, but i'm having trouble following their definition since the backquote is nested. i have no problem following the formalities for a single level of quotation 2018-01-16T14:27:51Z makomo: but into which "case" does ``(...) even fit? 2018-01-16T14:28:35Z Bike: if it's any consolation, nested backquotes confuse everybody. 2018-01-16T14:28:46Z makomo: am i supposed to treat ``(...) as `, where is then the rest, i.e. `(...)? 2018-01-16T14:28:57Z makomo: which is then processed recursively? 2018-01-16T14:29:20Z beach: Well, here you have a case of nesting, so the second backquote is the innermost. 2018-01-16T14:29:30Z makomo: but then again this is also confusing because of that "expanded" thing at the bottom :^( 2018-01-16T14:29:44Z makomo: Bike: a little i guess :-) 2018-01-16T14:29:54Z beach: "expand", just mean to apply the algorithm. 2018-01-16T14:30:46Z makomo: hmmm ok, so then the innermost backquote would get processed first? 2018-01-16T14:30:52Z beach: Yes. 2018-01-16T14:31:47Z makomo: so in the case of ``(...), that would be equal to `
where is the result of processing `(...)? 2018-01-16T14:32:39Z makomo: or is it wrong to "peel off" a backquote like that 2018-01-16T14:34:53Z Xach: I share this not to mock, but because it is to me a novel (if novice) use of some functions I rarely use 2018-01-16T14:35:03Z Xach: https://github.com/ZykeDev/CLispJSONParser/blob/master/json-parsing.lisp#L206 2018-01-16T14:35:29Z Xach: it's good that the target string isn't eleven characters long 2018-01-16T14:36:00Z phoe: what the fuck 2018-01-16T14:36:11Z makomo: oh dear :') 2018-01-16T14:36:43Z phoe: IN must be a list of chars 2018-01-16T14:36:47Z phoe: oh boy 2018-01-16T14:36:48Z Shinmera: I'm confused as to when you'd even have a list of characters spelling out undefined. 2018-01-16T14:37:40Z Xach: Shinmera: the json parser coerces the string input to a list as the first step 2018-01-16T14:37:49Z Shinmera: Oh. 2018-01-16T14:37:53Z phoe: https://github.com/ZykeDev/CLispJSONParser/blob/master/json-parsing.lisp#L30 2018-01-16T14:38:20Z Shinmera: "undefined" isn't valid JSON though, right? 2018-01-16T14:38:39Z shka: i think that actually it is 2018-01-16T14:38:42Z shka quit (Remote host closed the connection) 2018-01-16T14:38:55Z vap1 joined #lisp 2018-01-16T14:38:59Z Shinmera: No, it is not 2018-01-16T14:39:03Z scymtym__ joined #lisp 2018-01-16T14:39:04Z Shinmera: It's valid in JS, but not JSON 2018-01-16T14:39:04Z phoe: https://stackoverflow.com/a/14946821 2018-01-16T14:39:06Z shka joined #lisp 2018-01-16T14:39:11Z Shinmera: shka: It is not valid. 2018-01-16T14:39:26Z vaporatorius joined #lisp 2018-01-16T14:39:27Z Shinmera: It's a JS-ism 2018-01-16T14:40:00Z shka: https://jsonlint.com/ 2018-01-16T14:40:06Z phoe: https://github.com/ZykeDev/CLispJSONParser/blob/master/json-parsing.lisp#L326 - looks like CL:BUTLAST 2018-01-16T14:40:11Z shka: "undefined" <- valid json 2018-01-16T14:40:23Z Shinmera: shka: It's wrong. 2018-01-16T14:40:50Z shka: unless you omitted quotes 2018-01-16T14:41:08Z Shinmera: I wasn't talking about a string containing undefined. 2018-01-16T14:41:32Z shka: i see 2018-01-16T14:44:08Z scymtym_ quit (Ping timeout: 276 seconds) 2018-01-16T14:45:45Z Xach: I think it's a pretty good example of "I have a set of tools and I'm going to use them to get what I want no matter what". The kind of determination that will improve with access to more tools and tricks. 2018-01-16T14:46:14Z phoe: Giving a slightly broader look, the person also implemented a JSON parser in Prolog. 2018-01-16T14:46:38Z phoe: So they likely don't know CL in-depth, but they nonetheless used enough of it to implement something that works. 2018-01-16T14:49:06Z Xach: on the other hand, it can really help to have at the back of your mind that curiosity of "is there a better way?" but sometimes constraints prevent listening too much to that. 2018-01-16T14:49:38Z m00natic quit (Ping timeout: 255 seconds) 2018-01-16T14:49:52Z shka: phoe: Prolog is a very nice language to make parser, btw ;-) 2018-01-16T14:50:19Z damke joined #lisp 2018-01-16T14:51:13Z beach: The functions make-jason-obj and make-json-array are amusing too. 2018-01-16T14:52:16Z beach: Wow, there are so many things wrong with that code. 2018-01-16T14:52:21Z Xach: I came across this due to the planet lisp "new lisp on github" feed 2018-01-16T14:52:37Z Xach: I usually see a title and description and check them out at some later date. 2018-01-16T14:52:52Z vap1 quit (Quit: Leaving) 2018-01-16T14:53:00Z Xach: https://github.com/borodust/claw had a nice description ("Autowrapping FFI") but the readme says "don't use" 2018-01-16T14:53:02Z Tobbi joined #lisp 2018-01-16T14:53:09Z damke__ quit (Ping timeout: 264 seconds) 2018-01-16T14:53:14Z |3b| doesn't know prolog, does the prolog version just give up halfway through parsing undefined? 2018-01-16T14:53:46Z Xach: i was also bummed that https://github.com/mak08/cl-map is "just" ffi. i have part of a lisp shapefile parser in progress. 2018-01-16T14:55:31Z schweers: Xach: you don’t like ffi in general? 2018-01-16T14:55:34Z dmiles: |3b|: it reuses the letters 2018-01-16T14:55:52Z |3b|: ah, right 2018-01-16T14:56:09Z Xach: schweers: Not usually. 2018-01-16T14:56:38Z dmiles: |3b| well the good part of that file is it is prolgo for very simplistic prolog impls 2018-01-16T14:56:43Z schweers: I’ve never really used any ffi until I came across CFFI for lisp. 2018-01-16T14:57:24Z dmiles: (that is it doe4st use DCGs) nornmally to parse json you'd use about code 1/2 that size 2018-01-16T14:57:36Z Xach: schweers: I know it isn't practical all the time, but I do really like a "pure" lisp solution because it is likely to be easier to set up that managing foreign libraries (and foreign memory, code, etc) 2018-01-16T14:58:00Z Xach: I like being able to open truetype files on windows without messing with DLLs... 2018-01-16T14:58:06Z flip214: makomo: don't despair, I've had a major leap in backquote understanding a few months ago (after several years of using Lisp), but I'm still not sure about all the implications 2018-01-16T14:58:16Z rippa joined #lisp 2018-01-16T14:58:33Z fikka quit (Ping timeout: 264 seconds) 2018-01-16T14:58:41Z shka: I actually share Xach's sentiment. 2018-01-16T14:59:11Z shka: Life in the land of lisp is nicer without foreigners. 2018-01-16T14:59:18Z shka: And we should build a wall. 2018-01-16T14:59:25Z Xach: Sometimes it is too much work to make it fast enough for the task at hand. Or it's too much work to recreate some very useful library. 2018-01-16T14:59:34Z python476 joined #lisp 2018-01-16T14:59:35Z makomo: flip214: i have this "intuitive" and "experimental" knowledge of backquote, but find that i can't read out some of the things i know about backquote from that formal definition because it's too vague about the nested syntax 2018-01-16T14:59:36Z shka: yes 2018-01-16T14:59:43Z shka: and some libs are just huge 2018-01-16T14:59:54Z shka: webkit can be a prime example of that… 2018-01-16T14:59:58Z Shinmera: On that note, I'd love it if someone translated stb_truetype to Lisp and added SDF 2018-01-16T14:59:59Z mfiano: As do I. The only place I use cffi is only indirectly, and pretty much required: Interfacing with GPU drivers (OpenGL) and creating a window/context (sdl). 2018-01-16T15:00:14Z Xach: Shinmera: What is stb_truetype? 2018-01-16T15:00:29Z Shinmera: Xach: A single-header library for rendering font atlases from truetype files. 2018-01-16T15:01:00Z Xach: Shinmera: what is SDF? 2018-01-16T15:01:18Z Shinmera: Signed Distance Fields. A technique to get much sharper characters at differing resolutions to the natively rendered atlas. 2018-01-16T15:01:20Z makomo: flip214: i know what the thing in ONCE-ONLY will produce (just produce though, i'm not claiming to completely understand ONCE-ONLY yet :-)), but i don't see how i would apply the formal definition from the spec to get to the same thing 2018-01-16T15:01:25Z mfiano: Better yet would be a Lisp implementation of MSDF or PSDF, as SDF is pretty horrible with certain input. 2018-01-16T15:01:44Z FreeBirdLjj joined #lisp 2018-01-16T15:02:00Z Xach: Shinmera: what's an atlas used for? 2018-01-16T15:02:09Z ikki quit (Ping timeout: 264 seconds) 2018-01-16T15:02:19Z Shinmera: The atlas is stored in a texture and you use that to draw text in OpenGL. 2018-01-16T15:02:29Z Xach: ok 2018-01-16T15:02:36Z Shinmera: Rendering each character from font descriptions is too expensive, so you cache the characters you need in an atlas that is tightly packed. 2018-01-16T15:02:50Z Shinmera: Well, rendering them each frame I mean 2018-01-16T15:03:31Z Shinmera: There is a CL library to do the direct rendering approach, but it is slooooow. 2018-01-16T15:04:13Z beach` joined #lisp 2018-01-16T15:04:31Z Shinmera: Could use that to render the atlas, I suppose, but that still leaves implementing the packing algorithm and SDF. 2018-01-16T15:04:44Z warweasle joined #lisp 2018-01-16T15:05:50Z beach quit (Ping timeout: 256 seconds) 2018-01-16T15:05:57Z sjl quit (Quit: WeeChat 1.9.1) 2018-01-16T15:06:22Z beach` is now known as beach 2018-01-16T15:07:27Z scymtym__ quit (Remote host closed the connection) 2018-01-16T15:07:48Z scymtym joined #lisp 2018-01-16T15:09:15Z sjl__ joined #lisp 2018-01-16T15:09:22Z nika joined #lisp 2018-01-16T15:09:32Z BitPuffin joined #lisp 2018-01-16T15:12:35Z EvW quit (Ping timeout: 255 seconds) 2018-01-16T15:12:50Z schweers: Xach: sorry, was afk for a moment. I understand where you’re coming from. I was just trying to say that I never found another FFI which was as pleasant as CFFI (and I guess other FFIs for lisp are similarly pleasant). 2018-01-16T15:12:55Z Shinmera sighs and wishes he had time 2018-01-16T15:13:05Z shka: Shinmera: do you perhaps have any idea, why my pages won't load if I load file with pages, but it works if i compile individual pages definitions? 2018-01-16T15:13:40Z schweers: so using an FFI for lisp seems to me to be much less of a hassle than using an FFI for lesser languages. 2018-01-16T15:14:28Z shka: schweers: it is a hassle 2018-01-16T15:14:54Z Shinmera: shka: Beyond what's written down here I don't know. https://github.com/Shirakumo/radiance-tutorial/blob/master/Part%208.md#my-page-is-not-being-called-when-i-open-it-in-the-browser-what-is-going-on 2018-01-16T15:14:55Z nika quit (Ping timeout: 260 seconds) 2018-01-16T15:15:17Z Shinmera: shka: I run Radiance in production, so it'd be odd if I had to manually C-c all the pages :) 2018-01-16T15:15:25Z borodust: Xach: didn't have time to fix docs yet :) 2018-01-16T15:15:31Z borodust: Xach: for claw 2018-01-16T15:16:04Z Xach: schweers: That's cool 2018-01-16T15:16:06Z shka: Shinmera: it may be the case that I am doing things in peculiar way, I will let you know once i figure this out 2018-01-16T15:16:34Z Xach: schweers: I have perhaps an irrational fear of foreign code and memory crashing my session entirely. 2018-01-16T15:16:40Z borodust: Xach: this is a fork of fork that i'm striving to make usable for everyone :) 2018-01-16T15:16:57Z Xach: schweers: So sometimes I will even use run-program to avoid (c)ffi 2018-01-16T15:17:00Z borodust: Xach: original fork: https://github.com/borodust/bodge-autowrap 2018-01-16T15:17:07Z Xach: borodust: interesting! ok. 2018-01-16T15:17:24Z mfiano: typical lisp software lifecycle :) 2018-01-16T15:18:17Z borodust: mfiano: well, to be fair, that's a fork of my fork ;p since yesterday i can actually remove bodge-autowrap (and would do exactly that today) because i moved all of bodge projects onto :claw 2018-01-16T15:19:06Z borodust: Xach: while we are at it, what are the policies for accepting wrappers with compiled libraries into quicklisp? 2018-01-16T15:19:41Z Shinmera: I'm already doing it 2018-01-16T15:20:01Z Xach: borodust: no special policy. it should work on multiple lisps and must absolutely work on linux/sbcl 2018-01-16T15:20:04Z Shinmera: But, I always compile it myself on clean installations of the OSs. 2018-01-16T15:20:09Z nika joined #lisp 2018-01-16T15:20:20Z borodust: Shinmera Xach: with qt, i know, but are there any specific requirements, like it should load somewhere on some specific implementations and whatnot 2018-01-16T15:20:23Z Shinmera: And document how to do so yourself if you don't trust me. 2018-01-16T15:20:30Z borodust: Xach: understood 2018-01-16T15:20:38Z Shinmera: borodust: Not just Qt. I have a lot of other libraries with C parts. 2018-01-16T15:21:58Z m00natic joined #lisp 2018-01-16T15:22:02Z borodust: i'm planning to request adding claw and bodge-chipmunk, bodge-nuklear, bodge-nanovg and other complete wrappers into quicklisp 2018-01-16T15:22:32Z borodust: but like Shinmera's libraries, some of those are using customized c wrappers (autogenerated) to prevent any struct-by-value issues 2018-01-16T15:23:16Z loke joined #lisp 2018-01-16T15:23:29Z borodust: like this: https://github.com/borodust/bodge-chipmunk/blob/master/lib/main.c which is autogenerated by claw tool 2018-01-16T15:23:48Z borodust: so neither libffi nor manual c wrappers are required 2018-01-16T15:25:42Z fikka joined #lisp 2018-01-16T15:28:57Z rumbler31 joined #lisp 2018-01-16T15:29:13Z borodust: and here is the only required library descriptor to generate lisp interface and aforementioned c wrapper: https://github.com/borodust/bodge-chipmunk/blob/master/claw.lisp 2018-01-16T15:29:36Z borodust: for chipmunk 2018-01-16T15:29:42Z samla joined #lisp 2018-01-16T15:31:20Z borodust: s/lisp/lispified/ 2018-01-16T15:34:35Z samla: Does anyone want to ask a question to Donald Knuth? 2018-01-16T15:35:09Z borodust: howdy 2018-01-16T15:35:13Z shka: Shinmera: that weird, to say the least, consider the following file 2018-01-16T15:35:15Z shka: https://pastebin.com/iUm5gtnM 2018-01-16T15:35:20Z loke: samla: I would probably ask him some questions if I met him. 2018-01-16T15:35:33Z shka: (list-uri-dispatchers) 2018-01-16T15:35:34Z shka: (# # 2018-01-16T15:35:40Z shka: sorry 2018-01-16T15:35:42Z samla: loke: I could ask him one of those if you want to 2018-01-16T15:35:50Z loke: samla: You know him? 2018-01-16T15:36:00Z shka: anyway list-uri-dispatcher will list dispatcher for entry, but not for users 2018-01-16T15:36:14Z Shinmera: shka: Because you're using the same name for both 2018-01-16T15:36:19Z beach: I asked him all the question I had last time I saw him. 2018-01-16T15:36:20Z attila_lendvai: there's also cffi/c2ffi for autogenerated FFI's. here's a simple example using it: https://github.com/attila-lendvai/hu.dwim.bluez 2018-01-16T15:36:28Z Devon joined #lisp 2018-01-16T15:36:30Z samla: loke: nah, uni got a q&a session with him so yeah 2018-01-16T15:36:31Z Shinmera: shka: As is mentioned in the section I linked you, the names need to be unique. 2018-01-16T15:36:49Z shka: jesus 2018-01-16T15:36:51Z Shinmera: shka: This is so that Radiance can know what to change when you make a redefintion. 2018-01-16T15:36:52Z shka: you are right 2018-01-16T15:37:09Z shka: somehow i thought that this is module name xD 2018-01-16T15:37:19Z loke: samla: I'm sure there will be enough people asking good questions :-) 2018-01-16T15:37:28Z Shinmera: Heh, well, at least it was an easy problem to solve :) 2018-01-16T15:37:36Z smurfrobot joined #lisp 2018-01-16T15:37:48Z samla: loke: alright then :)! Well, I sure hope so 2018-01-16T15:37:59Z shka: I did not felt so stupid since thursday 2018-01-16T15:38:45Z oleo joined #lisp 2018-01-16T15:38:56Z samla: Fucking he'll, why didn't I bring with me my copy of coders at work for him to sign. I'm a failure 2018-01-16T15:39:19Z samla: Ok thanks guys! 2018-01-16T15:39:22Z samla left #lisp 2018-01-16T15:41:52Z makomo: Shinmera: i have to say, i'm always surprised by the amount of stuff you have produced :-) 2018-01-16T15:42:25Z makomo: for example, seeing some of your projects and then a line like "it uses X, Y and Z under the hood". following the links you discover that all of X, Y and Z are also made by you :-) 2018-01-16T15:42:59Z makomo: as an example, stuff like Plump, CLSS, lQuery, Clip, Radiance 2018-01-16T15:43:01Z makomo: quite nice 2018-01-16T15:43:03Z Shinmera: Well, that's what happens when you shave some yaks 2018-01-16T15:43:29Z smurfrobot quit (Remote host closed the connection) 2018-01-16T15:43:43Z makomo: i would like to ask, is there a general description of the problems web frameworks in general are supposed to solve 2018-01-16T15:43:43Z shka: Shinmera: i wonder how i should handle redirecting from account creation to my main page 2018-01-16T15:43:56Z shka: simply add redirect or there is another way to do so? 2018-01-16T15:44:02Z makomo: or rather, the individual components of web frameworks maybe. for example, "routing" 2018-01-16T15:44:29Z makomo: i have a vague understanding of what routing is supposed to do/does, but is there an actual book/article explaining in detail the abstract notion of such stuff 2018-01-16T15:44:34Z Shinmera: makomo: People have different ideas about what a framework is or should be, so, not really. 2018-01-16T15:44:38Z makomo: (as opposed to just reading concrete implementations) 2018-01-16T15:44:43Z makomo: yeah, that's what i thought :^( 2018-01-16T15:45:05Z Shinmera: shka: You mean your own account page, or the one offered by simple-auth? 2018-01-16T15:45:21Z shka: Shinmera: simple-auth, at least for now 2018-01-16T15:45:23Z hexfive joined #lisp 2018-01-16T15:45:29Z shka: because i am lazy 2018-01-16T15:46:06Z samla joined #lisp 2018-01-16T15:46:32Z Shinmera: I don't think there's currently a way for registration. There is one for logging in, at least. 2018-01-16T15:46:52Z makomo: Shinmera: nice work though! i like when the documentation is prose, rather than just a huge reference. imo, the first thing in the documentation should always be the definition of the problem the library is trying to solve, or a concept/motivation of some sort 2018-01-16T15:46:58Z shka: ok, that's fine 2018-01-16T15:47:07Z Shinmera: Which is to simply put the URL to redirect to as a get/post parameter called "landing-page" 2018-01-16T15:47:23Z shka: i should make custom register page anyway 2018-01-16T15:47:48Z Cymew quit (Remote host closed the connection) 2018-01-16T15:48:10Z Shinmera: makomo: Sure. 2018-01-16T15:48:49Z orivej quit (Ping timeout: 248 seconds) 2018-01-16T15:51:16Z Xach: borodust, Shinmera - you are two folks who provide custom dists. Are you up for starting to sign your dists with opengpgpgpg? 2018-01-16T15:51:55Z Xach: There is no procedure yet, but I am wondering: do you have a key, are you willing to use it, etc. 2018-01-16T15:52:43Z Shinmera: I sign my commits with gpg already, so I wouldn't be against it. 2018-01-16T15:54:00Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-16T15:54:06Z Cymew joined #lisp 2018-01-16T15:54:32Z Shinmera: Won't have time to mess with my dist procedure until late February though 2018-01-16T15:55:12Z randomstrangerb joined #lisp 2018-01-16T15:56:07Z z3t0 joined #lisp 2018-01-16T15:56:23Z dec0n quit (Read error: Connection reset by peer) 2018-01-16T15:57:33Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-01-16T15:58:20Z murii quit (Ping timeout: 276 seconds) 2018-01-16T15:58:53Z Cymew quit (Ping timeout: 276 seconds) 2018-01-16T15:59:24Z samla quit (Remote host closed the connection) 2018-01-16T15:59:32Z z3t0 quit (Remote host closed the connection) 2018-01-16T16:00:02Z z3t0 joined #lisp 2018-01-16T16:00:12Z Cymew joined #lisp 2018-01-16T16:00:46Z sjl__ is now known as sjl 2018-01-16T16:01:10Z borodust: Xach: yes, if that would be fairly easy to do (sign a dist) i'm certainly up to it 2018-01-16T16:01:13Z _cosmonaut_ quit (Ping timeout: 268 seconds) 2018-01-16T16:02:04Z sjl: Xach: is there any way library authors can subscribe to QL's build/test process so we get notified when our projects break? 2018-01-16T16:02:19Z Shinmera: sjl: He's been looking into adding RSS feeds. 2018-01-16T16:02:20Z sjl: right now my strategy is basically "happen to see the quicklisp account post something on twitter" 2018-01-16T16:02:57Z sjl: Shinmera: that's a start... per-project feeds would be great, because I really only care about a few particular ones (mainly my own) 2018-01-16T16:03:29Z smurfrobot joined #lisp 2018-01-16T16:03:41Z eivarv joined #lisp 2018-01-16T16:04:20Z z3t0 quit (Ping timeout: 255 seconds) 2018-01-16T16:05:05Z Cymew quit (Ping timeout: 260 seconds) 2018-01-16T16:06:31Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-16T16:09:15Z Xach: sjl: I am trying to make a per-project and per-author set of feeds 2018-01-16T16:09:20Z z3t0 joined #lisp 2018-01-16T16:09:53Z Xach: They are always all posted to http://report.quicklisp.org/ also, but that's a view that maximizes my convenience, not anyone else's 2018-01-16T16:10:18Z arbv joined #lisp 2018-01-16T16:11:43Z FreeBirdLjj joined #lisp 2018-01-16T16:11:49Z milanj joined #lisp 2018-01-16T16:12:01Z sjl: Xach: per-author would be lovely 2018-01-16T16:12:03Z Xach: sjl: I've sometimes thought about auto-posting github issues, but I can think of so many failure modes that I hesitate. 2018-01-16T16:12:16Z sjl: Yeah that might be a little excessive. 2018-01-16T16:12:31Z Shinmera: There is that thing with github where you can be an "application" like travis that shows build success on commits and PRs 2018-01-16T16:12:36Z Shinmera: That could potentially be used 2018-01-16T16:12:56Z Shinmera: It won't notify you about it, but when you look at a commit it'll show you whether it passed a check or not. 2018-01-16T16:16:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-16T16:16:17Z Xach: hmm 2018-01-16T16:16:35Z Shinmera: I can look into that once I'm done with GraphQL and the Github v4 API 2018-01-16T16:17:34Z shka: btw folks 2018-01-16T16:17:51Z shka: is there anything like cl-who, but more suited for dynamic web pages? 2018-01-16T16:20:17Z _cosmonaut_ joined #lisp 2018-01-16T16:22:10Z dlowe: shka: https://github.com/dlowe-net/stencl/ 2018-01-16T16:22:24Z flamebeard quit (Quit: Leaving) 2018-01-16T16:22:33Z shka: please, no templates :/ 2018-01-16T16:22:42Z dlowe shrugs. 2018-01-16T16:22:48Z shka: i really would rather write sexps 2018-01-16T16:23:17Z phoe: somebody masquerade the templates as sexps 2018-01-16T16:23:37Z Shinmera: I masquerade them as valid HTML 2018-01-16T16:23:40Z dlowe: I thought cl-who pretty much was templates with sexps 2018-01-16T16:24:17Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-01-16T16:27:18Z Murii joined #lisp 2018-01-16T16:27:39Z Bike quit (Ping timeout: 260 seconds) 2018-01-16T16:31:19Z smurfrobot quit (Remote host closed the connection) 2018-01-16T16:31:41Z shka: sadly i hate both CSS and HTML 2018-01-16T16:32:06Z shka: there is LASS that allows me to not look at css 2018-01-16T16:32:13Z dlowe: There are people who love both. Maybe you could team up with one of them. 2018-01-16T16:32:26Z FreeBirdLjj joined #lisp 2018-01-16T16:32:28Z dlowe: (they will probably want templates :D) 2018-01-16T16:32:43Z malice joined #lisp 2018-01-16T16:32:55Z shka: i tried doing that, now i have deadline and my teammate does not respond 2018-01-16T16:33:03Z shrdlu68: shka: No templates? 2018-01-16T16:33:12Z JuanDaugherty joined #lisp 2018-01-16T16:33:23Z shka: so screw that, i am doing that myself 2018-01-16T16:34:18Z malice: Hi! Is there a Common Lisp standard available on ANSI page? I tried looking for it but I couldn't find it. I want to reference it, I don't want to buy it and I'm aware of its low quality. 2018-01-16T16:34:19Z shka: as for CSS 2018-01-16T16:34:26Z shka: https://stackoverflow.com/questions/46237637/css-align-2-html-forms 2018-01-16T16:34:30Z shka: seriously guys 2018-01-16T16:34:36Z shka: the year is 2017 2018-01-16T16:34:55Z shka: and such trivial task… 2018-01-16T16:35:15Z beach: malice: ANSI is a for-profit company, so they would not give their standard for free. 2018-01-16T16:35:19Z loke: shka: I have been saying exactly that for well over 10 years. 2018-01-16T16:35:23Z Xach: malice: https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS+226-1994%5BS2008%5D perhaps 2018-01-16T16:35:25Z EvW1 joined #lisp 2018-01-16T16:35:39Z loke: shka: Back in the frickin' 80's we have layout systems better than HTML is today. 2018-01-16T16:35:41Z shrdlu68: shka: Ever wondered why the world seems to need so many programmers? 2018-01-16T16:35:44Z Xach: malice: what do you mean by "refernece it"? 2018-01-16T16:36:09Z shka: loke: back in the medieval ages as well 2018-01-16T16:36:17Z malice: Xach: I'm writing my Bachelor thesis and wanted to provide a reference to Ansi standard when I'm mentioning that CL has one 2018-01-16T16:36:24Z Xach: "reference" sorry. 2018-01-16T16:36:32Z shka: malice: I usually reference ClTl 2018-01-16T16:36:38Z shka: it works 2018-01-16T16:37:00Z shka: https://stackoverflow.com/questions/44389464/align-the-form-to-the-center-in-bootstrap-4 2018-01-16T16:37:06Z shka screams internally 2018-01-16T16:37:15Z beach: malice: Give me a minute... 2018-01-16T16:37:33Z Xach: shka: why cltl? 2018-01-16T16:37:51Z malice: Probably because it's available online for free 2018-01-16T16:37:52Z sjl: malice: there's a bibtex hunk for it at http://ftp.math.utah.edu/pub/tex/bib/ansistd.html 2018-01-16T16:38:02Z sjl: ANSI:1996:ANSa 2018-01-16T16:38:33Z malice: sjl: Thanks, that's probably what I was after! 2018-01-16T16:38:46Z shka: Xach: because I am at the point that I want to pull the middle finger, and quit this farse 2018-01-16T16:38:52Z sjl: Assuming you just want to reference the standard as a whole and not some particular page/section. 2018-01-16T16:38:55Z shka: and I don't really care 2018-01-16T16:39:11Z shka: and at the very least i KNOW where things are explained there 2018-01-16T16:39:20Z emacsoma` quit (Ping timeout: 256 seconds) 2018-01-16T16:39:22Z Xach: shka: You mean you use it as a reference as you write new code? 2018-01-16T16:39:26Z shka: so it saves my depleted patience 2018-01-16T16:40:29Z shka: Xach: that to, but this thing I can do calmly, believe it or not I am trying to get my bachelor degree as well 2018-01-16T16:41:03Z Xach: shka: I don't really care what you personally use but please don't recommend it as a primary reference to someone who might not know better. 2018-01-16T16:41:08Z shka: and after all this time, uni crap make me go berserk 2018-01-16T16:41:09Z beach: malice: Did you get what you needed. Otherwise, look in SICL/Papers/Type-inference/type-inference.bib 2018-01-16T16:41:36Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T16:43:12Z shka: Xach: but why? cltl2 is a good book IMHO. It's only drawback is that it was written before standard was finalized. 2018-01-16T16:43:45Z safe joined #lisp 2018-01-16T16:44:11Z Xach: shka: it has good prose, and is good to supplement or augment the reference material, but there are areas where it describes non-standard behavior as standard. It should not be encouraged as someone's first primary reference. 2018-01-16T16:44:19Z beach: shka: It is not an acceptable reference for Common Lisp. 2018-01-16T16:44:38Z shka: oh 2018-01-16T16:44:44Z Xach: I really liked reading it cover to cover. It has some warmth and humor and fills in some historical details with sloppy but enjoyable writing. 2018-01-16T16:44:49Z shka: well, i won't argue with that 2018-01-16T16:44:52Z Shinmera: shka: LASS is still CSS. It just looks like sexprs. 2018-01-16T16:45:12Z shka: Shinmera: yes, and it makes self denial easier 2018-01-16T16:45:30Z Xach: And I mean "sloppy" in the sense of being a little convoluted and human, rather than the dry and precise stuff in the final spec. 2018-01-16T16:45:36Z jackdaniel: last time I've checked CSS doesn't look like sexprs, so if LASS is still CSS – it doesn't neither ;) 2018-01-16T16:45:38Z shka: but I really like this book and I found it extreamly informative 2018-01-16T16:45:51Z shka: jackdaniel: 1+ 2018-01-16T16:45:58Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-01-16T16:46:04Z Shinmera: jackdaniel: What makes CSS painful is all the options and values and how they model the UI. That does not change with LASS. 2018-01-16T16:46:08Z loke agress with Xach. I don't think I would have appreciated CL as much if it wasn't for the fact that my boos gave me a copy of the book back in... hmm... late 90's? 2018-01-16T16:46:10Z Shinmera: The surface syntax makes little difference 2018-01-16T16:46:23Z loke: I never really got into CL until about 6 or so years ago, but whatever :-) 2018-01-16T16:46:56Z mhd joined #lisp 2018-01-16T16:47:07Z jackdaniel: I have never argued that CSS is painful (or not) :p 2018-01-16T16:47:27Z malice: beach: I got what I wanted, but I will look anyway. Thank you for help! 2018-01-16T16:47:30Z shka: loke: oh boy, back 6 years ago i didn't have gray hairs :D 2018-01-16T16:47:31Z smurfrobot joined #lisp 2018-01-16T16:50:02Z SaganMan quit (Quit: laters) 2018-01-16T16:50:06Z smasta quit (Ping timeout: 256 seconds) 2018-01-16T16:53:23Z drewc quit (Ping timeout: 255 seconds) 2018-01-16T17:00:37Z Bike joined #lisp 2018-01-16T17:00:54Z rafadc joined #lisp 2018-01-16T17:01:31Z Murii is now known as murii 2018-01-16T17:02:03Z murii is now known as Murii 2018-01-16T17:03:57Z z3t0 quit (Remote host closed the connection) 2018-01-16T17:06:28Z smurfrobot quit (Remote host closed the connection) 2018-01-16T17:08:30Z hexfive quit (Read error: Connection reset by peer) 2018-01-16T17:08:46Z drewc joined #lisp 2018-01-16T17:09:57Z hexfive joined #lisp 2018-01-16T17:11:15Z z3t0 joined #lisp 2018-01-16T17:14:27Z jibanes quit (Ping timeout: 240 seconds) 2018-01-16T17:16:18Z jibanes joined #lisp 2018-01-16T17:17:41Z hexfive quit (Remote host closed the connection) 2018-01-16T17:19:18Z hexfive joined #lisp 2018-01-16T17:19:24Z nullniverse joined #lisp 2018-01-16T17:21:57Z whoman joined #lisp 2018-01-16T17:21:58Z hexfive quit (Read error: Connection reset by peer) 2018-01-16T17:22:39Z hexfive joined #lisp 2018-01-16T17:28:29Z JonSmith quit (Remote host closed the connection) 2018-01-16T17:29:00Z _cosmonaut_ quit (Quit: Leaving.) 2018-01-16T17:29:40Z FreeBirdLjj quit (Remote host closed the connection) 2018-01-16T17:33:23Z shka: Shinmera: so i was wondering, how I should handle submit if i don't want to use templates? 2018-01-16T17:33:52Z Shinmera: Hm? 2018-01-16T17:34:00Z pmetzger joined #lisp 2018-01-16T17:34:16Z shka: simply if on request to distinguish submit? 2018-01-16T17:36:33Z junxit joined #lisp 2018-01-16T17:36:38Z sukaeto joined #lisp 2018-01-16T17:37:28Z CrazyEddy quit (Remote host closed the connection) 2018-01-16T17:37:54Z fikka joined #lisp 2018-01-16T17:38:14Z shka: Shinmera: (if (eq :get (http-method *request*)) … 2018-01-16T17:39:04Z Shinmera: Typically form submission should happen to API endpoints so that they can be used programmatically as well 2018-01-16T17:40:26Z Shinmera: But sure if you want to do it that way you can 2018-01-16T17:40:40Z Shinmera: I don't understand what submission has to do with templates though 2018-01-16T17:41:10Z shka: hmm 2018-01-16T17:41:32Z z3t0 quit (Remote host closed the connection) 2018-01-16T17:41:51Z z3t0 joined #lisp 2018-01-16T17:42:05Z Shinmera: The page will output whatever you return from it, or whatever you explicitly store in the response object's data 2018-01-16T17:42:06Z shka: Shinmera: i was trying to copy what simple-auth is doing at register 2018-01-16T17:43:36Z shka: and needless to say, register is not api… not sure what to think about that 2018-01-16T17:43:47Z Shinmera: It's old, is what you should think about that. 2018-01-16T17:44:53Z shka: i see 2018-01-16T17:45:04Z shka: ok, i will try to look at login instead 2018-01-16T17:45:08Z schweers quit (Ping timeout: 255 seconds) 2018-01-16T17:45:09Z shka: thanks 2018-01-16T17:45:12Z Shinmera: Should fix it up and make it accept a redirect too 2018-01-16T17:45:23Z Shinmera: But, so much to do 2018-01-16T17:45:48Z smurfrobot joined #lisp 2018-01-16T17:46:23Z shka: well, I will look at it, maybe i can even patch it someday 2018-01-16T17:46:24Z z3t0 quit (Remote host closed the connection) 2018-01-16T17:46:33Z shka: busy right now, though 2018-01-16T17:47:00Z z3t0 joined #lisp 2018-01-16T17:48:45Z rafadc quit (Quit: Bye!) 2018-01-16T17:50:38Z z3t0 quit (Remote host closed the connection) 2018-01-16T17:50:57Z z3t0 joined #lisp 2018-01-16T17:52:29Z m00natic quit (Remote host closed the connection) 2018-01-16T17:53:48Z z3t0 quit (Remote host closed the connection) 2018-01-16T17:55:29Z shka: Shinmera: anyway, whole gist of define-api is that code is launched on :submit, is that correct? 2018-01-16T17:56:00Z z3t0_ joined #lisp 2018-01-16T17:56:52Z Shinmera: When you have a form and the user clicks submit, the browser opens another page with the form data as parameters. 2018-01-16T17:57:30Z Shinmera: API endpoints are pages that do argument parsing for you to some extent and have a stricter scheme about how they can be reached. 2018-01-16T17:57:53Z Karl_Dscc joined #lisp 2018-01-16T17:58:43Z z3t0_ quit (Remote host closed the connection) 2018-01-16T17:59:42Z shka: Shinmera: well, ok 2018-01-16T18:00:40Z FreeBirdLjj joined #lisp 2018-01-16T18:03:02Z hhdave quit (Ping timeout: 276 seconds) 2018-01-16T18:05:05Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-16T18:09:13Z hexfive quit (Remote host closed the connection) 2018-01-16T18:09:56Z hexfive joined #lisp 2018-01-16T18:10:45Z FreeBirdLjj joined #lisp 2018-01-16T18:11:00Z z3t0 joined #lisp 2018-01-16T18:11:55Z shka: Shinmera: so i should name my api like it's route? 2018-01-16T18:12:05Z shka: that's what you are doing anyway 2018-01-16T18:12:14Z Shinmera: routes are something different in Radiance. 2018-01-16T18:12:27Z Shinmera: The convention is to name the api endpoint module/something/something 2018-01-16T18:12:46Z Shinmera: so for auth that's auth/login. For, say, plaster that's plaster/create, etc. 2018-01-16T18:12:57Z Shinmera: The tutorial goes through all of this though. 2018-01-16T18:13:04Z smurfrobot quit (Remote host closed the connection) 2018-01-16T18:13:08Z shka: well, post request launches page code 2018-01-16T18:13:13Z shka: is that normal? 2018-01-16T18:13:22Z Shinmera: Yes? 2018-01-16T18:13:56Z shka: well, i don't know how i am supposed to use it, really 2018-01-16T18:14:28Z Shinmera: The tutorial explains how, as does the documentation. 2018-01-16T18:14:44Z shka: part 1? 2018-01-16T18:15:31Z Shinmera: It does use api endpoints already so yes 2018-01-16T18:15:45Z ebzzry quit (Ping timeout: 260 seconds) 2018-01-16T18:17:13Z Ven`` joined #lisp 2018-01-16T18:17:20Z z3t0 quit (Remote host closed the connection) 2018-01-16T18:17:44Z shka: I see what i am doing wrong… 2018-01-16T18:17:51Z shka: sorry for being dense :P 2018-01-16T18:19:45Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-16T18:21:37Z shka: or not 2018-01-16T18:21:38Z osune joined #lisp 2018-01-16T18:22:36Z Shinmera: (define-api foo ()) will be reachable at /api/foo, (define-api foo/bar/baz ()) will be reachable at /api/foo/bar/baz 2018-01-16T18:23:20Z shka: yeah, i noticed that 2018-01-16T18:23:20Z sebastien_ quit (Quit: leaving) 2018-01-16T18:23:29Z shka: forgot about /api/ part 2018-01-16T18:25:18Z sebastien_ joined #lisp 2018-01-16T18:28:31Z samla joined #lisp 2018-01-16T18:28:35Z MetaYan quit (Ping timeout: 240 seconds) 2018-01-16T18:29:10Z turkja quit (Ping timeout: 260 seconds) 2018-01-16T18:29:41Z MetaYan joined #lisp 2018-01-16T18:30:24Z FreeBirdLjj joined #lisp 2018-01-16T18:30:43Z nika quit (Quit: Leaving...) 2018-01-16T18:30:59Z shka: Shinmera: well, that would be it for today, I must say that you were of great assistance to me today, thank you 2018-01-16T18:31:07Z Shinmera: Sure. 2018-01-16T18:32:24Z osune: while we are talking webframeworks on CL: Currently I run my Telegram Bot in long poll mode, but I can use a single webhok too. Assuming I'm a embedded C programmer (no significant server side expirience) , should I even look at radiance or is something barebones like lack a better start for me to provide a single uri which gets POST requests with json data ? 2018-01-16T18:32:54Z Shinmera: For that I'd just use a server like hunchentoot directly. 2018-01-16T18:33:05Z Shinmera: But you can also use Radiance for it if you want of course 2018-01-16T18:33:59Z shka: well, radiance at least look like decently designed architecture 2018-01-16T18:34:39Z shka: so you may be extra future proof by using it, although this may be a huge overkill 2018-01-16T18:34:41Z Shinmera: One of the core points of Radiance is to allow you to run multiple web applications in a shared environment. So if what you're developing is a component that could be reused by other people, then Radiance is a good fit. 2018-01-16T18:35:01Z shka: yeah 2018-01-16T18:35:08Z Shinmera: If it's just for you, then you can just as well go with Hunchentoot barebones. 2018-01-16T18:35:08Z shka: i noticed that theme 2018-01-16T18:35:23Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-16T18:36:30Z shka: anyway… I like radiance 2018-01-16T18:36:57Z anunnaki joined #lisp 2018-01-16T18:37:07Z shka: not any expert (obviously), but modular architecture FTW 2018-01-16T18:37:34Z osune: So if I would want create a full blown REST api Radiance would be a good fit? I assume I need to know how the server under the framework works to use/understand any framework? 2018-01-16T18:38:06Z Shinmera: Well if you create an API or web thingy that might be useful to other people then sure. 2018-01-16T18:38:14Z shka: osune: server is abstracted away 2018-01-16T18:38:20Z Shinmera: You don't really need to understand the server. 2018-01-16T18:38:47Z shka: have a good evening all 2018-01-16T18:40:47Z ikki joined #lisp 2018-01-16T18:40:48Z pagnol joined #lisp 2018-01-16T18:40:48Z osune: Thanks Shinmera, I'll take the route which I'll understand faster 2018-01-16T18:40:50Z Shinmera: osune: The server is basically just responsible for listening on a port and translating the HTTP structure to some internal format. Typically an object. 2018-01-16T18:41:20Z Shinmera: The framework will handle things like dispatch based on the URL. 2018-01-16T18:41:23Z mathi_aihtam quit (Ping timeout: 255 seconds) 2018-01-16T18:42:08Z Shinmera: So all you need to understand is on which URL your functionality will be reachable, how to access request data, and how to return response data. 2018-01-16T18:43:46Z osune: For the telegram bot I need to provide a customized URL ( https://www.example.com/ ). So far I understand that the server does no routing and I would need a Framework which can dispatch on a URL. Did I got this right? 2018-01-16T18:44:15Z Shinmera: Well you can do the routing yourself. Which is trivial especially if you only have one thing to reach :) 2018-01-16T18:44:19Z JonSmith joined #lisp 2018-01-16T18:45:00Z osune: Because the URL used would be in the server internal Request Object 2018-01-16T18:45:07Z z3t0 joined #lisp 2018-01-16T18:45:13Z Shinmera: Routing in Radiance is a bit more complicated, but in most frameworks all it is is a list of "pages" and some regex that the current request is compared against. 2018-01-16T18:46:47Z fikka quit (Ping timeout: 255 seconds) 2018-01-16T18:46:48Z Shinmera: osune: A framework is not magic. It uses the server's public API, so you can too. 2018-01-16T18:47:14Z Shinmera: Anyway, just have a look at Hunchentoot's documentation. It's good and shows a simple example that should get you started in no time. 2018-01-16T18:47:18Z JonSmith quit (Remote host closed the connection) 2018-01-16T18:47:34Z JonSmith joined #lisp 2018-01-16T18:47:45Z z3t0 quit (Remote host closed the connection) 2018-01-16T18:50:00Z osune: If I would using python , probably would take flask ( I dabbled a bit with cherry-py a few years ago ) for this task. So I wondered where to start with CL. Thanks for the starters 2018-01-16T18:50:43Z FreeBirdLjj joined #lisp 2018-01-16T18:51:15Z shka: there is a tutorial on building simple web page raw on hunchentoot 2018-01-16T18:51:28Z shka: lisp for the web or something like this 2018-01-16T18:51:36Z shka: it is pretty old, though 2018-01-16T18:51:43Z Shinmera: There's one in the HT docs. 2018-01-16T18:52:15Z JonSmith quit (Ping timeout: 248 seconds) 2018-01-16T18:53:04Z ikki quit (Ping timeout: 256 seconds) 2018-01-16T18:53:22Z fikka joined #lisp 2018-01-16T18:54:06Z JonSmith joined #lisp 2018-01-16T18:54:19Z z3t0 joined #lisp 2018-01-16T18:54:22Z osune: jackdaniel: I took a look at the ecl cffi backend. They use quite excessive the uffi compatible interface, which is somewhat marked as "depricated". I feel conflicted if I should use it or not (the uffi interface would staisfy my needs). Can you give me absolution? 2018-01-16T18:54:23Z anunnaki quit (Ping timeout: 276 seconds) 2018-01-16T18:54:46Z osune: shka: maybe you mean Lisp Web Tales? 2018-01-16T18:55:05Z shka: that's the newer one i think 2018-01-16T18:55:33Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-01-16T18:55:39Z shka: i did not read it, that's for sure 2018-01-16T18:56:07Z jackdaniel: osune: CFFI uses ECL ffi which implements interface defined by UFFI 2018-01-16T18:56:10Z jackdaniel: nothing wrong with that 2018-01-16T18:56:15Z jackdaniel: it is not deprecated *in* ECL 2018-01-16T18:59:01Z z3t0 quit (Ping timeout: 265 seconds) 2018-01-16T19:00:09Z osune: I must have over estimized the meaning of "New code shouldn’t use this interface preferring CFFI." , because the SFFI interface is said "to be only used if ECL is your deployment platform". I understood it as you should use CFFI if possible , and SFFI as fallback. 2018-01-16T19:00:31Z jackdaniel: sffi is static ffi which is ECL-specific 2018-01-16T19:00:47Z jackdaniel: UFFI is ECL's exported interface for FFI (which is interface-compatible with original UFFI) 2018-01-16T19:01:05Z jackdaniel: CFFI is portability layer between implementations which makes a portable interface for FFI 2018-01-16T19:01:47Z jackdaniel: in case of ECL, it uses UFFI-compatible interface, because that's what ECL provides. In case of SBCL it will use sb-alien package interfaces etc. If you use sb-alien package, you can't expect it will work on other lisps 2018-01-16T19:01:53Z osune: but one can use UFFI in a static context too, at least that is what I got out of the ecl backend in cffi? 2018-01-16T19:02:05Z EvW1 quit (Ping timeout: 255 seconds) 2018-01-16T19:02:25Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T19:03:45Z jackdaniel: CFFI can use static ffi of ECL as well, that's just the way how calls are compiled 2018-01-16T19:04:14Z erikc joined #lisp 2018-01-16T19:04:55Z anunnaki joined #lisp 2018-01-16T19:05:27Z FreeBirdLjj joined #lisp 2018-01-16T19:06:23Z osune: ok so all this is a understanding on my side regarding the manual which I had prior to taking a look at the ecl backend in cffi as you suggested. Thanks for the confirmation :) 2018-01-16T19:08:40Z sonologico joined #lisp 2018-01-16T19:11:52Z samla quit (Quit: Mutter: www.mutterirc.com) 2018-01-16T19:18:23Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-16T19:19:40Z python476 quit (Remote host closed the connection) 2018-01-16T19:24:04Z osune: jackdaniel: another question still bugs me since yesterday: where is cl_load defined? in c/load.d is LOAD defined and it uses cl_load, so it is already in available in ecl_min. When searching for cl_load (https://gitlab.com/search?utf8=%E2%9C%93&search=cl_load&group_id=&project_id=178692&search_code=true&repository_ref=develop) I can see the mapping of LOAD and cl_load and the external declaration. But if LOAD uses cl_load, how or where 2018-01-16T19:24:05Z osune: is cl_load defined? 2018-01-16T19:24:32Z mikaelj joined #lisp 2018-01-16T19:24:45Z varjag joined #lisp 2018-01-16T19:25:35Z LocaMocha quit (Ping timeout: 276 seconds) 2018-01-16T19:26:29Z Devon: Any package out there to write files with Emacs-style safety, e.g., to update foo write to #foo# then rename #foo# to foo while holding a lock as a symlink .#foo -> HOST.PID 2018-01-16T19:26:45Z fikka quit (Ping timeout: 264 seconds) 2018-01-16T19:27:00Z Xach: Devon: I haven't heard of such a thing. I do that manually when I care (but without the locking part) 2018-01-16T19:27:12Z Xach: Just the write-to-temp and rename part... 2018-01-16T19:27:33Z Shinmera: Well :if-exists :supersede creates a new file and then renames on completion. 2018-01-16T19:27:40Z Devon: Me too but I'm doing it more often lately. 2018-01-16T19:27:59Z Xach: Shinmera: it might 2018-01-16T19:28:01Z FreeBirdLjj joined #lisp 2018-01-16T19:28:35Z Xach: I would be interesting in seeing just what each implementation actually does for each of those open options. 2018-01-16T19:28:39Z Xach: interested, rather 2018-01-16T19:28:42Z Shinmera: The :rename-and-delete option is pretty weird: "The existing file is renamed to some other name, then it is deleted but not expunged, and then a new file is created." 2018-01-16T19:29:10Z Devon: open [Function] ... :supersede ... If possible, the implementation should not destroy the old file until the new stream is closed. 2018-01-16T19:29:23Z pmetzger quit 2018-01-16T19:29:26Z Devon: I was thinking of a stronger assurance. 2018-01-16T19:29:40Z hexfive quit (Read error: Connection reset by peer) 2018-01-16T19:30:16Z hexfive joined #lisp 2018-01-16T19:32:45Z nullman quit (Ping timeout: 260 seconds) 2018-01-16T19:34:32Z nullman joined #lisp 2018-01-16T19:36:07Z pjb: Shinmera: :rename-and-delete is basically what application do on unix systems. 2018-01-16T19:36:34Z pjb: eg. emacs renames the current file foo as foo.~1~ and then deletes (at a later time) the older backup files. 2018-01-16T19:36:34Z fikka joined #lisp 2018-01-16T19:36:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-16T19:37:30Z turkja joined #lisp 2018-01-16T19:38:29Z Devon: Emacs first checks for */.bzr/checkout/format, */.git, */.hg, */_MTN/format\0, .src/*, .src/*,v, RCS/*, RCS/*,v, s.*, SCCS/s.* and who knows what else, before saving *.~1~ 2018-01-16T19:39:00Z osune: jackdaniel: never mind i figured it out and I feel ashamed 2018-01-16T19:39:27Z pjb: Devon: of course, and it doesn't even save it necessarily in the same directory or file system. 2018-01-16T19:42:20Z FreeBirdLjj joined #lisp 2018-01-16T19:44:53Z JuanitoJons joined #lisp 2018-01-16T19:47:02Z anunnaki is now known as vertigo 2018-01-16T19:48:26Z turkja quit (Ping timeout: 276 seconds) 2018-01-16T19:52:07Z Baggers joined #lisp 2018-01-16T19:55:21Z smurfrobot joined #lisp 2018-01-16T19:55:24Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-16T19:56:16Z Ven`` joined #lisp 2018-01-16T19:56:45Z Ven`` quit (Read error: Connection reset by peer) 2018-01-16T19:56:48Z zooey quit (Remote host closed the connection) 2018-01-16T19:57:05Z Ven`` joined #lisp 2018-01-16T19:58:05Z zooey joined #lisp 2018-01-16T20:00:01Z fe[nl]ix: Devon: one recent Linux kernels it is possible to supersede atomically, but I know of no language library that exposes it 2018-01-16T20:00:13Z fe[nl]ix: *on 2018-01-16T20:01:46Z fe[nl]ix: there's a syscall for creating an unreferenced inode (temporary file), and a new way to atomically replace the inode pointed by a path 2018-01-16T20:02:09Z pjb: renameat2 2018-01-16T20:02:22Z fe[nl]ix: bonus that in case of :abort t, no empty temporary file is left around 2018-01-16T20:02:35Z fe[nl]ix: the unreferenced inode gets cleaned up immediately 2018-01-16T20:03:14Z fe[nl]ix: I should implement that in Iolib :) 2018-01-16T20:04:58Z FreeBirdLjj joined #lisp 2018-01-16T20:05:09Z damke quit (Ping timeout: 264 seconds) 2018-01-16T20:06:31Z osune: renameat2 : https://lwn.net/Articles/569134/ 2018-01-16T20:06:50Z fittestbits left #lisp 2018-01-16T20:07:05Z damke joined #lisp 2018-01-16T20:12:02Z smurfrobot quit (Remote host closed the connection) 2018-01-16T20:12:02Z EvW joined #lisp 2018-01-16T20:12:23Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-01-16T20:13:51Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-16T20:14:40Z sonologico quit (Ping timeout: 256 seconds) 2018-01-16T20:19:26Z FreeBirdLjj joined #lisp 2018-01-16T20:20:38Z orivej joined #lisp 2018-01-16T20:22:29Z vydd joined #lisp 2018-01-16T20:22:29Z vydd quit (Changing host) 2018-01-16T20:22:29Z vydd joined #lisp 2018-01-16T20:22:52Z Murii quit (Quit: WeeChat 1.4) 2018-01-16T20:23:35Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-16T20:24:15Z smurfrobot joined #lisp 2018-01-16T20:25:29Z FreeBirdLjj joined #lisp 2018-01-16T20:29:17Z BitPuffin quit (Remote host closed the connection) 2018-01-16T20:29:53Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-16T20:30:39Z Murii joined #lisp 2018-01-16T20:31:56Z scymtym_ joined #lisp 2018-01-16T20:33:53Z scymtym quit (Ping timeout: 255 seconds) 2018-01-16T20:34:58Z FreeBirdLjj joined #lisp 2018-01-16T20:36:35Z scymtym_ quit (Ping timeout: 255 seconds) 2018-01-16T20:38:36Z ikki joined #lisp 2018-01-16T20:41:25Z hexfive quit (Remote host closed the connection) 2018-01-16T20:42:59Z hexfive joined #lisp 2018-01-16T20:44:22Z hexfive quit (Client Quit) 2018-01-16T20:44:39Z hexfive joined #lisp 2018-01-16T20:46:43Z wigust_ quit (Ping timeout: 256 seconds) 2018-01-16T20:47:59Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-16T20:48:17Z junxit left #lisp 2018-01-16T20:54:58Z hexfive quit (Read error: Connection reset by peer) 2018-01-16T20:55:13Z shka quit (Ping timeout: 256 seconds) 2018-01-16T20:56:12Z hexfive joined #lisp 2018-01-16T20:56:32Z mhd quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-16T20:56:32Z mhd quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-16T20:57:37Z smurfrobot quit (Remote host closed the connection) 2018-01-16T20:57:51Z warweasle quit (Quit: away) 2018-01-16T20:58:29Z shka joined #lisp 2018-01-16T21:03:17Z hexfive quit (Remote host closed the connection) 2018-01-16T21:04:32Z hexfive joined #lisp 2018-01-16T21:05:17Z hexfive quit (Remote host closed the connection) 2018-01-16T21:05:26Z aphprentice quit (Quit: Connection closed for inactivity) 2018-01-16T21:05:56Z FreeBirdLjj joined #lisp 2018-01-16T21:06:52Z hexfive joined #lisp 2018-01-16T21:06:54Z Murii quit (Remote host closed the connection) 2018-01-16T21:11:23Z JuanDaugherty quit (Quit: Ex Chat) 2018-01-16T21:13:05Z fikka quit (Ping timeout: 248 seconds) 2018-01-16T21:15:25Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-01-16T21:18:03Z fortitude joined #lisp 2018-01-16T21:19:51Z hexfive quit (Read error: Connection reset by peer) 2018-01-16T21:20:08Z fikka joined #lisp 2018-01-16T21:21:10Z hexfive joined #lisp 2018-01-16T21:24:59Z FreeBirdLjj joined #lisp 2018-01-16T21:25:12Z rpg: Does anyone know if iterate has moved from darcs to git, or has a git mirror? 2018-01-16T21:26:07Z scymtym joined #lisp 2018-01-16T21:30:54Z papachan quit (Quit: WeeChat 2.0.1) 2018-01-16T21:32:37Z _death: at least quicklisp gets it from the darcs repository 2018-01-16T21:34:13Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-01-16T21:34:19Z rpg: oh, dear. I *really* don't want to try to figure out darcs. It could be arbitrarily better than git without being worth my learning it. 2018-01-16T21:34:59Z rpg: isn't it also effectively dead as far as development goes? 2018-01-16T21:35:30Z FreeBirdLjj joined #lisp 2018-01-16T21:36:14Z quazimodo joined #lisp 2018-01-16T21:41:07Z shka quit (Ping timeout: 256 seconds) 2018-01-16T21:44:19Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-16T21:45:05Z mishoo_ quit (Ping timeout: 256 seconds) 2018-01-16T21:48:45Z mhd joined #lisp 2018-01-16T21:49:08Z jasom: rpg: https://www.sanityinc.com/articles/converting-darcs-repositories-to-git/ 2018-01-16T21:50:59Z rpg: jasom: The problem with that is that the remote, authoritative repo will still be darcs when I have my git repo! :-/ 2018-01-16T21:51:46Z jasom: rpg: it works like svn-git to let you use git with a darcs remote indefinitely 2018-01-16T21:52:11Z fikka quit (Ping timeout: 255 seconds) 2018-01-16T21:52:46Z FreeBirdLjj joined #lisp 2018-01-16T21:53:09Z rpg: jasom: I'm sorry -- you are right. When I first skimmed this page I got stuck at "migrating ... from darcs to git..." and missed the "can be used to create git mirrors of active darcs repositories." 2018-01-16T21:53:28Z wxie joined #lisp 2018-01-16T21:54:57Z Shinmera: Could also try to convince Xach that your git repo will be the new authoritative source 2018-01-16T21:55:28Z rpg: Shinmera: The last thing either the CL community or I need is for me to own another authoritative repo! 2018-01-16T21:58:15Z Shinmera: You could also try to convince Xach to move it to sharplispers to make it more accessible to contributions. 2018-01-16T21:58:22Z Devon quit (Ping timeout: 256 seconds) 2018-01-16T21:59:06Z fikka joined #lisp 2018-01-16T21:59:44Z brendyn joined #lisp 2018-01-16T22:01:12Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-16T22:01:19Z rpg: That would really be up to Attila. If he prefers to keep it in darcs, I will not (or at least try not to) complain. 2018-01-16T22:04:03Z sz0_ joined #lisp 2018-01-16T22:04:18Z sz0_ is now known as sz0 2018-01-16T22:10:37Z FreeBirdLjj joined #lisp 2018-01-16T22:14:40Z hexfive quit (Read error: Connection reset by peer) 2018-01-16T22:15:28Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T22:15:29Z hexfive joined #lisp 2018-01-16T22:17:55Z CrazyEddy joined #lisp 2018-01-16T22:21:09Z Baggers quit (Remote host closed the connection) 2018-01-16T22:21:09Z eivarv quit (Quit: Sleep) 2018-01-16T22:22:01Z EvW quit (Ping timeout: 265 seconds) 2018-01-16T22:22:49Z JuanitoJons quit (Quit: Leaving) 2018-01-16T22:24:01Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-16T22:24:07Z EvW1 joined #lisp 2018-01-16T22:29:32Z Ven`` joined #lisp 2018-01-16T22:30:23Z openthesky joined #lisp 2018-01-16T22:32:57Z fikka quit (Ping timeout: 240 seconds) 2018-01-16T22:32:57Z FreeBirdLjj joined #lisp 2018-01-16T22:37:32Z pilfink joined #lisp 2018-01-16T22:37:57Z Ven`` quit (Read error: Connection reset by peer) 2018-01-16T22:38:30Z Ven`` joined #lisp 2018-01-16T22:38:39Z pjb: rpg: indeed, darcs is better than git, but when git appeared, it was suffering from a few bugs, which let git take over. Now it's essentially finished. 2018-01-16T22:38:58Z sjl quit (Quit: WeeChat 1.9) 2018-01-16T22:39:09Z fikka joined #lisp 2018-01-16T22:39:19Z sjl joined #lisp 2018-01-16T22:41:35Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-01-16T22:47:32Z rumbler31 quit (Ping timeout: 255 seconds) 2018-01-16T22:48:35Z varjag quit (Ping timeout: 240 seconds) 2018-01-16T22:50:53Z varjag joined #lisp 2018-01-16T22:51:58Z FreeBirdLjj joined #lisp 2018-01-16T22:55:13Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-01-16T22:55:27Z varjag quit (Ping timeout: 240 seconds) 2018-01-16T22:56:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-01-16T22:57:21Z sonologico joined #lisp 2018-01-16T23:00:20Z papachan joined #lisp 2018-01-16T23:01:24Z Bike quit (Ping timeout: 260 seconds) 2018-01-16T23:03:00Z wxie quit (Remote host closed the connection) 2018-01-16T23:04:15Z ikki quit (Ping timeout: 268 seconds) 2018-01-16T23:04:33Z damke quit (Ping timeout: 264 seconds) 2018-01-16T23:05:23Z Karl_Dscc quit (Remote host closed the connection) 2018-01-16T23:05:44Z shifty joined #lisp 2018-01-16T23:06:22Z damke joined #lisp 2018-01-16T23:06:34Z FreeBirdLjj joined #lisp 2018-01-16T23:06:57Z drewc quit (Ping timeout: 240 seconds) 2018-01-16T23:11:23Z FreeBirdLjj quit (Ping timeout: 255 seconds) 2018-01-16T23:11:47Z igemnace quit (Quit: WeeChat 2.0.1) 2018-01-16T23:12:02Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T23:17:15Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-16T23:18:28Z randomstrangerb joined #lisp 2018-01-16T23:18:58Z nullniverse quit (Remote host closed the connection) 2018-01-16T23:19:18Z drewc joined #lisp 2018-01-16T23:19:39Z nullniverse joined #lisp 2018-01-16T23:19:55Z hexfive quit (Remote host closed the connection) 2018-01-16T23:20:49Z hexfive joined #lisp 2018-01-16T23:21:33Z fikka joined #lisp 2018-01-16T23:22:00Z FreeBirdLjj joined #lisp 2018-01-16T23:25:23Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-01-16T23:26:47Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-01-16T23:27:03Z Xach feels the excitement 2018-01-16T23:33:29Z stroph joined #lisp 2018-01-16T23:33:30Z FreeBirdLjj joined #lisp 2018-01-16T23:34:00Z openthesky quit (Quit: Page closed) 2018-01-16T23:36:13Z stroph left #lisp 2018-01-16T23:41:21Z rpg: pjb: It didn't help that initially it seemed one always had to build darcs oneself, requiring a huge haskell toolchain, and it was never very fast. 2018-01-16T23:42:12Z pjb: Why? It was a good motivation to install the Haskell toolchain and start programming in Haskell! 2018-01-16T23:42:17Z Devon joined #lisp 2018-01-16T23:42:37Z pjb: We should do the same in lisp. Make a widely used utility in lisp, and have all distributions and users install a lisp system! 2018-01-16T23:42:45Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-01-16T23:43:30Z aeth: pjb: There is a widely used utility in Lisp that encourages Lisp, it just encourages a limited, outdated, and slow Lisp instead of Common Lisp 2018-01-16T23:43:40Z jasom: When I last used darcs significantly I found that darcs was, in theory, better than git, but git was, in practice, better than darcs. In particular darcs was quite slow. 2018-01-16T23:43:41Z aeth: (GNU Emacs!) 2018-01-16T23:43:42Z smurfrobot joined #lisp 2018-01-16T23:44:07Z aeth: jasom: agreed 2018-01-16T23:44:49Z aeth: But the final nail in the coffin was sites switching from multiple version control systems to just git, effectively killing darcs and hg 2018-01-16T23:44:53Z pjb: anyways, it's over, nowdays you would need to justify not using git with a very large consulting project, and reports and white papers etc. 2018-01-16T23:45:29Z mhd quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-16T23:45:29Z mhd quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2018-01-16T23:46:13Z aeth: Interestingly, SVN is alive because it offers something git doesn't: better support for binary files 2018-01-16T23:46:33Z aeth: SVN might be more popular than similar-to-git systems 2018-01-16T23:46:44Z rpg: aeth: And svn externals are about a zillion times better than git submodules or subtrees. 2018-01-16T23:47:03Z rpg: aeth: Oh, yes, and the learning curve is *much* shorter. 2018-01-16T23:48:06Z rpg: My main issue is that my brain only has room for one distributed VCS, which means that I cannot afford to figure out bzr, hg, darcs, etc., no matter how wonderful they might be. 2018-01-16T23:48:22Z rpg: DVCS is a tool, not a job. For me, at least. 2018-01-16T23:48:35Z jasom: I can fit 3 DVCS *or* git 2018-01-16T23:48:42Z turkja joined #lisp 2018-01-16T23:49:41Z pjb: aeth: nope. 2018-01-16T23:50:06Z pjb: aeth: SVN is still alive because it offers something most others don't: ginormous repositories that are very hard to migrate. 2018-01-16T23:50:34Z fikka quit (Ping timeout: 256 seconds) 2018-01-16T23:50:39Z aeth: pjb: You can migrate from SVN to git. You will probably produce multi-GB repos, though 2018-01-16T23:50:44Z FreeBirdLjj joined #lisp 2018-01-16T23:51:14Z pjb: At the clients' I've seen, the project of thinking about migrating to git would be multi-man-year consulting projects, and the migrations would involve duplicating the available server hardware, and be multi-man-month projects. 2018-01-16T23:51:32Z pjb: Basically they've been talking about migrating for years, but just cannot invest the required cost. 2018-01-16T23:52:02Z pjb: Same kind of tools as Jira, etc. 2018-01-16T23:52:50Z randomstrangerb quit (Ping timeout: 256 seconds) 2018-01-16T23:53:22Z Bike joined #lisp 2018-01-16T23:53:23Z markong quit (Ping timeout: 276 seconds) 2018-01-16T23:53:23Z fikka joined #lisp 2018-01-16T23:54:05Z randomstrangerb joined #lisp 2018-01-16T23:54:58Z jasom: pjb: I wrote a tool in lisp to migrate our internal svn to git, so I could do fast local querries against the history. It was indeed very non-trivial 2018-01-16T23:55:29Z rpg: I remember thinking "oh, I'll just take my svn repo on the road using git-svn so I can get something done on the plane." Ha-ha. Ran the export overnight. The next morning, it wasn't done. 2018-01-16T23:55:41Z pjb: jasom: there's reposurgeon to do it too (written in python by ESR, also he regreted not having used lisp). 2018-01-16T23:56:25Z rpg: I still maintain that svn externals are a huge boon. People where I work just hate to start up a new project that uses git, because getting all the git repos working together is such a mess. 2018-01-16T23:56:37Z ikki joined #lisp 2018-01-16T23:56:44Z jasom: simple things like sometimes /trunk/module becomes /branches/foo othertimes /trunk is copied to /branches/bar. Sometimes /trunk/module is copied to /branches/baz then /branches/baz is deleted then /trunk is copied to /branches/baz 2018-01-16T23:57:14Z pierpa joined #lisp 2018-01-16T23:57:22Z jasom: rpg: yea, a monorepository is the best way to use git, which kind of sucks 2018-01-16T23:57:50Z rpg: The number of ways to get your submodules stuffed up is huge. 2018-01-16T23:58:03Z jasom: git submodules are completely unusable 2018-01-16T23:58:28Z pagnol quit (Quit: Ex-Chat) 2018-01-16T23:58:33Z jasom: everyone I know that has used them on a non-trivial project has come to regret it 2018-01-16T23:58:41Z rpg: We used gitslave once, and it pretty much works, but if it ever doesn't you're in real trouble because it's a big snotball of code 2018-01-16T23:58:57Z pjb: There's the android repo script to manage multiple gits too. 2018-01-16T23:59:15Z rpg: There's subtrees, but right in the middle the git folks tell you right away that they have done it wrong and left in a huge way for you to shoot yourself in the foot. 2018-01-16T23:59:34Z jasom: pjb: my tool found several bugs in pathname support. There were file names in our svn repository that sbcl couldn't handle and file names that ccl couldn't handle 2018-01-16T23:59:43Z jasom: all fixed now 2018-01-16T23:59:53Z FreeBirdLjj quit (Ping timeout: 276 seconds)