2016-11-27T00:00:47Z yumdelic123 joined #lisp 2016-11-27T00:07:21Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-27T00:07:26Z Fare quit (Ping timeout: 244 seconds) 2016-11-27T00:09:33Z yumdelic123 quit (Quit: Leaving) 2016-11-27T00:10:16Z xaotuk quit (Ping timeout: 260 seconds) 2016-11-27T00:21:18Z EvW quit (Ping timeout: 245 seconds) 2016-11-27T00:21:28Z varjag quit (Ping timeout: 265 seconds) 2016-11-27T00:21:47Z LooneyTu` joined #lisp 2016-11-27T00:25:53Z NeverDie joined #lisp 2016-11-27T00:25:55Z jlarocco joined #lisp 2016-11-27T00:29:29Z stepnem quit (Ping timeout: 258 seconds) 2016-11-27T00:29:44Z arescorpio joined #lisp 2016-11-27T00:30:29Z jlarocco quit (Ping timeout: 248 seconds) 2016-11-27T00:31:19Z macdavid313 quit (Quit: macdavid313) 2016-11-27T00:44:26Z DGASAU quit (Ping timeout: 258 seconds) 2016-11-27T00:46:37Z Bike joined #lisp 2016-11-27T00:51:00Z eivarv quit (Quit: Sleep) 2016-11-27T00:53:15Z mathrick joined #lisp 2016-11-27T00:53:38Z Petit_Dejeuner joined #lisp 2016-11-27T00:57:29Z rszeno quit (Quit: Leaving.) 2016-11-27T01:02:17Z robotoad quit (Quit: robotoad) 2016-11-27T01:05:09Z maarhart: ok thanks. I still don't get it, but thanks 2016-11-27T01:05:10Z maarhart: exit 2016-11-27T01:05:14Z maarhart: oops 2016-11-27T01:05:15Z robotoad joined #lisp 2016-11-27T01:05:29Z maarhart quit (Remote host closed the connection) 2016-11-27T01:12:13Z pierpa quit (Ping timeout: 265 seconds) 2016-11-27T01:13:15Z neoncontrails joined #lisp 2016-11-27T01:19:47Z jlarocco joined #lisp 2016-11-27T01:22:45Z ebrasca quit (Remote host closed the connection) 2016-11-27T01:24:53Z jlarocco quit (Ping timeout: 248 seconds) 2016-11-27T01:29:40Z MrWoohoo joined #lisp 2016-11-27T01:31:12Z NeverDie quit (Quit: http://radiux.io/) 2016-11-27T01:31:53Z NeverDie joined #lisp 2016-11-27T01:45:18Z Fare joined #lisp 2016-11-27T01:50:58Z robotoad quit (Quit: robotoad) 2016-11-27T01:57:48Z terpri quit (Quit: Leaving) 2016-11-27T01:57:59Z rpg_ quit (Ping timeout: 256 seconds) 2016-11-27T02:00:04Z rpg joined #lisp 2016-11-27T02:00:32Z ski joined #lisp 2016-11-27T02:14:08Z jlarocco joined #lisp 2016-11-27T02:15:39Z neoncontrails quit (Ping timeout: 246 seconds) 2016-11-27T02:19:17Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2016-11-27T02:27:23Z Fare quit (Ping timeout: 260 seconds) 2016-11-27T02:35:55Z dddddd quit (Remote host closed the connection) 2016-11-27T02:37:25Z krwq joined #lisp 2016-11-27T02:39:38Z krwq: how do you call lambda returned by constantly? I was 2016-11-27T02:39:38Z krwq: trying different ways: ((constantly t)) (funcall 2016-11-27T02:39:38Z krwq: (constantly t)) (funcall '(constantly t)) (funcall 2016-11-27T02:39:38Z krwq: #(constantly t)) and always getting errors - what am i 2016-11-27T02:39:38Z krwq: doing wrong? 2016-11-27T02:39:54Z krwq: omg copy&paste fail 2016-11-27T02:40:02Z lemoinem quit (Ping timeout: 250 seconds) 2016-11-27T02:40:52Z Bike: (funcall (constantly t)) should work. 2016-11-27T02:41:37Z krwq: Bike: but (apply (constantly t)) fails 2016-11-27T02:41:39Z lemoinem joined #lisp 2016-11-27T02:41:40Z krwq: i don't get it 2016-11-27T02:41:48Z Bike: apply and funcall do different things. 2016-11-27T02:42:32Z Bike: funcall takes some number of normal arguments, in this case zero, and passes them to the function. apply takes a list of arguments and passes that. 2016-11-27T02:42:43Z Bike: (apply (constantly t)) has no list of arguments, so you're using apply incorrectly. 2016-11-27T02:43:00Z krwq: also wondering why this fails: (let ((f (constantly t))) (f)) 2016-11-27T02:43:17Z krwq: can i make f callable? 2016-11-27T02:43:22Z Zhivago: (apply (constantly t) '()) 2016-11-27T02:43:23Z Bike: in common lisp, variables and functions have different namespaces. so you do (funcall f). 2016-11-27T02:44:12Z schjetne quit (Quit: No Ping reply in 180 seconds.) 2016-11-27T02:44:30Z krwq: what about (flet ((f (constantly t))) (f)) 2016-11-27T02:45:07Z Bike: well, that would bind it as a function, but flet has different syntax, and can't bind function names to arbitrary forms. 2016-11-27T02:45:42Z schjetne joined #lisp 2016-11-27T02:46:03Z krwq: i don't quite get it - lambdas are supposed to be equivalen to function names so why doesn't (f) just work 2016-11-27T02:46:25Z Bike: i don't see how lambda forms are related 2016-11-27T02:46:51Z Bike: when you have (f), the implementation looks up 'f' _as a function_. but (let ((f ...)) ...) binds 'f' _as a variable_. two different kinds of bindings. 2016-11-27T02:47:01Z krwq: ((lambda () t)) works but (let ((f (lambda () t))) (f)) doesn't 2016-11-27T02:47:32Z Bike: ((lambda ...) ...) is specially allowed. but what you're confused about is just the name lookup, not that. 2016-11-27T02:47:57Z Bike: in lisp when you have ([whatever] ...), [whatever] isn't evaluated like a regular old form, like it is in scheme. 2016-11-27T02:49:13Z krwq: what about (#(constantly t)) 2016-11-27T02:49:21Z vtomole quit (Ping timeout: 260 seconds) 2016-11-27T02:49:27Z krwq: shouldn't this get translated to what I want? 2016-11-27T02:49:29Z Bike: #() is an array. so that's just kinda gibberish 2016-11-27T02:49:41Z krwq: wait - got confused with #' 2016-11-27T02:50:07Z Bike: #'foo refers to a function, _when it's evaluated as a regular old form_, which is not what happens at the head of a form 2016-11-27T02:50:13Z Bike: funcall is the way and the light here 2016-11-27T02:50:55Z krwq: what about (funcall #'(constantly t)) 2016-11-27T02:51:39Z Bike: ok, so #' is short for function, like #'foo = (function foo). 'function' is for looking up function names and using lambda forms. (constantly t) is neither, so that's wrong. 2016-11-27T02:51:54Z krwq: but it is a lambda 2016-11-27T02:52:00Z Bike: no it is not. 2016-11-27T02:52:06Z Bike: a lambda form is like (lambda ...). literally. 2016-11-27T02:52:12Z Bike: not something you evaluate to get a function. 2016-11-27T02:52:47Z Bike: that's like saying that (+ a 4) as program text is a number. it's not, it's a call to +. 2016-11-27T02:53:27Z krwq: so what does #' do? if (constant t) is supposed to return function and (function (constant t)) is throwing 2016-11-27T02:53:50Z Bike: i'm pretty sure i started this out by saying (funcall (constantly t)) works 2016-11-27T02:54:19Z Bike: I also said "#' is short for function. like #'foo = (function foo). 'function' is for looking up function names and using lambda forms." 2016-11-27T02:55:14Z Bike: when the implementation sees #'foo as a form it goes, ok, i'll find the function named FOO and return that. when it sees (constantly t) as a form it goes, ok, i'll call CONSTANTLY with one argument, T, and return whatever it does, and maybe it's a function. 2016-11-27T02:55:47Z krwq: but this does work: (funcall #'(lambda () t)) 2016-11-27T02:56:06Z Bike: right, because FUNCTION knows what to do with lambda forms 2016-11-27T02:56:22Z Bike: lambda expressions, i remembered they're more properly called, whatever 2016-11-27T02:56:59Z Bike: (function [a symbol]) is valid, and looks up the name. (function (lambda ...)) is valid and refers to the function described by the lambda expression. that's about all there is to it. 2016-11-27T02:58:11Z krwq: i see, i think it would make the life easier if it also accepted lambdas (not forms) 2016-11-27T02:58:31Z Bike: it does. (constantly t) is not "a lambda" in any sense 2016-11-27T02:58:34Z vlnx quit (Remote host closed the connection) 2016-11-27T02:58:47Z Bike: it's a form. it's just a normal function call, and the function happens to return another function. 2016-11-27T02:59:03Z krwq: but it evals to lambda 2016-11-27T02:59:22Z Bike: yes, but FUNCTION does not eval. 2016-11-27T02:59:31Z Bike: why would it? if you want a form to be evaluated normally you just put it there! 2016-11-27T03:00:09Z Bike: i don't understand why you're not satisfied with (funcall (constantly t)), and want to add more text for some reason 2016-11-27T03:00:55Z krwq: i'm simply learning and i am trying to understand how does that work 2016-11-27T03:01:19Z Bike: it might help to write a simple eval yourself. 2016-11-27T03:03:01Z krwq: i don't think like i understand how this works to write it. i.e. #'((lambda () '+)) or (funcall 'function ((lambda () '+))) - how would you do something like that? 2016-11-27T03:03:48Z Bike: you can (funcall #'+ ...) 2016-11-27T03:03:59Z Bike: or (funcall ((lambda () #'+)) ...) 2016-11-27T03:04:09Z Bike: or (funcall (fdefinition ((lambda () '+))) ...) 2016-11-27T03:04:13Z krwq: what if my lambda can return '+ or '- but i need a symbol? 2016-11-27T03:04:25Z Bike: "need a symbol"? 2016-11-27T03:04:35Z Bike: if you have the name of a function as a symbol, and want the function, use FDEFINITION. 2016-11-27T03:04:39Z jlarocco quit (Ping timeout: 244 seconds) 2016-11-27T03:04:49Z Bike: several operators, such as apply and funcall, will do that automatically if you pass them a symbol 2016-11-27T03:05:11Z krwq: ok so what's function 'function' for if you got fdefinition 2016-11-27T03:05:14Z Bike: FDEFINITION is a normal function, unlike FUNCTION which is a special operator 2016-11-27T03:05:24Z Bike: special operators are like language syntax 2016-11-27T03:06:09Z Bike: it's a little like the difference between (+ 2 2) and 4 2016-11-27T03:06:31Z krwq: so function is one of the functions which is in a set of minimum operators needed to implement the rest of cl? 2016-11-27T03:08:00Z Bike: no, it's special just in the sense that the evaluator/compiler/whatever deals with it specifically. 2016-11-27T03:08:18Z Bike: not to say that it isn't important. 2016-11-27T03:08:29Z Bike: FDEFINITION also doesn't work on lambda expressions, you need FUNCTION for that. 2016-11-27T03:11:40Z krwq: but why do you need to work on lambda expressions if (lambda () nil) and #'(lambda () nil) eval to the same thing? 2016-11-27T03:11:52Z krwq: same type* 2016-11-27T03:12:10Z Bike: lambda is a macro set up so that (lambda () nil) expands to (function (lambda () nil)) 2016-11-27T03:12:16Z Bike: all the magic is in FUNCTION 2016-11-27T03:13:18Z krwq: but it's like expanding only when it's not being called by function 2016-11-27T03:13:35Z krwq: (function #'(lambda () nil)) is not working 2016-11-27T03:13:44Z Bike: yes, it's expanding when it's a regular form 2016-11-27T03:14:03Z seg quit (Ping timeout: 260 seconds) 2016-11-27T03:14:04Z Bike: FUNCTION does not evaluate its argument normally - since it's a special operator - so it doesn't do any macroexpansion 2016-11-27T03:14:15Z krwq: so does function work during read time? 2016-11-27T03:15:20Z Bike: no. it's just its own thing. like, when you write '4' it's not like lisp goes through a process of looking up a variable called '4', it's just a four. and #'foo is just the function called foo. 2016-11-27T03:15:53Z Bike: the evaluator could do it, the compiler, something else, doesn't matter 2016-11-27T03:15:57Z krwq: but for lambda it works specially 2016-11-27T03:16:16Z Bike: how does that relate to timing concerns? 2016-11-27T03:19:00Z krwq: ok Bike, I think I understand enough of this - thank you a lot! 2016-11-27T03:19:28Z Bike: mhm 2016-11-27T03:19:50Z Bike: i really do recommend writing an evaluator, it clears up a lot. unfortunately a lisp interpreter is a bit more complicated than a scheme one, but it's not intolerable 2016-11-27T03:19:58Z jlarocco joined #lisp 2016-11-27T03:20:12Z aeth quit (Ping timeout: 260 seconds) 2016-11-27T03:20:22Z krwq: how complex evaluator do you recommend 2016-11-27T03:20:27Z seg joined #lisp 2016-11-27T03:20:35Z krwq: and in lisp or other language? 2016-11-27T03:21:05Z Bike: in lisp. and i'd just do the parts you want to understand. skip declarations and special variables, probably 2016-11-27T03:21:57Z krwq: but how would i know it is correct when i'm trying to understand it? what are special variables? 2016-11-27T03:22:06Z Bike: read the standard, naturally 2016-11-27T03:22:07Z aeth joined #lisp 2016-11-27T03:22:24Z Bike: clhs 3 2016-11-27T03:22:24Z specbot: Evaluation and Compilation: http://www.lispworks.com/reference/HyperSpec/Body/03_.htm 2016-11-27T03:22:28Z Bike: lookit all that good crud 2016-11-27T03:30:03Z vtomole joined #lisp 2016-11-27T03:30:13Z krwq quit (Remote host closed the connection) 2016-11-27T03:32:11Z robotoad joined #lisp 2016-11-27T03:38:31Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-27T03:39:32Z nilof quit (Quit: Going offline, see ya! (www.adiirc.com)) 2016-11-27T03:54:36Z yeticry quit (Ping timeout: 256 seconds) 2016-11-27T03:55:52Z yeticry joined #lisp 2016-11-27T04:02:13Z neoncontrails joined #lisp 2016-11-27T04:04:06Z rumbler31 joined #lisp 2016-11-27T04:07:05Z yeticry quit (Ping timeout: 256 seconds) 2016-11-27T04:07:59Z yeticry joined #lisp 2016-11-27T04:10:04Z neoncontrails quit (Remote host closed the connection) 2016-11-27T04:10:36Z isBEKaml joined #lisp 2016-11-27T04:13:16Z jleija joined #lisp 2016-11-27T04:14:56Z isBEKaml_ joined #lisp 2016-11-27T04:17:37Z isBEKaml quit (Ping timeout: 260 seconds) 2016-11-27T04:17:37Z isBEKaml_ quit (Client Quit) 2016-11-27T04:17:59Z isBEKaml joined #lisp 2016-11-27T04:33:09Z TDT quit (Quit: TDT) 2016-11-27T04:34:32Z arescorpio quit (Quit: Leaving.) 2016-11-27T04:36:42Z JuanDaugherty joined #lisp 2016-11-27T04:37:23Z lemonpie joined #lisp 2016-11-27T04:52:41Z vtomole quit (Quit: Page closed) 2016-11-27T04:53:12Z Harag joined #lisp 2016-11-27T04:57:08Z rpg joined #lisp 2016-11-27T04:57:41Z neoncontrails joined #lisp 2016-11-27T04:57:55Z rpg quit (Client Quit) 2016-11-27T05:29:16Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-27T05:29:16Z Oladon quit (Read error: Connection reset by peer) 2016-11-27T05:29:49Z rumbler31 quit (Remote host closed the connection) 2016-11-27T05:30:15Z Oladon joined #lisp 2016-11-27T05:33:35Z defaultxr quit (Ping timeout: 260 seconds) 2016-11-27T05:35:31Z whartung quit (Quit: whartung) 2016-11-27T05:36:14Z whartung joined #lisp 2016-11-27T05:37:27Z whartung quit (Client Quit) 2016-11-27T05:39:23Z whartung joined #lisp 2016-11-27T05:49:51Z jfe quit (Ping timeout: 246 seconds) 2016-11-27T05:58:07Z ASau` joined #lisp 2016-11-27T05:59:48Z ASau quit (Ping timeout: 265 seconds) 2016-11-27T06:02:59Z _leb joined #lisp 2016-11-27T06:05:40Z quazimodo joined #lisp 2016-11-27T06:05:55Z BlueRavenGT quit (Read error: No route to host) 2016-11-27T06:10:49Z _leb quit (Read error: Connection reset by peer) 2016-11-27T06:11:10Z vlatkoB joined #lisp 2016-11-27T06:17:20Z beach: Good morning everyone! 2016-11-27T06:18:37Z quazimodo quit (Read error: Connection reset by peer) 2016-11-27T06:19:14Z isBEKaml: ehlo, beach 2016-11-27T06:29:50Z FreeBirdLjj joined #lisp 2016-11-27T06:34:25Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2016-11-27T06:38:57Z roscoe_tw quit (Ping timeout: 240 seconds) 2016-11-27T06:58:14Z jleija quit (Quit: leaving) 2016-11-27T07:02:53Z isBEKaml quit (Quit: leaving) 2016-11-27T07:20:55Z MarkusBarthlen quit (Read error: Connection reset by peer) 2016-11-27T07:21:38Z rippa joined #lisp 2016-11-27T07:25:10Z sdothum quit (Quit: ZNC - 1.6.0 - http://znc.in) 2016-11-27T07:30:21Z rumbler31 joined #lisp 2016-11-27T07:31:12Z FreeBirdLjj joined #lisp 2016-11-27T07:34:36Z rumbler31 quit (Ping timeout: 258 seconds) 2016-11-27T07:35:45Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2016-11-27T07:45:09Z jlarocco quit (Ping timeout: 248 seconds) 2016-11-27T07:50:57Z jlarocco joined #lisp 2016-11-27T07:51:29Z roscoe_tw joined #lisp 2016-11-27T07:54:00Z vlnx joined #lisp 2016-11-27T08:00:45Z gingerale joined #lisp 2016-11-27T08:03:49Z jlarocco quit (Ping timeout: 248 seconds) 2016-11-27T08:22:40Z oleo: morning 2016-11-27T08:22:58Z beach: Hello oleo. 2016-11-27T08:23:03Z angavrilov joined #lisp 2016-11-27T08:23:08Z oleo: hello beach :) 2016-11-27T08:24:26Z yeticry quit (Ping timeout: 258 seconds) 2016-11-27T08:26:14Z yeticry joined #lisp 2016-11-27T08:27:07Z atgreen quit (Ping timeout: 258 seconds) 2016-11-27T08:29:37Z william3 joined #lisp 2016-11-27T08:30:36Z araujo quit (Read error: Connection timed out) 2016-11-27T08:31:23Z araujo joined #lisp 2016-11-27T08:31:23Z araujo quit (Changing host) 2016-11-27T08:31:23Z araujo joined #lisp 2016-11-27T08:32:36Z yeticry quit (Ping timeout: 246 seconds) 2016-11-27T08:33:53Z yeticry joined #lisp 2016-11-27T08:34:05Z william3 quit (Ping timeout: 260 seconds) 2016-11-27T08:34:48Z macdavid313 joined #lisp 2016-11-27T08:42:36Z atgreen joined #lisp 2016-11-27T08:42:46Z neoncontrails quit (Remote host closed the connection) 2016-11-27T08:52:17Z macdavid313 quit (Ping timeout: 240 seconds) 2016-11-27T09:01:17Z vlatkoB_ joined #lisp 2016-11-27T09:05:00Z vlatkoB quit (Ping timeout: 250 seconds) 2016-11-27T09:10:33Z Bike quit (Quit: negative) 2016-11-27T09:11:39Z CrashOverride joined #lisp 2016-11-27T09:13:09Z robotoad quit (Quit: robotoad) 2016-11-27T09:13:35Z Karl_Dscc joined #lisp 2016-11-27T09:22:44Z robotoad joined #lisp 2016-11-27T09:29:05Z glamas_ joined #lisp 2016-11-27T09:31:31Z glamas quit (Ping timeout: 258 seconds) 2016-11-27T09:32:30Z FreeBirdLjj joined #lisp 2016-11-27T09:36:43Z Velveeta_Chef quit (Ping timeout: 260 seconds) 2016-11-27T09:37:16Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2016-11-27T09:40:04Z LooneyTunes quit (Ping timeout: 260 seconds) 2016-11-27T09:40:15Z CrashOverride quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-27T09:42:20Z lambda-smith joined #lisp 2016-11-27T09:50:55Z ovenpasta joined #lisp 2016-11-27T09:51:36Z Velveeta_Chef joined #lisp 2016-11-27T09:51:37Z Velveeta_Chef quit (Changing host) 2016-11-27T09:51:37Z Velveeta_Chef joined #lisp 2016-11-27T09:59:26Z Einwq joined #lisp 2016-11-27T10:01:35Z william3 joined #lisp 2016-11-27T10:05:16Z ovenpasta quit (Ping timeout: 260 seconds) 2016-11-27T10:12:44Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2016-11-27T10:26:54Z stepnem joined #lisp 2016-11-27T10:30:34Z strelox joined #lisp 2016-11-27T10:31:06Z Joreji joined #lisp 2016-11-27T10:34:13Z phoe: I'm somewhat confused. 2016-11-27T10:34:22Z phoe: Should I avoid using recursive locks? If yes, why? 2016-11-27T10:35:37Z jackdaniel: they cost more than ordinary locks afaik 2016-11-27T10:35:50Z jackdaniel: kernel has to keep track of the owner in the case of recursive locks 2016-11-27T10:36:26Z jackdaniel: (for instance) 2016-11-27T10:42:09Z pjb joined #lisp 2016-11-27T10:44:44Z william3 quit (Remote host closed the connection) 2016-11-27T10:45:17Z atgreen quit (Ping timeout: 240 seconds) 2016-11-27T10:45:21Z william3 joined #lisp 2016-11-27T10:46:44Z varjag joined #lisp 2016-11-27T10:49:42Z william3 quit (Ping timeout: 250 seconds) 2016-11-27T10:51:57Z karswell quit (Remote host closed the connection) 2016-11-27T10:53:10Z karswell joined #lisp 2016-11-27T11:00:24Z robotoad quit (Quit: robotoad) 2016-11-27T11:03:41Z Zhivago: They also make deadlock analysis harder. 2016-11-27T11:08:47Z ovenpasta joined #lisp 2016-11-27T11:12:51Z d4ryus quit (Ping timeout: 260 seconds) 2016-11-27T11:14:56Z william3 joined #lisp 2016-11-27T11:15:31Z d4ryus joined #lisp 2016-11-27T11:20:33Z william3 quit (Remote host closed the connection) 2016-11-27T11:21:50Z william3 joined #lisp 2016-11-27T11:23:00Z nilof joined #lisp 2016-11-27T11:23:37Z klltkr quit (Ping timeout: 240 seconds) 2016-11-27T11:31:04Z isBEKaml joined #lisp 2016-11-27T11:32:05Z Einwq quit (Ping timeout: 260 seconds) 2016-11-27T11:36:23Z django_ joined #lisp 2016-11-27T11:36:29Z django_: hey all 2016-11-27T11:36:50Z django_: is there a way to autocomplete statements in emacs? for example i can do if, then some command and it adds the parenthesis 2016-11-27T11:36:53Z django_: and spacing 2016-11-27T11:38:17Z SAL9000: django_: you might want to look at yasnippet.el 2016-11-27T11:41:07Z django_: SAL9000, what is that? 2016-11-27T11:59:49Z SAL9000: django_: https://github.com/joaotavora/yasnippet 2016-11-27T12:01:27Z harlequin78[m] joined #lisp 2016-11-27T12:05:28Z sjl joined #lisp 2016-11-27T12:05:31Z shka: hey all 2016-11-27T12:05:52Z shka: why preserving order of objects on heap during garbage collection is important? 2016-11-27T12:11:00Z yeticry quit (Ping timeout: 265 seconds) 2016-11-27T12:12:24Z yeticry joined #lisp 2016-11-27T12:12:36Z Aiwass joined #lisp 2016-11-27T12:15:37Z shrdlu68 joined #lisp 2016-11-27T12:15:45Z Aiwass quit (Remote host closed the connection) 2016-11-27T12:17:49Z lexicall joined #lisp 2016-11-27T12:18:29Z phoe: shka: do you mean that objects earlier generally cannot/should not point to objects later on heap, which is used as an optimization? 2016-11-27T12:18:45Z shka: yup 2016-11-27T12:18:51Z phoe: oh 2016-11-27T12:18:55Z phoe: so, basically: this 2016-11-27T12:19:04Z phoe: GCs use it as an optimization. 2016-11-27T12:19:11Z shka: actually, i meant just allocation order 2016-11-27T12:19:20Z shka: how? 2016-11-27T12:19:37Z phoe: you allocate two objects in order 2016-11-27T12:19:39Z phoe: A and B 2016-11-27T12:19:50Z phoe: when you allocate A, B does not exist yet, so A cannot point to it 2016-11-27T12:20:01Z phoe: when you allocate B, A already exists, so B can point to it 2016-11-27T12:21:05Z phoe: so when you count references, you'd probably like to start from the latter object 2016-11-27T12:21:21Z phoe: but again - I'm not adept at GC techniques so I might be completely wrong. 2016-11-27T12:21:35Z william3 quit (Remote host closed the connection) 2016-11-27T12:21:41Z shka: hmm 2016-11-27T12:21:45Z shka: that does not sound right 2016-11-27T12:24:12Z phoe: shka: don't worry too much about it 2016-11-27T12:24:22Z shka: i am not worried 2016-11-27T12:24:32Z shka: just interested 2016-11-27T12:24:39Z phoe: if I said something stupid, someone around here will stomp me over it 2016-11-27T12:29:31Z macdavid313 joined #lisp 2016-11-27T12:30:00Z yoosi quit (Remote host closed the connection) 2016-11-27T12:30:37Z yoosi joined #lisp 2016-11-27T12:45:53Z mishoo joined #lisp 2016-11-27T12:49:09Z klover joined #lisp 2016-11-27T12:50:36Z klover: What can lisp dialects do that others languages can't? 2016-11-27T12:51:02Z varjag quit (Ping timeout: 268 seconds) 2016-11-27T12:51:44Z jurov: klover: http://softwareengineering.stackexchange.com/questions/210274/does-lisp-still-have-any-special-feature-which-has-not-been-adopted-by-other-pro/210276#210276 2016-11-27T12:52:45Z klover: Thanks 2016-11-27T12:54:29Z klover left #lisp 2016-11-27T12:54:37Z shka: yet i never met non-lisp that can do everything that lisp does 2016-11-27T12:55:37Z william3 joined #lisp 2016-11-27T12:56:17Z jurov: lol that was quick 2016-11-27T12:56:25Z william3 quit (Remote host closed the connection) 2016-11-27T12:57:02Z william3 joined #lisp 2016-11-27T12:57:14Z sdothum joined #lisp 2016-11-27T12:57:53Z lexicall quit (Quit: Ah, my macbook is gonna sleep!) 2016-11-27T13:01:27Z william3 quit (Ping timeout: 250 seconds) 2016-11-27T13:06:18Z TDT joined #lisp 2016-11-27T13:06:59Z atgreen joined #lisp 2016-11-27T13:07:33Z scymtym quit (Ping timeout: 245 seconds) 2016-11-27T13:07:45Z william3 joined #lisp 2016-11-27T13:10:11Z william3 quit (Remote host closed the connection) 2016-11-27T13:12:09Z beach: shka: Most GC algorithms actually do not preserve allocation order. 2016-11-27T13:12:59Z shka: yes and i was told that this is bad 2016-11-27T13:13:17Z shka: in fact, it may all started with article written by you! ;-) 2016-11-27T13:14:14Z beach: I kind of thought so. 2016-11-27T13:14:35Z beach: There is a general rule in the domain of garbage collection... 2016-11-27T13:14:41Z william3 joined #lisp 2016-11-27T13:14:57Z beach: It is that objects either die very young or stay alive very long. 2016-11-27T13:15:13Z shka: hmmm 2016-11-27T13:15:19Z beach: So it is important to have a good idea of the (relative) age of the objects. 2016-11-27T13:15:49Z william3 quit (Remote host closed the connection) 2016-11-27T13:16:03Z beach: In a typical copying GC, the objects that survive a collection are considered to be in the second category so they are promoted to an older generation. 2016-11-27T13:16:11Z beach: But that is not a good approximation... 2016-11-27T13:16:41Z beach: ... because the objects that were allocated immediately before the GC happened are more likely to be in the first category. 2016-11-27T13:17:11Z shka: ok 2016-11-27T13:17:11Z beach: So they are promoted, but then they typically die immediately after, generating unnecessary work for the GC. 2016-11-27T13:17:45Z beach: By preserving the allocation order, one always has precise information about the (relative) age of the objects. 2016-11-27T13:18:01Z beach: So it is possible to always promote the oldest objects. 2016-11-27T13:18:25Z beach: Does this make sense? 2016-11-27T13:18:29Z shrdlu68: I've not studies GC at all but I'm curious...why aren't GCs designed simply as a human would manually writing malloc and free? 2016-11-27T13:18:32Z shka: so this way pointers with low address are assumed to be alive a long time, are less likely to be GC, and we have less fragmentation there? 2016-11-27T13:19:19Z beach: shka: Fragmentation is usually not an issue with copying collectors, no matter which algorithm is used. 2016-11-27T13:19:26Z shka: shrdlu68: well, fragmentation 2016-11-27T13:19:29Z shrdlu68: I'd imagine the memory manager would take care of efficiency matters. 2016-11-27T13:19:49Z beach: shrdlu68: malloc/free is usually slower than a good GC. 2016-11-27T13:20:12Z shka: ...unless you have conservative GC 2016-11-27T13:20:14Z beach: shrdlu68: Plus, with manual memory management, you can write fast code or modular code, but you can't have both. 2016-11-27T13:21:06Z beach: shrdlu68: As Paul Wilson writes, "liveness is a global property", which means that if you have modular code, a single module can't know whether an object it is about to drop is being referenced by some other module. 2016-11-27T13:21:22Z beach: shrdlu68: So automatic memory management is a requirement for modularity. 2016-11-27T13:21:34Z shrdlu68: I thought the efficiency was left to the designer of the memory management (e.g libc's implementation of malloc), i.e the balancing act between hoarding memory, too many syscalls, and fragmentation. 2016-11-27T13:21:37Z lnostdal quit (Read error: Connection reset by peer) 2016-11-27T13:21:51Z lnostdal joined #lisp 2016-11-27T13:22:04Z shka: beach: i still don't understand if there is some sort of trick that allows you to exploit this property somewhere 2016-11-27T13:22:13Z beach: shrdlu68: Actually, let me take that back. You can get modularity in a language such as C++ by using smart pointers and reference counting, but then you take a factor 20 performance hit. 2016-11-27T13:22:18Z shka: or is it just statistically useful 2016-11-27T13:22:25Z beach: shka: What property? 2016-11-27T13:22:39Z shka: preserved order of allocation 2016-11-27T13:23:06Z beach: I exploit it by taking a prefix of the nursery objects to promote. 2016-11-27T13:23:29Z shka: ah, i see! 2016-11-27T13:23:35Z shka: silly me 2016-11-27T13:23:42Z shka: it is clear now 2016-11-27T13:23:47Z beach: That frees up memory in the nursery for new allocation, and the older generation to which they are promoted can be collected less often, or differently. 2016-11-27T13:23:49Z beach: Good. 2016-11-27T13:24:04Z beach: shrdlu68: memory allocation is a very hard problem. There is no general technique that works well in all cases. 2016-11-27T13:24:41Z beach: shrdlu68: It is a constant trade-off between speed, memory consumption, and fragmentation. 2016-11-27T13:24:43Z nowhere_man joined #lisp 2016-11-27T13:25:09Z shka: also, real time 2016-11-27T13:25:20Z shka: to make things even more complicated 2016-11-27T13:25:50Z shrdlu68: I'd imagine it so, learnt all this making a toy CL implementation a while back. 2016-11-27T13:25:57Z shka: beach: well, recently i started using C++ IDE written in java 2016-11-27T13:26:00Z beach: shka: It is complicated both for manual and automatic memory management. 2016-11-27T13:26:18Z shka: it is all nice, until it starts to compact memory 2016-11-27T13:26:51Z shka: since heap is like 10 gigabytes of size, it takes awful lot of time to compact it 2016-11-27T13:26:59Z MoALTz quit (Read error: Connection reset by peer) 2016-11-27T13:27:20Z shka: i thought that jvm has a reasonable GC 2016-11-27T13:27:26Z shrdlu68: My approach was was basically to take care of memory management the way a C programmer would. I thought I side-stepped writing a proper GC that way. 2016-11-27T13:27:33Z beach: shka: Yeah, me too. I am surprised. 2016-11-27T13:28:08Z shka: CLion is not bad otherwise 2016-11-27T13:28:39Z shka: but that hookups are making me crazy 2016-11-27T13:28:54Z shka: *those 2016-11-27T13:29:15Z Trystam joined #lisp 2016-11-27T13:29:20Z shka: and part of me is trying to figure out what actually could go so wrong 2016-11-27T13:29:39Z shka: anyway, thanks 2016-11-27T13:29:48Z beach: Anytime. 2016-11-27T13:30:05Z EvW joined #lisp 2016-11-27T13:30:06Z shka: excellent explanation 2016-11-27T13:30:33Z beach: Heh, thanks! It's (part of) my job to come up with good explanations. 2016-11-27T13:30:35Z william3 joined #lisp 2016-11-27T13:31:30Z Tristam quit (Ping timeout: 246 seconds) 2016-11-27T13:31:38Z Trystam is now known as Tristam 2016-11-27T13:34:28Z dddddd joined #lisp 2016-11-27T13:34:32Z william3 quit (Remote host closed the connection) 2016-11-27T13:34:47Z william3 joined #lisp 2016-11-27T13:35:00Z yeticry quit (Ping timeout: 246 seconds) 2016-11-27T13:36:21Z yeticry joined #lisp 2016-11-27T13:37:52Z william3 quit (Remote host closed the connection) 2016-11-27T13:38:26Z xuxuru joined #lisp 2016-11-27T13:40:26Z william3 joined #lisp 2016-11-27T13:41:26Z yeticry quit (Remote host closed the connection) 2016-11-27T13:41:27Z william3 quit (Remote host closed the connection) 2016-11-27T13:41:51Z yeticry joined #lisp 2016-11-27T13:42:00Z rippa joined #lisp 2016-11-27T13:44:24Z isBEKaml: beach: part of your job? Are you in academia/professor? 2016-11-27T13:47:27Z beach: isBEKaml: Yes. 2016-11-27T13:49:37Z isBEKaml: beach: :+1: 2016-11-27T13:50:21Z beach: Are you saying you liked my explanation as well? 2016-11-27T13:51:20Z isBEKaml: kind of, it was fairly accessible :-) 2016-11-27T13:51:29Z beach: Good! :) 2016-11-27T13:51:53Z shka: beach: it is nice to see that you actually consider it be part of your job :D 2016-11-27T13:51:59Z sjl quit (Ping timeout: 260 seconds) 2016-11-27T13:52:00Z cibs quit (Ping timeout: 268 seconds) 2016-11-27T13:52:38Z beach: Heh, I suppose that is not true for everyone. 2016-11-27T13:52:53Z beach: Anyway, let's change the subject. 2016-11-27T13:53:06Z isBEKaml: Just one thing though, since there was very little mention of the JVM - JVM's GC is actually heavily tied to its optimization. For instance, there's a certain amount of time before it reaches hotspot 2016-11-27T13:53:31Z isBEKaml: that's actually intended so that it knows which objects are long-lived and which ones can be compacted/reaped quickly 2016-11-27T13:53:44Z cibs joined #lisp 2016-11-27T13:54:28Z isBEKaml: The amount of optimizations that go into it are quite mind-boggling. If you're interested in knowing more about them, I'd just point towards videos by Cliff Click or Gil Tene 2016-11-27T13:54:47Z scymtym joined #lisp 2016-11-27T13:55:05Z shka: isBEKaml: thanks! 2016-11-27T13:57:38Z isBEKaml: shka: no problem, have fun! 2016-11-27T13:59:12Z william3 joined #lisp 2016-11-27T14:00:05Z django_: is there a way to autocomplete lisp statements in emacs? for example lets say i do if and hit some command it will add the parenthesis and spacing 2016-11-27T14:00:59Z shka: well, you can define snippet for that 2016-11-27T14:01:13Z beach: For IF it would be hard, because it takes either two or three arguments. 2016-11-27T14:01:18Z django_: maybe an editor that comes with it 2016-11-27T14:02:32Z scymtym_ joined #lisp 2016-11-27T14:02:35Z beach: django_: In general, existing editors have a very approximate idea of what the code means, so they are not able to do stuff like that. 2016-11-27T14:03:08Z shka: honestly, it is more important to have something to edit parenthesis 2016-11-27T14:03:16Z django_: so when you guys do lisp code you type every parenthesis? 2016-11-27T14:03:28Z beach: For example, when Emacs sees (LET ((IF it considers IF to be a special operator, even though here it is a local variable. 2016-11-27T14:03:43Z beach: django_: I do, but many people use paredit. 2016-11-27T14:03:52Z shrdlu68: django_: I do. 2016-11-27T14:03:58Z beach: I should as well; I just haven't gotten around to it. 2016-11-27T14:04:05Z django_: damn 2016-11-27T14:04:36Z shrdlu68: It's not an issue as long as I have show-parenthesis enabled in emacs. 2016-11-27T14:04:46Z shka: i need to setup paredit again… 2016-11-27T14:06:08Z ASau` is now known as ASau 2016-11-27T14:06:17Z scymtym quit (Ping timeout: 240 seconds) 2016-11-27T14:10:02Z malice joined #lisp 2016-11-27T14:10:58Z malice: Hello! I am using Emacs + SLIME. I want to refactor my code; I've got a class named "coordinates", want to change it to "point". What's the best way to do that? 2016-11-27T14:11:31Z malice: The symbol can be used in multiple files; all are under same tree(but might be in different folders), and all are tracked with git. 2016-11-27T14:11:35Z beach: malice: I think I would use tags-query-replace. 2016-11-27T14:12:01Z beach: malice: Start with executing the Unix command `etags' with all your Lisp files. 2016-11-27T14:12:30Z beach: Then M-x tags-query-replacecoordinatespoint 2016-11-27T14:12:43Z beach: Emacs will ask you for a tags file. The default is usually right. 2016-11-27T14:13:58Z beach: Hit SPACE where you want to replace, and DEL (I think) where you do not. 2016-11-27T14:14:09Z macdavid313 quit (Remote host closed the connection) 2016-11-27T14:14:29Z macdavid313 joined #lisp 2016-11-27T14:19:21Z EvW quit (Quit: EvW) 2016-11-27T14:20:25Z william3 quit (Remote host closed the connection) 2016-11-27T14:21:40Z shka: you can also use query-replace 2016-11-27T14:21:59Z shka: it is kinda poor man solution 2016-11-27T14:22:01Z beach: There are multiple files. 2016-11-27T14:22:03Z shka: but works 2016-11-27T14:22:15Z shka: query-replace on directory 2016-11-27T14:22:21Z shka: from dired mod 2016-11-27T14:22:23Z shka: f 2016-11-27T14:22:25Z shka: *e 2016-11-27T14:23:03Z pjb: What you'd need really is to use a lisp reader keeping track of the position of the tokens, so that you can 1- identify the symbols by their identity, 2- substitute their names in the source files. 2016-11-27T14:23:19Z pierpa joined #lisp 2016-11-27T14:23:39Z nowhere_man quit (Ping timeout: 246 seconds) 2016-11-27T14:23:55Z pjb: It is striking that in 2016 emacs is still unable to do that for Common Lisp. (What a "success" of a lisp machine…). 2016-11-27T14:24:08Z stardiviner joined #lisp 2016-11-27T14:24:27Z beach: pjb: I am working on an editor that will fix that problem. :) 2016-11-27T14:24:51Z varjag joined #lisp 2016-11-27T14:24:53Z pjb: Having emacs backend translated to Common Lisp could also help. 2016-11-27T14:26:21Z shka: beach: where is repo? 2016-11-27T14:26:43Z beach: https://github.com/robert-strandh/Second-Climacs 2016-11-27T14:26:55Z beach: But only fragments of it exist. 2016-11-27T14:27:33Z django_: beach, what would it take to build a "connect 4 solver" 2016-11-27T14:27:50Z EvW joined #lisp 2016-11-27T14:28:40Z beach: I haven't thought of that problem. Sorry. 2016-11-27T14:28:49Z django_: gotcha 2016-11-27T14:30:09Z beach: django_: For questions like that, you are usually better off not addressing them to a particular person. There are hundreds of other people here who might have more insight than I do. 2016-11-27T14:30:29Z django_: lol you are the professor 2016-11-27T14:30:44Z beach: But I am not the only one. 2016-11-27T14:31:41Z malice: beach: I don't really like this option and I'm currently looking for other 2016-11-27T14:31:53Z vap1 quit (Quit: Leaving) 2016-11-27T14:31:54Z malice: Thanks for the help however. 2016-11-27T14:32:15Z vaporatorius joined #lisp 2016-11-27T14:32:15Z vaporatorius quit (Changing host) 2016-11-27T14:32:15Z vaporatorius joined #lisp 2016-11-27T14:32:22Z malice: The thing that I'd have to run etags on each file kinda puts me off. I'd prefer a solution where I don't have to take any "external" steps 2016-11-27T14:32:37Z malice: I think I'm onto one, but I need to restart my emacs(and IRC). brb 2016-11-27T14:32:41Z malice quit (Remote host closed the connection) 2016-11-27T14:33:24Z malice joined #lisp 2016-11-27T14:33:27Z malice: back 2016-11-27T14:33:45Z william3 joined #lisp 2016-11-27T14:33:52Z sjl joined #lisp 2016-11-27T14:34:13Z stardiviner quit (Ping timeout: 248 seconds) 2016-11-27T14:34:19Z william3 quit (Remote host closed the connection) 2016-11-27T14:34:56Z william3 joined #lisp 2016-11-27T14:36:28Z malice: Okay. So here's what I did: 2016-11-27T14:36:52Z malice: 1) I downloaded silver-searcher(from my distro repository): https://github.com/ggreer/the_silver_searchre 2016-11-27T14:37:19Z malice: 2) I am using Emacs + Prelude(which has helm and projectile). I ran projectile-ag (C-p s s) and searched for "coordinates" 2016-11-27T14:37:53Z malice: 3) I got a list of all occurances of the "coordinates" in my project files. I ran C-c C-e to get into edit mode, then M-x replace-string to replace occurances. Then I saved with C-c C-c. 2016-11-27T14:38:29Z malice: The upside is that I didn't have to run any other commands to create tag files or such 2016-11-27T14:39:19Z malice: The downside is that this would unfortunately match all the files of the project, so if I had "coordinates" used somewhere not in this code context, it would get switched as well 2016-11-27T14:39:22Z william3 quit (Ping timeout: 250 seconds) 2016-11-27T14:39:44Z malice: but other than that it's ok 2016-11-27T14:41:19Z william3 joined #lisp 2016-11-27T14:44:34Z EvW quit (Ping timeout: 256 seconds) 2016-11-27T14:46:23Z itruslove quit (Ping timeout: 256 seconds) 2016-11-27T14:46:23Z swflint quit (Ping timeout: 256 seconds) 2016-11-27T14:47:05Z william3 quit (Remote host closed the connection) 2016-11-27T14:47:39Z william3 joined #lisp 2016-11-27T14:50:31Z EvW joined #lisp 2016-11-27T14:51:03Z Einwq joined #lisp 2016-11-27T14:51:56Z william3 quit (Ping timeout: 250 seconds) 2016-11-27T14:51:58Z phoe: beach: have you seen LEM? 2016-11-27T14:52:07Z beach: Yes. 2016-11-27T14:58:15Z pierpa quit (Remote host closed the connection) 2016-11-27T15:02:15Z william3 joined #lisp 2016-11-27T15:04:44Z pierpa joined #lisp 2016-11-27T15:07:20Z loke`: beach: You there? 2016-11-27T15:07:26Z beach: I am. 2016-11-27T15:07:41Z loke`: beach: Cool. I was thinking about your Lispos ideas, and I was wondering. 2016-11-27T15:08:09Z nowhere_man joined #lisp 2016-11-27T15:08:28Z loke`: beach: If you want to compile a C (or C++) program, would you expect such program to compile to Lisp code, or do you envision a kind of funcallable object that is represented by native code? 2016-11-27T15:09:22Z phoe: First question, would it be possible to efficiently compile C/C++ into Lisp? These languages do manual memory management, which is the first issue that I can see. 2016-11-27T15:09:45Z beach: loke`: I think I wrote that somewhere. Such programs would compile to a funcallable object, but when executed, it would have its own address space, so it would have to communicate with other functions in the same clumsy way that Unix does, i.e. with something like file descriptors. 2016-11-27T15:10:05Z loke`: phoe: Well, a compiler that compiles to Lisp would comple malloc() into MAKE-ARRAY. free() would be a noop. 2016-11-27T15:10:28Z loke`: At least, I think that woul dbe viable. 2016-11-27T15:10:31Z phoe: Yeah, I thought of it. But then C/C++ have casting and the yucky void*. 2016-11-27T15:10:57Z loke`: beach: OK, understood. That makes sense from an efficiency and easy-of-porting perspective. 2016-11-27T15:11:09Z william3 quit (Remote host closed the connection) 2016-11-27T15:11:10Z phoe: So you'd basically need to replace C dynamic memory allocation with lots of calls of MAKE-ARRAY of... somethings. 2016-11-27T15:11:36Z loke`: phoe: Well, that wouldn't be an issue, I think. All would translate into calls to SVREF anyway, 2016-11-27T15:11:44Z loke`: phoe: It wouldn't be efficient. But it would work, 2016-11-27T15:11:54Z phoe: Yep, would work. 2016-11-27T15:12:10Z loke`: phoe: In my vision, it would all be arrays of (UNSIGNED-BYTE 8) 2016-11-27T15:14:37Z phoe: Yeah. 2016-11-27T15:16:28Z pjb quit (Remote host closed the connection) 2016-11-27T15:18:14Z malice quit (Remote host closed the connection) 2016-11-27T15:19:12Z nowhere_man quit (Ping timeout: 258 seconds) 2016-11-27T15:19:27Z rjid joined #lisp 2016-11-27T15:22:01Z william3 joined #lisp 2016-11-27T15:23:41Z william3_ joined #lisp 2016-11-27T15:26:56Z william__ joined #lisp 2016-11-27T15:27:28Z william3 quit (Ping timeout: 250 seconds) 2016-11-27T15:28:03Z william3_ quit (Ping timeout: 246 seconds) 2016-11-27T15:29:49Z Guest68411 quit (Read error: Connection reset by peer) 2016-11-27T15:30:06Z Guest68411 joined #lisp 2016-11-27T15:31:23Z william__ quit (Ping timeout: 250 seconds) 2016-11-27T15:31:43Z stux|RC-only quit (Ping timeout: 256 seconds) 2016-11-27T15:31:57Z phoe: gaaah 2016-11-27T15:32:12Z phoe: too much flu to be able to properly comprehend Lisp 2016-11-27T15:32:56Z beach: Next year, you should get yourself vaccinated. 2016-11-27T15:33:40Z phoe: I will. I'm catching this shit way too often. 2016-11-27T15:33:53Z shka: i'm glad that i'm always never ill 2016-11-27T15:34:40Z stux|RC-only joined #lisp 2016-11-27T15:35:31Z shrdlu68: Was reading a scifi short story just now that mentioned flu shots: http://clarkesworldmagazine.com/kritzer_01_15/ 2016-11-27T15:36:18Z django_ quit (Ping timeout: 250 seconds) 2016-11-27T15:37:15Z FreeBirdLjj joined #lisp 2016-11-27T15:37:57Z eivarv joined #lisp 2016-11-27T15:38:03Z Fare joined #lisp 2016-11-27T15:38:49Z Fare: I'm always amazed how a seemingly innocuous change to ASDF can break it in subtle ways. 2016-11-27T15:42:12Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2016-11-27T15:44:04Z rjid: Hi Fare. 2016-11-27T15:54:14Z fendral joined #lisp 2016-11-27T15:55:00Z mathrick quit (Ping timeout: 246 seconds) 2016-11-27T15:55:22Z isBEKaml quit (Quit: leaving) 2016-11-27T15:55:26Z fendral: Is there a way make the division return a floating number instead of a fraction? 2016-11-27T15:55:37Z beach: (float 1/3) 2016-11-27T15:56:04Z beach: Or, convert one of the operands first. 2016-11-27T15:56:11Z beach: (/ (float 1) 3) 2016-11-27T15:56:48Z fendral: ah okay thank you it works now 2016-11-27T15:58:01Z rjid quit (Ping timeout: 260 seconds) 2016-11-27T15:59:57Z phoe: hahahaa 2016-11-27T15:59:59Z phoe: http://mr.gy/blog/clozure-cl-deb.html 2016-11-27T16:00:14Z phoe: "sudo apt purge sbcl" 2016-11-27T16:00:33Z phoe: I know it has its reasons, I just find it funny 2016-11-27T16:01:51Z MoALTz joined #lisp 2016-11-27T16:04:38Z atgreen quit (Ping timeout: 245 seconds) 2016-11-27T16:10:37Z rtoym joined #lisp 2016-11-27T16:17:08Z lambda-smith quit (Quit: Konversation terminated!) 2016-11-27T16:23:16Z giraffe quit (Quit: ZNC - http://znc.in) 2016-11-27T16:24:13Z EvW quit (Ping timeout: 245 seconds) 2016-11-27T16:27:58Z zacts quit (Ping timeout: 245 seconds) 2016-11-27T16:29:29Z giraffe joined #lisp 2016-11-27T16:29:32Z shka: fendral: you can coerce to float 2016-11-27T16:30:29Z swflint_away joined #lisp 2016-11-27T16:30:34Z swflint_away is now known as swflint 2016-11-27T16:31:29Z rumbler31 joined #lisp 2016-11-27T16:34:59Z itruslove joined #lisp 2016-11-27T16:35:26Z Davidbrcz joined #lisp 2016-11-27T16:35:52Z rumbler31 quit (Ping timeout: 258 seconds) 2016-11-27T16:36:11Z Bike joined #lisp 2016-11-27T16:38:39Z FreeBirdLjj joined #lisp 2016-11-27T16:41:40Z karswell` joined #lisp 2016-11-27T16:43:32Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2016-11-27T16:43:45Z karswell quit (Ping timeout: 250 seconds) 2016-11-27T16:44:18Z Amplituhedron quit (Quit: Konversation terminated!) 2016-11-27T16:45:45Z Amplituhedron joined #lisp 2016-11-27T16:47:38Z FreeBirdLjj joined #lisp 2016-11-27T16:49:36Z Anselmo joined #lisp 2016-11-27T16:49:55Z Anselmo quit (Client Quit) 2016-11-27T16:52:32Z fendral quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2016-11-27T16:53:46Z kobain joined #lisp 2016-11-27T16:57:38Z puchacz joined #lisp 2016-11-27T17:03:28Z Fare: shka: so, did you try bazel? 2016-11-27T17:03:51Z shka: Fare: not yet, just read tutorial 2016-11-27T17:04:05Z ebrasca joined #lisp 2016-11-27T17:04:25Z shka: but it looks quite reasonable 2016-11-27T17:05:16Z Fare: oh yes it is, in most ways 2016-11-27T17:07:30Z Fare: I don't like the 8GB memory footprint or the bloatware, but the damn thing works. 2016-11-27T17:07:41Z Fare: and does the right thing, mostly, and at scale. 2016-11-27T17:08:41Z shka: well, it is java 2016-11-27T17:08:49Z shka: but i can deal with that honestly 2016-11-27T17:10:49Z rpg joined #lisp 2016-11-27T17:10:55Z Fare: yes 2016-11-27T17:11:21Z Fare: it's not for everyone, but if you fit the constraints, I wonder why use anything else at this point. 2016-11-27T17:11:44Z shka: i guess it won't play nice with quicklisp 2016-11-27T17:11:49Z shka: at least now 2016-11-27T17:12:22Z Fare: no, but you could easily build quicklisp-to-bazel converters 2016-11-27T17:12:43Z Fare: checkout quicklisp-projects, and automatically build bazel rules from that. 2016-11-27T17:13:06Z shka: the other thing that feels weird is using java to build cl 2016-11-27T17:13:22Z NeverDie_ joined #lisp 2016-11-27T17:13:27Z shka: but i can deal with that 2016-11-27T17:13:34Z LooneyTunes joined #lisp 2016-11-27T17:14:14Z Fare: right. It's not building *just* CL, but the entire ecosystem, including lots of C/C++ and Java and Python and whatelse code. 2016-11-27T17:14:34Z Fare: bazelisp compiles its own copy of sbcl, for instance. 2016-11-27T17:14:38Z NeverDie quit (Ping timeout: 245 seconds) 2016-11-27T17:15:10Z shka: right 2016-11-27T17:15:16Z stux|RC joined #lisp 2016-11-27T17:15:24Z Fare: asdf can't do that (for now) 2016-11-27T17:15:41Z Fare: (and for the next few years, unless someone is crazy enough to fund it) 2016-11-27T17:15:43Z stux|RC quit (Remote host closed the connection) 2016-11-27T17:15:45Z shka: anyway, i like the fact that i can compile C++/C in the same system as CL 2016-11-27T17:16:02Z Fare: yup, that's the main asset of bazel 2016-11-27T17:16:24Z shka: and hopefully standalone executable of lisp application will become less problematic 2016-11-27T17:16:53Z shka: it makes deployment trivial :/ 2016-11-27T17:17:26Z whartung: Is there a better way to do this, a structure that defaults some slots to the value of another: http://pastebin.com/1Wfh5Ukz 2016-11-27T17:17:42Z karswell` quit (Ping timeout: 250 seconds) 2016-11-27T17:17:58Z whartung: (default is a simply macro that converts ti (unless var (setf var value)) 2016-11-27T17:18:29Z Bike: you can do that with a boa constructor, i think 2016-11-27T17:18:46Z whartung: I tried to suss that out -- but that was not really clear. 2016-11-27T17:18:56Z redF joined #lisp 2016-11-27T17:19:04Z whartung: I sorta saw that in an example, but I think I could use more examples on that 2016-11-27T17:19:32Z Bike: i think it would be like... (:constructor make-system (&optional (factor 0) (orig-factor factor))) 2016-11-27T17:20:00Z whartung: can you paste out the full form? 2016-11-27T17:20:50Z Fare: asdf kind of could build sbcl images with statically linked libraries, but that depended on a patch that was reverted because it wasn't portable enough 2016-11-27T17:20:59Z whartung: the idea of multiple BOAs was a bit confusiing as well 2016-11-27T17:21:04Z Bike: the full defstruct? (defstruct (system (:constructor make-system (&optional (factor 0) (orig-factor factor)))) factor orig-factor) I think? 2016-11-27T17:21:52Z whartung: yea that seems to work 2016-11-27T17:21:58Z redF quit (Client Quit) 2016-11-27T17:22:45Z whartung: hmm..no 2016-11-27T17:22:59Z whartung: (make-system :factor 2 :orig-factor 3) 2016-11-27T17:23:08Z whartung: too many arguments given to MAKE-SYSTEM 2016-11-27T17:23:16Z Bike: well, yeah, it takes optional arguments, not key arguments 2016-11-27T17:23:28Z Bike: if you want it to take key arguments swapping &optional for &key should do it, i think? 2016-11-27T17:23:55Z whartung: but (make-system : factor 1) worked 2016-11-27T17:24:17Z whartung: but &key worked also 2016-11-27T17:24:24Z whartung: that's not confusing :) 2016-11-27T17:24:37Z Bike: (make-system :factor 1) would probably make an object where factor = :factor and orig-factor = 1, which is probably not what you want 2016-11-27T17:24:58Z whartung: oh it did lol 2016-11-27T17:25:00Z whartung: I mistead it 2016-11-27T17:25:09Z whartung: [3]> (make-system :factor 1) 2016-11-27T17:25:10Z whartung: # 2016-11-27T17:25:11Z whartung: misread 2016-11-27T17:25:24Z rtoym quit (Quit: ChatZilla 0.9.93 [Firefox 50.0/20161104212021]) 2016-11-27T17:26:00Z slyrus_ quit (Ping timeout: 246 seconds) 2016-11-27T17:27:17Z Bike: i think it's pretty simple, the constructor is just defined like (defun make-system [lambda-list] (let ((obj (%make-system))) (setf [first slot] [first named argument] [second slot] [second named argument] ...))) 2016-11-27T17:28:06Z whartung: yea 2016-11-27T17:28:33Z whartung: I think the confusion was stil specifying the othr slots 2016-11-27T17:28:36Z whartung: maybe 2016-11-27T17:28:45Z whartung: teh CLHS example wasn't really clear to me 2016-11-27T17:28:47Z william3 joined #lisp 2016-11-27T17:31:41Z d4ryus quit (Ping timeout: 260 seconds) 2016-11-27T17:31:58Z d4ryus joined #lisp 2016-11-27T17:34:03Z whartung: yea that seems to be working great, tyvm 2016-11-27T17:34:09Z Bike: alright 2016-11-27T17:35:45Z jason_m joined #lisp 2016-11-27T17:35:57Z zacts joined #lisp 2016-11-27T17:36:05Z sweater joined #lisp 2016-11-27T17:40:28Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-27T17:42:45Z Somelauw joined #lisp 2016-11-27T17:43:11Z Somelauw: Is it bad to use mapc instead of for to evaluate for side-effects? 2016-11-27T17:44:17Z Bike: well, no, side effects is what mapc is for. 2016-11-27T17:44:57Z stux|RC joined #lisp 2016-11-27T17:45:02Z Somelauw: Bike: ? 2016-11-27T17:45:31Z Somelauw: okay, not bad -> good 2016-11-27T17:45:37Z scymtym_ quit (Ping timeout: 240 seconds) 2016-11-27T17:49:10Z CEnnis91 joined #lisp 2016-11-27T17:49:36Z Mon_Ouie quit (Quit: WeeChat 1.6) 2016-11-27T17:54:32Z safe joined #lisp 2016-11-27T17:56:14Z karswell` joined #lisp 2016-11-27T17:57:08Z pjb joined #lisp 2016-11-27T17:57:53Z sjl: mapc is fine. it will return the list itself once it's done. If you don't need that list returned, (map nil ...) will also work 2016-11-27T18:00:12Z macdavid313 quit (Quit: macdavid313) 2016-11-27T18:05:12Z pjb: map can also process vectors (map 'list (function vector) '(1 2 3) #(a b c) "xyz") #| --> (#(1 a #\x) #(2 b #\y) #(3 c #\z)) |# 2016-11-27T18:06:48Z beach: pjb: Are you planning to go to ELS2017? 2016-11-27T18:08:13Z yrdz joined #lisp 2016-11-27T18:09:44Z william3 quit (Remote host closed the connection) 2016-11-27T18:09:55Z pjb: beach: Yes. 2016-11-27T18:10:04Z beach: Excellent! 2016-11-27T18:10:11Z pjb: :-) 2016-11-27T18:10:35Z beach: There might be some new faces there. 2016-11-27T18:10:39Z william3 joined #lisp 2016-11-27T18:12:08Z NeverDie joined #lisp 2016-11-27T18:14:08Z zygentoma joined #lisp 2016-11-27T18:14:13Z NeverDie_ quit (Ping timeout: 245 seconds) 2016-11-27T18:15:01Z dim: Brussels... mmm, why not ;-) 2016-11-27T18:15:02Z mathrick joined #lisp 2016-11-27T18:15:15Z beach: Yes, very nice city. 2016-11-27T18:15:43Z dim: and so easy to go to from paris 2016-11-27T18:16:35Z beach: And from other places too, fortunately. 2016-11-27T18:17:55Z william3 quit (Remote host closed the connection) 2016-11-27T18:19:02Z cromachina joined #lisp 2016-11-27T18:19:55Z william3 joined #lisp 2016-11-27T18:20:40Z pjb: / 2016-11-27T18:21:37Z pjb: How do I avoid ASDF "; Warning: You are using ASDF version 3.1.5 (probably from (require "asdf") or loaded by quicklisp) and have an older version of ASDF 3.1.4 registered…" without removing the system cl-asdf since it's used by the window manager? 2016-11-27T18:22:23Z pjb: I tried to put (:source-registry :inherit-configuration) in ~/.config/common-lisp/source-registry.conf, but this doesn't seem to have an effect. 2016-11-27T18:23:23Z pjb: Oh, I have it reversed, it's :ignore-inherited-configuration that's needed. 2016-11-27T18:28:40Z LooneyTunes quit (Remote host closed the connection) 2016-11-27T18:32:40Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-27T18:33:35Z reepca joined #lisp 2016-11-27T18:36:17Z nowhere_man joined #lisp 2016-11-27T18:38:37Z setheus quit (Ping timeout: 240 seconds) 2016-11-27T18:40:39Z setheus joined #lisp 2016-11-27T18:49:33Z stux|RC-only quit (Quit: Aloha!) 2016-11-27T18:52:38Z younder: 8.4 "For backward compatibility as well as to provide a practical backdoor for hackers, ASDF will first search for .asd files in the directories specified in asdf:*central-registry* before it searches in the source registry above." 2016-11-27T18:54:18Z FreeBirdLjj joined #lisp 2016-11-27T18:56:53Z slavka joined #lisp 2016-11-27T18:59:08Z LooneyTunes joined #lisp 2016-11-27T18:59:34Z karswell` quit (Ping timeout: 256 seconds) 2016-11-27T19:01:28Z attila_lendvai joined #lisp 2016-11-27T19:03:03Z william3 quit (Remote host closed the connection) 2016-11-27T19:03:28Z william3 joined #lisp 2016-11-27T19:04:58Z Somelauw left #lisp 2016-11-27T19:16:43Z Davidbrcz quit (Quit: Leaving) 2016-11-27T19:17:19Z eivarv quit (Quit: Sleep) 2016-11-27T19:26:12Z eivarv joined #lisp 2016-11-27T19:26:16Z eivarv quit (Client Quit) 2016-11-27T19:27:22Z robotoad joined #lisp 2016-11-27T19:28:10Z Davidbrcz joined #lisp 2016-11-27T19:29:02Z MrMc joined #lisp 2016-11-27T19:29:38Z Joreji quit (Ping timeout: 245 seconds) 2016-11-27T19:30:58Z angavrilov quit (Remote host closed the connection) 2016-11-27T19:32:37Z nowhere_man quit (Ping timeout: 240 seconds) 2016-11-27T19:34:12Z freehck quit (Ping timeout: 250 seconds) 2016-11-27T19:35:08Z puchacz quit (Quit: Konversation terminated!) 2016-11-27T19:37:05Z eivarv joined #lisp 2016-11-27T19:38:47Z MrMc quit (Ping timeout: 256 seconds) 2016-11-27T19:39:00Z vlatkoB_ quit (Remote host closed the connection) 2016-11-27T19:47:50Z EvW1 joined #lisp 2016-11-27T19:52:41Z shrdlu68: Does anyone here hack on ironclad? When is the next release? Why hasn't pull request #71 been merged yet? Is it still under review? 2016-11-27T19:53:19Z shrdlu68: Things seem to move so sluggishly. 2016-11-27T19:55:57Z phoe: Lisp has been around for 60 years, don't worry. It knows patience. 2016-11-27T19:56:24Z H4ns: that's reassuring. 2016-11-27T19:57:54Z shrdlu68: phoe: Seems the DH code I ported the other day won't be needed because there's already a pull request with DH. 2016-11-27T19:58:15Z phoe: shrdlu68: oh. 2016-11-27T19:58:20Z phoe: Unmerged, I guess. 2016-11-27T19:58:52Z phoe: Well - try to stalk the repository maintainer and poke him for details. 2016-11-27T19:59:17Z phoe: If things are bad, as in *bad*, fork and try to convince people that your reason for forking is valid. 2016-11-27T19:59:19Z CEnnis91 quit (Quit: Connection closed for inactivity) 2016-11-27T20:00:15Z _leb joined #lisp 2016-11-27T20:02:46Z shrdlu68: Well, I'd rather not, but I'll open an issue and see what's up. 2016-11-27T20:03:09Z floatingman quit (Quit: ZNC 1.6.3 - http://znc.in) 2016-11-27T20:04:05Z phoe: https://github.com/froydnj seems alive though. 2016-11-27T20:05:14Z _leb quit 2016-11-27T20:05:46Z _leb joined #lisp 2016-11-27T20:08:23Z eivarv quit (Quit: Sleep) 2016-11-27T20:12:22Z sweater quit (Read error: Connection reset by peer) 2016-11-27T20:18:33Z krasnal quit (Ping timeout: 246 seconds) 2016-11-27T20:20:16Z william3 quit (Remote host closed the connection) 2016-11-27T20:20:32Z william3 joined #lisp 2016-11-27T20:24:45Z eivarv joined #lisp 2016-11-27T20:26:29Z sweater joined #lisp 2016-11-27T20:28:23Z EvW1 quit (Ping timeout: 245 seconds) 2016-11-27T20:30:14Z zygentoma quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2016-11-27T20:31:31Z k4rtik quit (Quit: Leaving) 2016-11-27T20:33:12Z krasnal joined #lisp 2016-11-27T20:36:01Z krwq joined #lisp 2016-11-27T20:36:35Z krwq: hey, what does a &key without following name mean in the defmethod? 2016-11-27T20:37:36Z krwq: why is it needed in a case of initialize-instance i.e. 2016-11-27T20:39:20Z groovy2shoes joined #lisp 2016-11-27T20:39:23Z fiddlerwoaroof: krwq: it means that the method accepts keyword arguments but doesn't use them 2016-11-27T20:39:56Z krwq: fiddlerwoaroof: but if you don't pass &allow-other-keys you can't use it anyways 2016-11-27T20:40:07Z Bike: you can pass :allow-other-keys t 2016-11-27T20:40:11Z Bike: it's a little weird. 2016-11-27T20:40:29Z Bike: and, uh, i think it means the gf can get other keywords 2016-11-27T20:40:31Z fiddlerwoaroof: Sometimes it's used because the generic function defines keyword arguments that you don't need for a particular specialization of the function and sometimes it's used in the generic function so that particular specializations can define their own keys 2016-11-27T20:40:51Z Bike: clhs 7.6.5 2016-11-27T20:40:51Z fiddlerwoaroof: But, if there is &keys in the gf definition, you have to have it in the defmethod 2016-11-27T20:40:52Z specbot: Keyword Arguments in Generic Functions and Methods: http://www.lispworks.com/reference/HyperSpec/Body/07_fe.htm 2016-11-27T20:41:20Z Bike: it's the previosu section, 7.6.4, that lays out the rules 2016-11-27T20:41:26Z Bike: "If any lambda list mentions &rest or &key, each lambda list must mention one or both of them." 2016-11-27T20:43:18Z krwq: so in english it means that if you define generic function which uses &rest or &key and i don't need it in a specialization i need to put &key or &rest so that the argument list matches the generic function? 2016-11-27T20:43:34Z Bike: right, yes. 2016-11-27T20:43:41Z krwq: thank you! 2016-11-27T20:49:39Z _leb quit 2016-11-27T20:51:48Z jason_m quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2016-11-27T20:52:27Z Amplituhedron quit (Ping timeout: 256 seconds) 2016-11-27T20:52:45Z LooneyTu` quit (Remote host closed the connection) 2016-11-27T20:53:48Z Amplituhedron joined #lisp 2016-11-27T20:54:03Z k4rtik joined #lisp 2016-11-27T20:56:57Z pjb quit (Quit: Be seeing you!) 2016-11-27T20:57:04Z gendl: Hi, with usocket, what would be the normal way to probe a host/port to see if it's listening, without actually trying to connect to it and getting a "connection refused" error if it's not listening? 2016-11-27T20:58:02Z phoe: gendl: none. 2016-11-27T20:58:07Z H4ns: gendl: you can't find out without trying to connect. 2016-11-27T20:58:12Z H4ns: gendl: why would you? 2016-11-27T20:59:49Z gendl: H4ns: I'm getting a strange socket error with CCL, subsequent to trying a usocket:socket-connect wrapped inside an ignore-errors. 2016-11-27T21:00:04Z H4ns: gendl: ignore-errors is rarely a good idea. 2016-11-27T21:00:40Z gendl: ultimately I'd like to get the CCL error fixed (this error shows up only in CCL 1.11, and maybe only on Mac -- not on CCL 1.10). 2016-11-27T21:00:44Z H4ns: gendl: if you need to know whether the remote host refuses your connection, you should catch usocket:connection-refused-error and only that. 2016-11-27T21:01:18Z fiddlerwoaroof: gendl: there are ways to test for open ports without connecting, but you probably don't want to use them in anything besides a port scanner 2016-11-27T21:01:22Z gendl: H4ns: yes, I'd like to do that. I don't like ignore-errors either. 2016-11-27T21:01:57Z gendl: Maybe doing the proper catching of the specific error will not cause the downstream strange socket corruption -- anyway for sure I'd like to try it. 2016-11-27T21:02:07Z Xach: gendl: In this case, you can try to listen yourself and catch an address in use. 2016-11-27T21:02:41Z gendl: Xach: yep, that sounds like another way to do it. 2016-11-27T21:03:09Z H4ns: gendl: i've just tried catching usocket:connection-refused-error on ccl 1.11/osx and it worked as expected. 2016-11-27T21:03:42Z Quadrescence joined #lisp 2016-11-27T21:03:53Z gendl: H4ns: embarrassingly i'm not very versed in how to catch specific errors --- would you mind sharing that code? 2016-11-27T21:04:09Z H4ns: Xach: thanks for skippy! i'm using it to replace the controller in my https://ledseq.com/product/game-frame/ with a raspi running ccl. 2016-11-27T21:04:27Z Xach: H4ns: cool! 2016-11-27T21:04:49Z Xach: gendl: http://l1sp.org/cl/handler-case and http://l1sp.org/cl/handler-bind have examples 2016-11-27T21:05:04Z Xach: H4ns: i saw the new repo but i didn't understand all the acronyms 2016-11-27T21:05:07Z H4ns: gendl: http://paste.lisp.org/display/332674 2016-11-27T21:05:23Z H4ns: Xach: it is going to be rad regardless :) 2016-11-27T21:05:48Z H4ns: Xach: but a readme is in order. i shall add that once it is somewhat working. 2016-11-27T21:07:31Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2016-11-27T21:08:54Z _leb joined #lisp 2016-11-27T21:09:40Z _death: Xach: did you catch my remark on salza2 performance with ccl 2016-11-27T21:10:07Z Xach: _death: no. was it a remark about how slow it is? 2016-11-27T21:10:19Z Xach: _death: i tested and optimized for sbcl, so it wouldn't surprise me, unfortunately. 2016-11-27T21:10:31Z william3 quit (Remote host closed the connection) 2016-11-27T21:10:45Z _death: [05:49] <_death> using safety 2 in two salza2 functions has ccl (which generates slow typechecks with speed/safety 3) go from 3 seconds to save a png to 175ms 2016-11-27T21:10:57Z gendl: H4ns: thanks, that looks simple enough! I hereby pledge to avoid ignore-errors whenever practically possible 2016-11-27T21:11:33Z gendl: But, in this case, the handler-case has the same downstream effect on the socket as the ignore-errors... 2016-11-27T21:11:50Z Xach: _death: Interesting. Can you paste a diff or something? 2016-11-27T21:12:12Z gendl: when I restart a listener on that socket, it starts giving infinite: 2016-11-27T21:12:18Z gendl: https://www.irccloud.com/pastebin/IVgldiph/ 2016-11-27T21:13:13Z rumbler31 joined #lisp 2016-11-27T21:13:28Z _death: Xach: http://paste.lisp.org/display/332676 2016-11-27T21:13:53Z _death: there's also declaim inline there, but maybe it's not needed 2016-11-27T21:15:13Z gendl: this is with using aserve. I will dig deeper and see if it's an aserve-specific issue or what... 2016-11-27T21:15:24Z Xach: _death: thanks! i'm confused. is setting (safety 2) making it higher or lower than the default? 2016-11-27T21:17:19Z axion: if i understand correctly, it is decreasing speed/increasing performance by nearly 20x 2016-11-27T21:18:40Z axion: s/speed/time/ 2016-11-27T21:18:54Z _death: Xach: in my image I set debug/safety to 3, but I believe that the default is also 3.. need to read http://trac.clozure.com/ccl/wiki/DeclareOptimize (I'm a ccl newbie0 2016-11-27T21:19:48Z Xach: _death: oh. i'd be curious to know the impact on a default setup. and how it affects a default setup of sbcl as well. 2016-11-27T21:20:44Z _death: it says "it's currently the case that SAFETY 3 sacrifices (in some cases) a lot of performance for what's in practice only occasionally more safety than is available under default settings." 2016-11-27T21:20:53Z Fare quit (Ping timeout: 245 seconds) 2016-11-27T21:20:56Z _death: so maybe the defaults are different 2016-11-27T21:22:07Z nowhere_man joined #lisp 2016-11-27T21:23:09Z Davidbrcz quit (Ping timeout: 260 seconds) 2016-11-27T21:23:10Z _death: Xach: with the default image (and without the patch) it takes 3s.. 2016-11-27T21:25:11Z Xach: urk. i wonder if i should go to something like (declare #.*standard-declarations*) a la cl-ppcre 2016-11-27T21:25:25Z krwq quit (Remote host closed the connection) 2016-11-27T21:27:15Z Jesin joined #lisp 2016-11-27T21:27:30Z _death: makes sense 2016-11-27T21:27:33Z Jesin quit (Remote host closed the connection) 2016-11-27T21:27:49Z _death: but please don't use safety 0 :(.. 2016-11-27T21:28:29Z Xach: never 2016-11-27T21:28:37Z vap1 joined #lisp 2016-11-27T21:29:33Z dim: cl-ppcre::*standard-optimize-settings* 2016-11-27T21:29:44Z Xach: aye 2016-11-27T21:31:11Z dim: (just went curious if that existed in the standard) 2016-11-27T21:31:30Z vaporatorius quit (Ping timeout: 268 seconds) 2016-11-27T21:33:53Z dim: An unhandled error condition has been signalled: 2016-11-27T21:34:08Z dim: is that SBCL outputting that? or lparallel maybe? 2016-11-27T21:38:02Z phoe: dim: hum? 2016-11-27T21:38:47Z dim: debugging some oddities in error handling when starting from an image, controling the OS return code etc 2016-11-27T21:38:58Z dim: I get this message but I'm not sure where it comes from really 2016-11-27T21:39:09Z shrdlu68 left #lisp 2016-11-27T21:40:03Z phoe: grepping the SBCL source for this message does not give me any results. 2016-11-27T21:40:25Z _death: I'd expect a lisp implementation to use "signaled" ;) 2016-11-27T21:40:27Z dim: thx phoe 2016-11-27T21:41:17Z dim: build/bundle/pgloader-bundle-3.3.0.51/software/trivial-backtrace-20160531-git/dev/backtrace.lisp:7: "~@~%~%" 2016-11-27T21:41:20Z dim: oh, found I guess 2016-11-27T21:41:29Z LooneyTunes quit (Remote host closed the connection) 2016-11-27T21:42:02Z LooneyTunes joined #lisp 2016-11-27T21:57:57Z wedesoft joined #lisp 2016-11-27T22:01:17Z MrMc joined #lisp 2016-11-27T22:01:42Z wedesoft quit (Remote host closed the connection) 2016-11-27T22:02:49Z dim: having to "compile" down to a binary image to test is somewhat painful 2016-11-27T22:02:57Z dim: one get used to proper tooling... ;-) 2016-11-27T22:04:11Z fiddlerwoaroof: dim: I don't know what your requirements are, but when I was investigating some issues with MSSQL support in pgloader, I had pgloader start swank at the very beginning and then (break) 2016-11-27T22:04:32Z fiddlerwoaroof: It worked pretty well, for what I neede 2016-11-27T22:05:05Z gingerale quit (Remote host closed the connection) 2016-11-27T22:06:59Z dim: thanks for the feedback (and using pgloader too)! 2016-11-27T22:07:16Z dim: well I'm debugging/fixing error output and unix os return code 2016-11-27T22:07:29Z dim: so I think I need to play with the image at the command line for this... 2016-11-27T22:07:53Z stepnem quit (Ping timeout: 268 seconds) 2016-11-27T22:07:57Z fiddlerwoaroof: Yeah, that might make my hack useless 2016-11-27T22:08:41Z Quadrescence: i still want a way to have fine-grained optimization control within ASDF 2016-11-27T22:08:50Z Quadrescence: is this a solved problem 2016-11-27T22:09:08Z dim: fiddlerwoaroof: did you have some feedback on the problem with pgloader? maybe you did open an issue already? 2016-11-27T22:09:47Z rpg joined #lisp 2016-11-27T22:09:50Z Karl_Dscc quit (Remote host closed the connection) 2016-11-27T22:10:57Z fiddlerwoaroof: dim, yeah I opened an issue about a year ago now, the issue had to do with the way MSSQL represents unicode strings. I submitted a PR with an incomplete solution to the problem, but the project I had been working on is long gone. 2016-11-27T22:11:18Z Quadrescence: Xach: I wish there was a system-level way to control library optimization settings 2016-11-27T22:11:23Z fiddlerwoaroof: dim: https://github.com/dimitri/pgloader/pull/304 2016-11-27T22:11:30Z rumbler31 quit (Remote host closed the connection) 2016-11-27T22:12:15Z fiddlerwoaroof: Maybe the recent preview of SQL Server for Linux would make this easier to work on. 2016-11-27T22:13:22Z _death: Quadrescence: not sure it'd be very useful, other than overriding with highest debug/safety maybe 2016-11-27T22:13:25Z MrMc quit (Ping timeout: 248 seconds) 2016-11-27T22:13:39Z ovenpasta quit (Ping timeout: 252 seconds) 2016-11-27T22:13:51Z Quadrescence: _death, AFAIK there's no good way to set optimization settings at all 2016-11-27T22:14:02Z Quadrescence: and the standard is clear about making that difficult (IIRC) 2016-11-27T22:14:45Z Quadrescence: set opt settings (above file level) 2016-11-27T22:14:59Z dim: fiddlerwoaroof: ah yeah... 2016-11-27T22:15:47Z _death: Quadrescence: well, sbcl has restrict-compiler-policy 2016-11-27T22:15:50Z dim: fiddlerwoaroof: well for sure one thing that's hard to have is a test environement with a meaningfull database schema and dataset 2016-11-27T22:16:17Z Quadrescence: _death, yeah, too bad it's not `clamp-compiler-policy` :) 2016-11-27T22:16:59Z Quadrescence: idk I wish the whole declarations stuff was overhauled 2016-11-27T22:17:05Z fiddlerwoaroof: dim: I did manage to convert a fairly large dataset from mssql to postgresql using my changes, there were some residual problems, but I think they mostly had to do with stored procedures and views. 2016-11-27T22:17:28Z Quadrescence: 1. finer grained declares would be nice (as many systems have provided over the decades), 2. more integration and system-level control would be nice 2016-11-27T22:17:41Z Bike: i was thinking of putting a more general restrict-compiler-policy in cleavir/clasp, but i didn't know if anyone would use it 2016-11-27T22:18:09Z Quadrescence: basically, except for particular functions, I don't want library authors to control my optimization/debug desires 2016-11-27T22:18:24Z Quadrescence: I want application builders to decide that 2016-11-27T22:18:25Z _death: Quadrescence: optimizations settings seem inherently implementation-dependent.. guess you could do some work and come up with a common denominator that makes sense for today's implementations, but again, not sure how useful that'd be 2016-11-27T22:18:28Z dim: fiddlerwoaroof: I still believe the comment from a long time ago is valid: « Other than that, what if the user string actually is something like N'foo'? » 2016-11-27T22:18:45Z dim: anyway that's > 1 year ago 2016-11-27T22:19:05Z Bike: it's tricky, i mean, if you have some numeric inner loop thing you probably want the library author to let that be optimized 2016-11-27T22:19:12Z Bike: but something like ppcre does that with a global-er mechanism 2016-11-27T22:19:26Z _death: Quadrescence: if you want user control, you can provide something like *standard-optimization-settings* 2016-11-27T22:20:06Z Bike: but then it's hard to control before loading the system. isn't it sad 2016-11-27T22:20:20Z fiddlerwoaroof: dim: yeah, I didn't go too far out of my way to try to break things, but I think normal varchars are automatically quoted as is, so the only possibilities are "N'" or "'" at the beginning. 2016-11-27T22:20:21Z Xach: control it with ubiquity! 2016-11-27T22:20:25Z quazimodo joined #lisp 2016-11-27T22:20:34Z _death: Bike: you can make it another system.. quadrescence-optimization-control :) 2016-11-27T22:21:18Z scymtym joined #lisp 2016-11-27T22:22:25Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-11-27T22:25:06Z Bike: you can imagine a standards change or an implementation thing to let you bind policy in a compilation unit or something. hell, just an argument to with-compilation-unit really 2016-11-27T22:25:10Z sweater quit (Read error: Connection reset by peer) 2016-11-27T22:25:46Z _death: Bike: like sbcl has.. 2016-11-27T22:26:03Z Bike: does it? i guess that's not surprising 2016-11-27T22:26:12Z Bike: ah yep 2016-11-27T22:27:32Z quazimodo quit (Ping timeout: 256 seconds) 2016-11-27T22:28:14Z shka quit (Ping timeout: 268 seconds) 2016-11-27T22:35:08Z safe quit (Quit: Leaving) 2016-11-27T22:37:49Z CrashOverride joined #lisp 2016-11-27T22:41:42Z Quadrescence: _death, that is a solution that is not scalable and is a total hack 2016-11-27T22:42:56Z _death: sure.. it's also non-utopic 2016-11-27T22:49:15Z neoncontrails joined #lisp 2016-11-27T22:53:07Z tshirts4crime joined #lisp 2016-11-27T22:53:44Z dim: small bug about OS return value... and spending the evening cleaning up edge cases 2016-11-27T22:55:03Z dim: things such as `./build/bin/pgloader nofile.load nosuchfile.load ./test/csv-districts.load nofileagain.load ;echo $?` with the existing file properly processed, the error message clean and the OS return value not-zero 2016-11-27T22:55:17Z dim: had to share the pain^Weffort somehow ;-) 2016-11-27T22:59:58Z mishoo quit (Ping timeout: 258 seconds) 2016-11-27T23:03:59Z dim: good night! 2016-11-27T23:08:59Z cromachina_ joined #lisp 2016-11-27T23:10:07Z tshirts4crime left #lisp 2016-11-27T23:11:57Z cromachina quit (Ping timeout: 240 seconds) 2016-11-27T23:12:06Z xaotuk joined #lisp 2016-11-27T23:13:33Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-27T23:17:44Z rpg joined #lisp 2016-11-27T23:25:32Z cromachina_ quit (Ping timeout: 244 seconds) 2016-11-27T23:26:32Z cromachina joined #lisp 2016-11-27T23:27:58Z _leb quit 2016-11-27T23:31:28Z LooneyTunes quit (Remote host closed the connection) 2016-11-27T23:32:04Z FreeBirdLjj quit (Remote host closed the connection) 2016-11-27T23:32:10Z varjag quit (Ping timeout: 258 seconds) 2016-11-27T23:33:57Z sjl quit (Ping timeout: 248 seconds) 2016-11-27T23:34:20Z floatingman joined #lisp 2016-11-27T23:34:52Z LooneyTunes joined #lisp 2016-11-27T23:35:55Z floatingman quit (Client Quit) 2016-11-27T23:36:17Z strelox quit (Ping timeout: 240 seconds) 2016-11-27T23:38:01Z robotoad quit (Ping timeout: 250 seconds) 2016-11-27T23:39:37Z swflint quit (Ping timeout: 256 seconds) 2016-11-27T23:40:00Z floatingman joined #lisp 2016-11-27T23:40:13Z itruslove quit (Ping timeout: 258 seconds) 2016-11-27T23:45:36Z floatingman quit (Quit: ZNC 1.6.3 - http://znc.in) 2016-11-27T23:48:41Z CrashOverride quit (Ping timeout: 256 seconds) 2016-11-27T23:49:27Z Einwq quit (Quit: Leaving) 2016-11-27T23:49:41Z floatingman joined #lisp 2016-11-27T23:50:21Z Kaisyu joined #lisp 2016-11-27T23:50:58Z LooneyTunes quit (Remote host closed the connection) 2016-11-27T23:51:18Z robotoad joined #lisp 2016-11-27T23:51:58Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2016-11-27T23:54:37Z LooneyTunes joined #lisp 2016-11-27T23:58:24Z gmcastil joined #lisp