2014-09-23T00:00:24Z stacksmith: I remember doing that, and also listening to the hum an Atari 800 produced on the TV. It did let me know when things went wrong. 2014-09-23T00:02:01Z nyef: Okay, the low-pass filter strips the really crazy deltas off... And there really shouldn't be that much CODE in there as compared with data, so that might be the noise section... 2014-09-23T00:02:16Z ndrei quit (Ping timeout: 272 seconds) 2014-09-23T00:02:23Z ndrei_ quit (Ping timeout: 240 seconds) 2014-09-23T00:02:27Z stacksmith: I figured that he cut the code out and is playing data... 2014-09-23T00:04:04Z Bicyclidine quit (Ping timeout: 260 seconds) 2014-09-23T00:04:09Z stacksmith: So the Atari noise was very enlightening. THere was the "I am locked up tight" noise, then, the "I am running loose through RAM like an idiot" noise, and a couple of others... 2014-09-23T00:04:46Z nyef: My first real job out of school was working for the guy who wrote the Atari 2600 version of Frogger. 2014-09-23T00:04:59Z faheem__1: Somone is writing bayesian pattern recognition in CL? 2014-09-23T00:07:44Z mac_ified joined #lisp 2014-09-23T00:16:14Z Bazzie joined #lisp 2014-09-23T00:16:29Z phao quit (Quit: Leaving) 2014-09-23T00:17:59Z zRecursive joined #lisp 2014-09-23T00:21:03Z pjb: drmeister: you may consider carving them on your bones so your successors are reminded of them too. 2014-09-23T00:22:15Z pjb: drmeister: I would advise you to leave LLVM upgrade for another release. 2014-09-23T00:26:30Z c107 joined #lisp 2014-09-23T00:26:56Z pjb: nyef: bubble sort is the fastest sort when the sequence is already sorted. Will sbcl detect this case and shut up? 2014-09-23T00:28:19Z nyef: pjb: How would it know that the sequence is already sorted? 2014-09-23T00:28:55Z stardiviner joined #lisp 2014-09-23T00:29:19Z pjb: The programmer may know that there's a high probability that it is. 2014-09-23T00:29:32Z Bike: runtime profiling, duh. whenever SORT is called you test whether it's sorted at high debug. 2014-09-23T00:29:39Z nyef: I will admit, there are cases where I'd like SBCL to shut up about certain efficiency notes provided that the types in question remain within certain values. 2014-09-23T00:30:07Z stepnem quit (Ping timeout: 272 seconds) 2014-09-23T00:30:27Z nyef: "Yes, I know that you have to box this return value, but as long as it's a subtype of (unsigned-byte 32) then I DON'T CARE." 2014-09-23T00:30:35Z pjb: I guess you can also explicitely test it (unless (sortedp seq) (setf seq (sort seq))). 2014-09-23T00:31:53Z attila_lendvai quit (Quit: Leaving.) 2014-09-23T00:35:34Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-09-23T00:36:27Z SvenGek: Wouldn't a lot of the other sorts be just as fast when it's already sorted? 2014-09-23T00:36:42Z zeebrah joined #lisp 2014-09-23T00:37:19Z SvenGek: Like merge sort would prolly run in O(n) time 2014-09-23T00:37:57Z pjb: quicksort wouldn't. 2014-09-23T00:38:15Z pjb: We're on the constant here. 2014-09-23T00:39:43Z urandom__ quit (Quit: Konversation terminated!) 2014-09-23T00:42:30Z drmeister: pjb: The llvm3.5 upgrade is complete. The only niggling detail is I haven't come up with a way to handle std::unique_ptr when it's consumed by a C++ function. 2014-09-23T00:42:59Z drmeister: I do handle C++ functions returning std::unique_ptr which is more than boost::python does. 2014-09-23T00:43:06Z faheem__1: drmeister: to what extent is the build tied to a particular LLVM version? 2014-09-23T00:43:43Z drmeister: But that's because I have the benefit of writing my C++ binding template library in the magical post-C++11 era. 2014-09-23T00:44:50Z drmeister: faheem__1: It's necessary to use LLVM3.5. LLVM is a very fast moving target. I think that's why there's been a dearth of compilers written for it in the last year. People may be waiting for the dust to settle a little more. 2014-09-23T00:45:40Z faheem__1: drmeister: ok 2014-09-23T00:45:51Z drmeister: This speaks to the power of my approach. I was able to upgrade from LLVM3.4 to LLVM3.5 in a weekend with only minimal application of forehead to wall. 2014-09-23T00:46:03Z faheem__1: any particular version of llvm 3.5? 2014-09-23T00:47:31Z drmeister: faheem__1: The stock llvm3.5 - I'm freezing there for the release. I'll create a branch for llvm3.6 and update llvm more frequently than I have been. 2014-09-23T00:48:18Z drmeister: The problem is it's like a rolling stream of consciousness. The LLVM developers make changes and can explain them as they make them but if you fall 6 months behind nobody knows why something was done. 2014-09-23T00:50:35Z drmeister: I'm on #llvm asking questions like "why do I have to pass a farndangle to the beznors constructor?" and no one answers. Then I'm reduced to puzzling over the source code? 2014-09-23T00:51:04Z dlowe: isn't that what blame annotation is for? 2014-09-23T00:51:10Z faheem__1: drmeister: sounds hairy 2014-09-23T00:51:24Z nyef: minion: advice on veeblefitzer? 2014-09-23T00:51:24Z minion: #11948: Perhaps your veeblefitzer is clogged. 2014-09-23T00:51:50Z faheem__1: drmeister: are you writing very low level stuff then? if it is breaking so fast? 2014-09-23T00:52:17Z drmeister: Ah, blame annotation is very useful. Then I sit and watch for the person who made changes to a particular line of code 8 months ago and I ambush them as soon as they come on! I try to be nice about it, but desperation shows through sometimes. 2014-09-23T00:52:31Z sz0 quit 2014-09-23T00:52:34Z faheem__1: drmeister: you can't email them? 2014-09-23T00:52:54Z nyef: The commit messages and surrounding commits don't really explain things? 2014-09-23T00:53:11Z faheem__1: how friendly is the LLVM project? do they welcome feedback/questions? 2014-09-23T00:53:14Z drmeister: email? I would have to carefully formulate my thoughts - who's got time for that? 2014-09-23T00:53:24Z faheem__1: drmeister: heh 2014-09-23T00:54:12Z faheem__1: drmeister: btw, i looked at your stuff online. you have an impressive ressume. but there is precisely zilch about C++ and CL> 2014-09-23T00:54:12Z White_Flame: yes, being flippant is best in a chat channel that's logged for perpetuity ;) 2014-09-23T00:54:13Z drmeister: #llvm people are fairly friendly but they are pretty busy and talking to each other about really low level LLVM stuff. It's like listening to air traffic control chatter. 2014-09-23T00:54:38Z faheem__1: If I didn't know better, I'd think you were two entirely different people with the same name 2014-09-23T00:55:08Z drmeister: faheem__1: A calculated omission. If people knew I was writing a Common Lisp implementation - I'd be mobbed. I wouldn't get anything done :-) 2014-09-23T00:55:43Z faheem__1: drmeister: like Mick Jagger 2014-09-23T00:55:45Z drmeister: Actually, I tell you folks about it because I need help and constant course correction. 2014-09-23T00:56:02Z drmeister: But I don't like to talk about things unless they are done. Dreams are cheap. 2014-09-23T00:56:13Z faheem__1: drmeister: you need to keep away those CL groupies 2014-09-23T00:56:21Z drmeister: All 9000 of them. 2014-09-23T00:56:34Z nyef: Mmm. Talk is cheap, working code takes actual effort. 2014-09-23T00:57:16Z varjag_ quit (Quit: Connection closed for inactivity) 2014-09-23T00:58:15Z faheem__1: drmeister: if the llvm founder around much? 2014-09-23T00:59:21Z drmeister: faheem__1: I don't know - what's his nickname? 2014-09-23T01:01:57Z faheem__1: drmeister: dunno. http://www.nondot.org/sabre/ 2014-09-23T01:02:09Z drmeister: What's a good version number to start with? 0.1 - that feels pretty alpha. 2014-09-23T01:02:19Z faheem__1: clattner or sabre probably. 2014-09-23T01:02:38Z faheem__1: drmeister: 0.1 sound reasonable 2014-09-23T01:02:49Z nyef: drmeister: 0.12, maybe? Wasn't that the version number for the second release of the Linux kernel? 2014-09-23T01:02:49Z faheem__1: i worked on a project for years, still at 0.1 2014-09-23T01:03:40Z davazp quit (Remote host closed the connection) 2014-09-23T01:04:10Z drmeister: sabre - never saw him - I don't like the cut of his jib. Anyone who can talk about how inspired they were to develop a REPL for the Swift language and not mention Lisp once is shady. 2014-09-23T01:04:29Z nyef: For a while, starting in... 1997, I think, I had a project where the version numbers were date codes. YYMMDD, all of them. 2014-09-23T01:05:14Z nyef: Come 2000 I decided that the years were actually hexadecimal, so 2000 was 9a, and I didn't have to change anything else about the version numbering scheme. 2014-09-23T01:05:36Z faheem__1: nyef: interesting 2014-09-23T01:05:49Z faheem__1: so 2001 is 9b? 2014-09-23T01:06:05Z drmeister: That was a thing for a while: Windows98, Windows2000 ... now small integers are fashionable again. 2014-09-23T01:06:11Z nyef: Yeah. The last version released was a 9b. 2014-09-23T01:06:45Z faheem__1: that's kind of a cool idea 2014-09-23T01:06:52Z jasom: that gets you to what 2101? 2014-09-23T01:07:10Z drmeister: I like TeX - the version numbers change asymptotically towards pi. 2014-09-23T01:07:57Z faheem__1: drmeister: that's because it's basically frozen 2014-09-23T01:08:11Z nyef: jasom: Yeah, I figured that I wasn't likely to still be working on it at that point. 2014-09-23T01:08:34Z jasom: nyef: well if you don't rev between now and then, you can always decide it's base 36 2014-09-23T01:08:35Z drmeister: It's because it's almost perfect. But I don't believe in perfection. 2014-09-23T01:08:38Z kushal joined #lisp 2014-09-23T01:09:02Z nyef: And given that at some point in '9b I accidentally torched the entire source control repository, it turned out that I was right. 2014-09-23T01:09:04Z faheem__1: drmeister: well, mostly debugged. perfection is in the eye of the beholder 2014-09-23T01:09:16Z drmeister: I believe as the Turkish rugmaker, to include one imperfection in every rug because nothing on this earth is perfect but the creator himself. 2014-09-23T01:09:33Z nyef: jasom: Only works if the change is made prior to 'a0. 2014-09-23T01:10:04Z jasom: nyef: we've already passed 'a0 so that's why I said "if you don't rev between now and then" 2014-09-23T01:10:36Z cheryllium joined #lisp 2014-09-23T01:11:12Z nyef: At this point I'm more likely to cannibalize the last working tree that I can find for bits that I can re-use. 2014-09-23T01:11:40Z Vivitron quit (Ping timeout: 258 seconds) 2014-09-23T01:12:07Z ltbarcly joined #lisp 2014-09-23T01:12:10Z White_Flame: drmeister: that smells like shady job security games 2014-09-23T01:12:45Z nyef: (Actually, I did that at a couple of points, one was to convert part of it to a library that I could load into a lisp process to do some audio synthesis stuff.) 2014-09-23T01:14:27Z eazar001 quit (Quit: WeeChat 1.0) 2014-09-23T01:14:29Z faheem__1: nyef: (write-to-string 2000 :base 16) -> "7D0" 2014-09-23T01:15:12Z nyef: faheem__1: Recalibrate for a different epoch, assuming that #x90 is 1990. 2014-09-23T01:15:57Z nyef: 00 is 1846 or so. 2014-09-23T01:16:44Z gendl_ quit (Quit: gendl_) 2014-09-23T01:18:01Z faheem__1: nyef: ok 2014-09-23T01:20:48Z zeitue joined #lisp 2014-09-23T01:21:59Z wizzo quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-09-23T01:26:40Z work_op quit (Quit: Leaving) 2014-09-23T01:28:57Z kristof joined #lisp 2014-09-23T01:29:09Z marsbot is now known as marsam 2014-09-23T01:29:14Z SvenGek quit (Quit: Buh bai) 2014-09-23T01:30:09Z kristof: macro debugging, what a mess... 2014-09-23T01:30:39Z kristof: You don't know it's a macro bug until you remember it's a macro bug. And then a simple macroexpand suffices. 2014-09-23T01:31:11Z kristof: I wonder how those "illuminated macros" for Clojure work again. 2014-09-23T01:32:21Z dented42 joined #lisp 2014-09-23T01:34:59Z pillton: What does your macro do? 2014-09-23T01:35:14Z dented42 quit (Remote host closed the connection) 2014-09-23T01:35:18Z gendl_ joined #lisp 2014-09-23T01:35:54Z White_Flame: I suspect it generates lisp source forms 2014-09-23T01:39:49Z pillton: Oh I see. Look at that, water is wet too. :) 2014-09-23T01:39:53Z faheem__1: nyef: (write-to-string (- 2000 1846) :base 16) 2014-09-23T01:40:02Z faheem__1: "9A" 2014-09-23T01:42:55Z nell joined #lisp 2014-09-23T01:43:25Z nyef: faheem__1: Sounds about right. 2014-09-23T01:54:56Z gendl_ quit (Quit: gendl_) 2014-09-23T01:57:52Z xyjprc joined #lisp 2014-09-23T01:58:40Z xishvai joined #lisp 2014-09-23T02:02:35Z arpunk quit (Ping timeout: 272 seconds) 2014-09-23T02:05:50Z eazar001 joined #lisp 2014-09-23T02:05:56Z marsam is now known as marsbot 2014-09-23T02:13:48Z echo-area joined #lisp 2014-09-23T02:14:45Z ivan\ quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-09-23T02:15:41Z ivan\ joined #lisp 2014-09-23T02:16:46Z JokesOnYou77 quit (Quit: Ex-Chat) 2014-09-23T02:26:31Z harish_ joined #lisp 2014-09-23T02:26:52Z rtoym joined #lisp 2014-09-23T02:28:01Z drmeister quit (Remote host closed the connection) 2014-09-23T02:30:48Z work_op joined #lisp 2014-09-23T02:30:51Z nand1 joined #lisp 2014-09-23T02:32:52Z dmiles_afk quit (Ping timeout: 240 seconds) 2014-09-23T02:35:57Z dmiles_afk joined #lisp 2014-09-23T02:37:56Z work_op quit (Quit: rekt) 2014-09-23T02:38:13Z work_op joined #lisp 2014-09-23T02:38:18Z cheryllium quit (Quit: ChatZilla 0.9.90.1 [Firefox 32.0.2/20140917194002]) 2014-09-23T02:38:54Z jleija quit (Quit: leaving) 2014-09-23T02:41:37Z drmeister joined #lisp 2014-09-23T02:41:44Z Vivitron joined #lisp 2014-09-23T02:41:52Z hiyosi quit (Ping timeout: 245 seconds) 2014-09-23T02:44:05Z yacks joined #lisp 2014-09-23T02:46:55Z eazar001 quit (Ping timeout: 272 seconds) 2014-09-23T02:48:25Z marsbot is now known as marsam 2014-09-23T02:48:36Z c107 quit (Ping timeout: 246 seconds) 2014-09-23T02:56:16Z jkaye quit (Remote host closed the connection) 2014-09-23T02:56:51Z jkaye joined #lisp 2014-09-23T02:57:49Z marsam is now known as marsbot 2014-09-23T02:59:58Z eazar001 joined #lisp 2014-09-23T03:00:32Z dmiles_afk quit (Ping timeout: 258 seconds) 2014-09-23T03:01:41Z rme quit (Quit: rme) 2014-09-23T03:01:41Z rme quit (Quit: rme) 2014-09-23T03:01:53Z jkaye quit (Ping timeout: 272 seconds) 2014-09-23T03:05:36Z marsbot is now known as marsam 2014-09-23T03:08:32Z hiyosi joined #lisp 2014-09-23T03:13:07Z hiyosi quit (Ping timeout: 245 seconds) 2014-09-23T03:15:26Z beach joined #lisp 2014-09-23T03:15:39Z beach: Good morning everyone! 2014-09-23T03:17:21Z vanila: hi beach :) 2014-09-23T03:19:00Z bgs100 quit (Quit: bgs100) 2014-09-23T03:20:14Z pillton: Good morning beach. 2014-09-23T03:28:13Z zacharias_ joined #lisp 2014-09-23T03:29:07Z normanrichards joined #lisp 2014-09-23T03:29:47Z beach: Writing unit tests is both boring and very gratifying. 2014-09-23T03:30:12Z vanila: im doing a lot of testing recently 2014-09-23T03:30:18Z pillton: I can't function without them. 2014-09-23T03:30:21Z vanila: I hope this way my code will be more robust 2014-09-23T03:30:34Z vanila: I usually dont save files with tests in thme 2014-09-23T03:30:41Z vanila: because i worked on smaller programs 2014-09-23T03:30:44Z zRecursive: "testing before coding" is a GOOD habbit :) 2014-09-23T03:31:07Z zacharias quit (Ping timeout: 245 seconds) 2014-09-23T03:31:27Z beach: zRecursive: But as with many good habits, it is BORING. 2014-09-23T03:31:53Z pillton: beach: Not as boring as a git bisection. 2014-09-23T03:32:07Z beach: pillton: I am willing to believe it. 2014-09-23T03:33:46Z zz_karupa is now known as karupa 2014-09-23T03:33:56Z zRecursive: beach: i am used to first think how to test the code before programming the code(s), not so boring 2014-09-23T03:34:06Z work_op: what is a better name for this function? http://paste.lisp.org/+32YU 2014-09-23T03:34:25Z beach: zRecursive: Excellent! 2014-09-23T03:34:32Z work_op: it finds the smallest number that all the numbers are a factor of 2014-09-23T03:37:15Z nyef: Hello beach. 2014-09-23T03:38:00Z harish_ quit (Quit: Leaving) 2014-09-23T03:38:19Z harish joined #lisp 2014-09-23T03:38:27Z nyef: And yeah, writing test cases after the fact is tedious, but writing them first tends to be better. 2014-09-23T03:39:02Z beach: Yeah, I try to do it, but I don't always succeed. 2014-09-23T03:39:15Z phserrr joined #lisp 2014-09-23T03:39:26Z phserrr is now known as phserr 2014-09-23T03:39:41Z nyef: I also find that the better my test coverage, the more comfortable I am with making larger changes. 2014-09-23T03:39:47Z beach: My favorite test method is random testing. It works for efficient containers. I write a simple/slow version, and I compare them. 2014-09-23T03:39:50Z vanila: work_op, lowest-common-multiple? 2014-09-23T03:40:06Z vanila: random testing is really cool 2014-09-23T03:40:11Z beach: nyef: Yes, that's the "gratifying" part. 2014-09-23T03:40:21Z vanila: because (with enough runs) it will exercise parts of your program that hand written tests might miss 2014-09-23T03:40:42Z nyef: On the other hand, sometimes I have absolutely no idea how to write test cases for something but I know fairly well what large changes I want to make. 2014-09-23T03:40:50Z White_Flame: work_op: it's usually called the lowest|least common denominator 2014-09-23T03:40:53Z vanila: I want to test some things like macro expansions are correct 2014-09-23T03:41:14Z vanila: and one frustrating thing about that is i need to test alpha equality (renaming of variables) 2014-09-23T03:41:42Z beach: vanila: Oh, I can see that. 2014-09-23T03:41:52Z nyef: vanila: Odd, most of my macros don't actually rename variables. Or they do so in a completely deterministic way, not using gensym. 2014-09-23T03:42:46Z vanila: how do you create macros that don't use gensym in common lisp? 2014-09-23T03:43:05Z Bike: i think vanila means comparing macroexpansions at different times (therefore using different gensyms)? 2014-09-23T03:43:41Z nyef: Most common use for gensym in my code is in expansions for WITH- macros, and the expanders are so dead straightforward that it's not worth testing them. 2014-09-23T03:43:53Z Karl_Dscc joined #lisp 2014-09-23T03:43:57Z vanila: wel normally i'd check (let ((x 1)) x) ==> ((lambda (x) x) 1) but expansiosn produces ((lambda (x213) x213) 1) 2014-09-23T03:44:19Z nyef: Instead, I test the underlying CALL-WITH- function. 2014-09-23T03:46:10Z nyef: I've got a fairly hairy macro that generates several functions that do various things, largely based on a set of variables (defined elsewhere with a known naming scheme) and a single parameter given to the macro. 2014-09-23T03:46:57Z nyef: And much of the expansion is actually generated by separate functions called by the macroexpander, and I test the functions easily enough. 2014-09-23T03:48:10Z hiyosi joined #lisp 2014-09-23T03:49:02Z Karl_Dscc quit (Remote host closed the connection) 2014-09-23T03:49:10Z beach: Interesting stuff. 2014-09-23T03:50:25Z nyef: Really, most of my WITH- macros expand to (flet ((,thunk-name (...) ,@body)) (declare (dynamic-extent #'thunk-name)) (call-with-... #'thunk-name ...)). 2014-09-23T03:51:41Z pjb: work_op: (lcm 2 12 16) --> 48 2014-09-23T03:52:10Z beach: pjb: Not only s/K/k/ but also s/y/i/. 2014-09-23T03:52:24Z nyef: Badda-bing, badda-boom, no need for once-only, and SBCL optimizes the closure for stack-allocation of the closure and elides the value-cells in favor of direct access to slots in the parent stack frame. 2014-09-23T03:52:40Z pjb: beach: I should have copy-pasted. 2014-09-23T03:53:27Z nyef: And if you declare your call-with- function to be inline, SBCL can get even more clever (though you have a larger change to lose out in terms of code size). 2014-09-23T03:53:35Z impulse joined #lisp 2014-09-23T03:53:36Z beach: nyef: What's the typical situation? 2014-09-23T03:53:58Z beach: Oh, just calling one flet. 2014-09-23T03:54:00Z beach: Got it. 2014-09-23T03:54:04Z White_Flame: nyef: My WITH- macros expand to macrolets. Nothing clever, all inline 2014-09-23T03:54:09Z ndrei joined #lisp 2014-09-23T03:54:11Z ndrei_ joined #lisp 2014-09-23T03:54:12Z ndrei quit (Client Quit) 2014-09-23T03:54:44Z beach: nyef: I would think if there is only one call to the flet, it would be inlined. No? 2014-09-23T03:54:56Z nyef: It's not a call to the flet, it's passing it as a parameter. 2014-09-23T03:55:06Z aretecode quit (Ping timeout: 246 seconds) 2014-09-23T03:55:16Z beach: nyef: Oh, OK. 2014-09-23T03:55:44Z nyef: Now, if the function it's being passed TO is inlined, and that function calls the parameter value, THEN the whole thing might end up inlined. 2014-09-23T03:55:51Z work_op: pjb: oh... 2014-09-23T03:55:59Z work_op: time well wasted 2014-09-23T03:56:34Z nyef: But consider almost any WITH-* / CALL-WITH-* pair in CLIM II. 2014-09-23T03:56:54Z nyef: The CALL-WITH-* function can't reasonably be inlined because it's a GF. 2014-09-23T03:57:10Z beach: nyef: Sure. But if the local function is to be able to use the stack frame of its lexical parent, something needs to be known about the call-with-* function, no? 2014-09-23T03:57:43Z nyef: Yes: That it's not going to let the reference to the local function escape its extent. 2014-09-23T03:57:53Z pjb: And normally, the call-with-* functions will not be trivial, so it wouldn't be a good idea to inline them. 2014-09-23T03:57:55Z nyef: Which is what the dynamic-extent declaration is for. 2014-09-23T03:58:22Z beach: nyef: Also how many stack frames there are between the parent function and the invocation of the thunk, I would think. 2014-09-23T03:58:34Z nyef: No, why would that be necessary? 2014-09-23T03:58:38Z ndrei_ quit (Ping timeout: 244 seconds) 2014-09-23T03:58:55Z nyef: You have to allocate a closure anyway, so you put the frame pointer in there. 2014-09-23T03:59:08Z beach: nyef: Yeah, OK. 2014-09-23T03:59:57Z beach: nyef: So the pointer to the static environment is a frame pointer to the environment of the lexical parent. I see now. 2014-09-23T04:00:21Z nyef: Right, and that only works if the closure doesn't escape. 2014-09-23T04:00:42Z nyef: And you can't know that it doesn't escape as a local property. 2014-09-23T04:00:53Z beach: Yes. If it does, all hell will break loose. 2014-09-23T04:02:07Z nyef: Now, one of the things that I don't believe we got working in SBCL is the ability to declare (using some defoptimizer on a known function) that a given function parameter doesn't escape, which would allow the closure to automatically be allocated d-x without the flet noise. 2014-09-23T04:02:08Z beach: It's hard to know in general. I would rely on it only when calling standard functions. Who knows what user functions will ultimately do. 2014-09-23T04:02:55Z beach: So SBCL takes your word for it when you declare it dynamic-extent? 2014-09-23T04:03:11Z nyef: Yes. 2014-09-23T04:03:15Z beach: Hmm! :) 2014-09-23T04:03:25Z nyef: And if it isn't, that's a case of "lying to the compiler". 2014-09-23T04:03:52Z beach: Indeed. 2014-09-23T04:04:15Z aretecode joined #lisp 2014-09-23T04:04:16Z nyef: So doing it for arbitrary user code doesn't make sense, but doing it for specific user code easily does. 2014-09-23T04:04:50Z nyef: You just make it part of the interface contract, "this parameter has dynamic extent". After that, if someone breaks it, they get to keep both pieces. 2014-09-23T04:05:29Z oleo is now known as Guest24914 2014-09-23T04:05:33Z beach: I see, yes. 2014-09-23T04:07:11Z nyef: But being able to declare that the first parameter to MAPCAR does not escape means that a compiler could know to perform this optimization automatically. 2014-09-23T04:07:13Z oleo__ joined #lisp 2014-09-23T04:07:37Z beach: nyef: Sure. That's what I have been thinking of doing in SICL. 2014-09-23T04:07:52Z beach: ... and *not* rely on the declaration in general. 2014-09-23T04:08:07Z Guest24914 quit (Ping timeout: 245 seconds) 2014-09-23T04:08:22Z nyef: As I said, I don't think that SBCL has this for function parameters, though ISTR it has at least some amount of it for normal parameters. 2014-09-23T04:09:54Z beach: I was thinking the other day that for cases such as (let ((x ...)) (find-if (lambda (y) (< x y)) ...)) one could allocate x in an XMM register. 2014-09-23T04:10:15Z beach: ... provided it is known that find-if does not use that register, of course. 2014-09-23T04:10:58Z beach: The Intel optimization manual encourages the use of XMM registers over stack frames for spilling, and that's how I started thinking about it. 2014-09-23T04:11:00Z nyef: Put the closure environment in the register set? 2014-09-23T04:11:06Z nyef: That's... neat! 2014-09-23T04:11:06Z beach: Yeah. 2014-09-23T04:12:01Z beach: Hmm, did I just distract you from more important stuff? :) 2014-09-23T04:12:53Z araujo quit (Quit: Leaving) 2014-09-23T04:12:55Z nyef: Not really. The only important thing I have to do right now is sign off IRC, put the computer to sleep, and turn the light out. 2014-09-23T04:13:07Z beach: Heh! OK. 2014-09-23T04:14:12Z beach: It's always interesting discussing that kind of stuff with you, nyef. 2014-09-23T04:15:12Z nyef: Glad to hear it. Same here. (-: 2014-09-23T04:16:48Z beach: Today I need to figure out how to turn my minimal compiler into a general code walker. Otherwise, I'll have a lot of code duplication when I write the AST generator. 2014-09-23T04:17:11Z aretecode quit (Quit: Toodaloo) 2014-09-23T04:17:30Z beach: On the other hand, I will then have a general, implementation-customizable code walker. 2014-09-23T04:21:29Z s3gfault joined #lisp 2014-09-23T04:21:47Z nyef: Could said code-walker then be instrumented to become an interpreter? 2014-09-23T04:22:00Z beach: nyef: Yes, I think so. 2014-09-23T04:22:20Z beach: nyef: But the way I imagine doing that is to turn code into AST, AST into MIR and then interpret the MIR. 2014-09-23T04:23:02Z nyef: Shades of the CMUCL IR1 (was it IR1?) interpreter. 2014-09-23T04:23:15Z beach: OK. 2014-09-23T04:23:19Z nyef: I'm more thinking a classical EVAL setup. 2014-09-23T04:23:26Z beach: nyef: It's a good question though. I need to make sure that the actions and return values are general enought. 2014-09-23T04:23:28Z beach: enough 2014-09-23T04:23:47Z nyef: Krystof was doing some codewalker stuff not too long ago, possibly still is. 2014-09-23T04:23:48Z beach: nyef: Yeah, thanks for reminding me. 2014-09-23T04:24:14Z beach: Yes, I read about Krystof's stuff on Planet Lisp. I'll check what he is doing. 2014-09-23T04:27:50Z xyjprc quit (Remote host closed the connection) 2014-09-23T04:29:25Z theos quit (Disconnected by services) 2014-09-23T04:29:51Z theos joined #lisp 2014-09-23T04:32:01Z Joreji joined #lisp 2014-09-23T04:34:00Z madrik joined #lisp 2014-09-23T04:39:24Z cmack``` joined #lisp 2014-09-23T04:40:42Z marsam is now known as marsbot 2014-09-23T04:40:50Z cmack`` quit (Ping timeout: 250 seconds) 2014-09-23T04:49:51Z c107 joined #lisp 2014-09-23T04:50:10Z mr-foobar quit (Quit: Leaving...) 2014-09-23T04:52:54Z MouldyOldBones quit (Remote host closed the connection) 2014-09-23T04:53:37Z cmack```` joined #lisp 2014-09-23T04:53:59Z drmeister: Is there a way to interrupt emacs when it goes off into la-la land? Since I installed 24.3 Emacs for OS X whenever I'm in a big file and I hit M-S-< to go to the top of the file it hangs for minutes. 2014-09-23T04:54:26Z MouldyOldBones joined #lisp 2014-09-23T04:54:41Z ehaliewicz joined #lisp 2014-09-23T04:54:48Z nyef: I presume you've tried C-g? 2014-09-23T04:55:04Z drmeister: Yes, it doesn't do anything. 2014-09-23T04:55:17Z cmack``` quit (Ping timeout: 245 seconds) 2014-09-23T04:55:19Z nyef: ... I've got nothing, then. 2014-09-23T04:55:32Z nyef: Also, eesh. Just coming up on 1AM? 2014-09-23T04:56:16Z drmeister: Thank you anyway. 2014-09-23T04:56:56Z nyef: I'm tired enough to make silly BASIC jokes like "10 REM Sleep for six hours." 2014-09-23T04:57:12Z drmeister: nyef: We are in the same time zone - where are you? I'm Philadelphia. 2014-09-23T04:57:29Z nyef: I'm in New Hampshire right now. 2014-09-23T04:58:02Z drmeister: Ah, well have a good night. 2014-09-23T04:58:06Z nyef: You as well. 2014-09-23T04:58:08Z wizzo joined #lisp 2014-09-23T04:58:12Z nyef quit (Quit: G'night all.) 2014-09-23T04:58:15Z drmeister: I'm off to bed as well. I just wanted to get the static analyzer running overnight. 2014-09-23T04:58:53Z drmeister: Hopefully I'll have the MPS version running tomorrow and then I'm out of excuses to release. 2014-09-23T04:59:10Z ndrei joined #lisp 2014-09-23T05:00:25Z yacks quit (Ping timeout: 260 seconds) 2014-09-23T05:02:48Z yacks joined #lisp 2014-09-23T05:03:44Z kristof quit (Ping timeout: 244 seconds) 2014-09-23T05:04:42Z oleo__ quit (Quit: Verlassend) 2014-09-23T05:09:35Z smithzv quit (Quit: ZNC - http://znc.in) 2014-09-23T05:09:47Z smithzv joined #lisp 2014-09-23T05:10:10Z smithzv is now known as Guest64381 2014-09-23T05:11:14Z kcj joined #lisp 2014-09-23T05:12:49Z c107 quit (Read error: Connection reset by peer) 2014-09-23T05:13:01Z dmiles_afk joined #lisp 2014-09-23T05:16:26Z jkaye joined #lisp 2014-09-23T05:20:32Z nostoi joined #lisp 2014-09-23T05:20:34Z drmeister quit (Remote host closed the connection) 2014-09-23T05:21:31Z jkaye quit (Ping timeout: 272 seconds) 2014-09-23T05:24:16Z angavrilov joined #lisp 2014-09-23T05:29:50Z flyingcarskill joined #lisp 2014-09-23T05:32:20Z Jubb quit (Ping timeout: 258 seconds) 2014-09-23T05:38:52Z sdemarre joined #lisp 2014-09-23T05:43:31Z hiroakip joined #lisp 2014-09-23T05:44:07Z ehu joined #lisp 2014-09-23T05:45:24Z vanila quit (Remote host closed the connection) 2014-09-23T05:47:05Z zeebrah quit (Ping timeout: 260 seconds) 2014-09-23T05:49:53Z sz0 joined #lisp 2014-09-23T05:50:45Z pt1 joined #lisp 2014-09-23T05:54:21Z beach left #lisp 2014-09-23T05:57:24Z s3gfault left #lisp 2014-09-23T05:57:25Z vanila joined #lisp 2014-09-23T05:58:31Z mr-foobar joined #lisp 2014-09-23T06:06:27Z Joreji quit (Ping timeout: 245 seconds) 2014-09-23T06:06:28Z mishoo joined #lisp 2014-09-23T06:09:29Z sdemarre quit (Ping timeout: 260 seconds) 2014-09-23T06:09:59Z hiroakip quit (Ping timeout: 272 seconds) 2014-09-23T06:10:01Z bit` quit (Ping timeout: 260 seconds) 2014-09-23T06:10:42Z MoALTz quit (Quit: Leaving) 2014-09-23T06:12:23Z KCL_ joined #lisp 2014-09-23T06:15:22Z KCL quit (Ping timeout: 240 seconds) 2014-09-23T06:15:37Z ehu quit (Ping timeout: 245 seconds) 2014-09-23T06:18:53Z Harag joined #lisp 2014-09-23T06:19:01Z ered-away quit (Read error: Connection reset by peer) 2014-09-23T06:22:31Z pranavrc joined #lisp 2014-09-23T06:24:39Z prxq joined #lisp 2014-09-23T06:27:05Z bit` joined #lisp 2014-09-23T06:27:40Z keen_ quit (Read error: Connection reset by peer) 2014-09-23T06:29:43Z keen_ joined #lisp 2014-09-23T06:32:03Z yacks quit (Quit: Leaving) 2014-09-23T06:33:03Z defaultxr quit (Quit: gnight) 2014-09-23T06:33:57Z jusss joined #lisp 2014-09-23T06:34:27Z ndrei quit (Quit: Lost terminal) 2014-09-23T06:35:31Z nostoi quit (Quit: Verlassend) 2014-09-23T06:37:51Z GGMethos quit (Quit: WeeChat 1.1-dev) 2014-09-23T06:38:15Z pt1 quit (Remote host closed the connection) 2014-09-23T06:38:17Z malbertife quit (Ping timeout: 244 seconds) 2014-09-23T06:42:21Z flyingcarskill quit (Remote host closed the connection) 2014-09-23T06:44:51Z mvilleneuve joined #lisp 2014-09-23T06:45:11Z juansnn joined #lisp 2014-09-23T06:46:32Z anaumov joined #lisp 2014-09-23T06:47:13Z kobain quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2014-09-23T06:49:28Z pgomes joined #lisp 2014-09-23T06:52:18Z Cymew joined #lisp 2014-09-23T06:56:20Z GGMethos joined #lisp 2014-09-23T06:58:24Z cmack```` quit (Read error: Connection reset by peer) 2014-09-23T06:58:40Z fridim__ joined #lisp 2014-09-23T07:02:12Z mr-foobar quit (Ping timeout: 260 seconds) 2014-09-23T07:03:11Z zRecursive quit (Remote host closed the connection) 2014-09-23T07:04:24Z freaksken joined #lisp 2014-09-23T07:06:45Z mr-foobar joined #lisp 2014-09-23T07:09:15Z ehu joined #lisp 2014-09-23T07:10:08Z fr3aksken joined #lisp 2014-09-23T07:11:14Z yacks joined #lisp 2014-09-23T07:12:22Z freaksken quit (Ping timeout: 240 seconds) 2014-09-23T07:12:23Z fr3aksken is now known as freaksken 2014-09-23T07:17:24Z jkaye joined #lisp 2014-09-23T07:21:27Z jkaye quit (Ping timeout: 245 seconds) 2014-09-23T07:22:40Z ered joined #lisp 2014-09-23T07:23:22Z shka joined #lisp 2014-09-23T07:26:21Z huza joined #lisp 2014-09-23T07:29:31Z jusss quit (Remote host closed the connection) 2014-09-23T07:29:49Z jusss joined #lisp 2014-09-23T07:37:22Z varjag joined #lisp 2014-09-23T07:38:37Z meiji11 quit (Remote host closed the connection) 2014-09-23T07:39:24Z jusss quit (Quit: : Ping timeout 255 s) 2014-09-23T07:40:02Z `JRG joined #lisp 2014-09-23T07:41:01Z phserr quit (Ping timeout: 260 seconds) 2014-09-23T07:42:49Z huza quit (Ping timeout: 260 seconds) 2014-09-23T07:47:52Z zacharias_ quit (Quit: Bye!) 2014-09-23T07:48:40Z gryAway quit (Quit: No Ping reply in 180 seconds.) 2014-09-23T07:49:48Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-09-23T07:51:30Z Cymew quit (Ping timeout: 250 seconds) 2014-09-23T07:52:45Z shka` joined #lisp 2014-09-23T07:53:45Z gryAway joined #lisp 2014-09-23T07:54:37Z Cymew joined #lisp 2014-09-23T07:54:52Z shka quit (Ping timeout: 245 seconds) 2014-09-23T07:57:30Z Beetny joined #lisp 2014-09-23T08:02:05Z harish quit (Ping timeout: 272 seconds) 2014-09-23T08:08:01Z Elench quit (Ping timeout: 260 seconds) 2014-09-23T08:11:44Z stassats joined #lisp 2014-09-23T08:12:03Z alchemis7 left #lisp 2014-09-23T08:12:04Z alchemis7 joined #lisp 2014-09-23T08:14:05Z ehaliewicz quit (Ping timeout: 260 seconds) 2014-09-23T08:14:42Z hiyosi quit (Quit: WeeChat 1.0) 2014-09-23T08:15:02Z hiyosi joined #lisp 2014-09-23T08:20:56Z urandom__ joined #lisp 2014-09-23T08:28:53Z Paul_McFreely joined #lisp 2014-09-23T08:30:34Z `JRG quit (Ping timeout: 246 seconds) 2014-09-23T08:31:57Z posterdati300 joined #lisp 2014-09-23T08:32:31Z ltbarcly quit (Quit: Computer has gone to sleep.) 2014-09-23T08:33:33Z hitecnologys joined #lisp 2014-09-23T08:37:26Z faheem__1: Since it is a bit quieter in here, i just want to say that I thought I read/saw discussion of statistical analysis here earlier, presumably in CL. If anyone is willing to supply further details, I'm interested. 2014-09-23T08:38:08Z karupa is now known as zz_karupa 2014-09-23T08:39:07Z nug700 quit (Quit: bye) 2014-09-23T08:40:16Z White_Flame: That might have been the reverse engineering discussion. People asked if I was using bayesian etc. I'm not; sticking with symbolic AI for the time being. 2014-09-23T08:40:45Z yeticry quit (Ping timeout: 260 seconds) 2014-09-23T08:42:32Z alexherbo2 joined #lisp 2014-09-23T08:42:35Z yeticry joined #lisp 2014-09-23T08:46:07Z faheem__1: White_Flame: oh. so you aren't doing statistics then? 2014-09-23T08:46:17Z White_Flame: not at the moment 2014-09-23T08:46:23Z faheem__1: White_Flame: ok. thanks. 2014-09-23T08:46:32Z segv- joined #lisp 2014-09-23T08:46:40Z White_Flame: at some point in the future, I'm going to have to tackle similarity between concepts, which will be fuzzy, but may or may not be statistical 2014-09-23T08:46:57Z faheem__1: White_Flame: what is the background? CS? 2014-09-23T08:47:18Z White_Flame: reverse engineering binaries 2014-09-23T08:47:34Z faheem__1: White_Flame: oh. is that something that comes up a lot? 2014-09-23T08:47:45Z White_Flame: for me? yes :) 2014-09-23T08:47:58Z faheem__1: White_Flame: ok. :-) 2014-09-23T08:48:05Z stassats: i'm forward engineering binaries 2014-09-23T08:48:33Z White_Flame: I'm forwarding engineering reverse engineering tools 2014-09-23T08:48:38Z White_Flame: -ing 2014-09-23T08:49:50Z faheem__1: White_Flame: that's a confusing sentence. 2014-09-23T08:50:05Z zacharias joined #lisp 2014-09-23T08:50:31Z nimiux joined #lisp 2014-09-23T08:50:36Z White_Flame: as is https://en.wikipedia.org/wiki/Buffalo_buffalo 2014-09-23T08:51:04Z nimiux is now known as Guest71359 2014-09-23T08:51:53Z Guest71359 quit (Client Quit) 2014-09-23T08:52:11Z nimiux_ joined #lisp 2014-09-23T08:53:32Z theos quit (Ping timeout: 245 seconds) 2014-09-23T08:53:34Z nimiux_ quit (Client Quit) 2014-09-23T08:53:53Z nimiux_ joined #lisp 2014-09-23T08:53:53Z nimiux_ quit (Changing host) 2014-09-23T08:53:53Z nimiux_ joined #lisp 2014-09-23T09:00:30Z faheem__1: i wonder how many people on the planet are using CL to do statistics. probably not many 2014-09-23T09:00:43Z stassats: 4.5 2014-09-23T09:01:20Z Cymew: What's the magin of error on those 4.5? 2014-09-23T09:01:29Z stassats: ±5 2014-09-23T09:01:49Z Cymew: We need to be precise when doing statistics... 2014-09-23T09:02:24Z faheem__1 wonders what half a statistican looks like. 2014-09-23T09:03:14Z nimiux_ is now known as nimiux 2014-09-23T09:03:20Z White_Flame: he'd only have 1.1 kids instead of 2.2 2014-09-23T09:03:49Z faheem__1: Tamas Papp does statistics, or something like it. Though he is technically an economist. 2014-09-23T09:03:57Z faheem__1: does Tamas ever show up here? 2014-09-23T09:05:02Z harish joined #lisp 2014-09-23T09:05:08Z jusss joined #lisp 2014-09-23T09:14:36Z schaueho joined #lisp 2014-09-23T09:16:58Z bit` quit (Ping timeout: 258 seconds) 2014-09-23T09:17:58Z theos joined #lisp 2014-09-23T09:20:48Z attila_lendvai joined #lisp 2014-09-23T09:21:04Z attila_lendvai quit (Changing host) 2014-09-23T09:21:04Z attila_lendvai joined #lisp 2014-09-23T09:24:32Z Harag quit (Ping timeout: 260 seconds) 2014-09-23T09:29:44Z Harag joined #lisp 2014-09-23T09:30:05Z jtza8 joined #lisp 2014-09-23T09:32:00Z bit` joined #lisp 2014-09-23T09:39:44Z jusss quit (Quit: ERC Version 5.2 (IRC client for Emacs)) 2014-09-23T09:46:08Z `JRG joined #lisp 2014-09-23T09:46:46Z kcj quit (Read error: Connection reset by peer) 2014-09-23T09:48:22Z gravicappa joined #lisp 2014-09-23T09:49:47Z tessier quit (Read error: Connection reset by peer) 2014-09-23T09:50:04Z tessier joined #lisp 2014-09-23T09:52:05Z xishvai: is there a function like `random-float` ? 2014-09-23T09:52:17Z stassats: random 2014-09-23T09:52:35Z xishvai: i want to generate float number 2014-09-23T09:52:42Z stassats: sure 2014-09-23T09:52:50Z xishvai: how to use it? 2014-09-23T09:52:57Z stassats: clhs random 2014-09-23T09:52:57Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_random.htm 2014-09-23T09:53:19Z dim: CL-USER> (random 100.0d0) 2014-09-23T09:53:19Z dim: 82.67519197788647d0 2014-09-23T09:54:01Z xishvai: cool. i am a newbie. thanks a lot. 2014-09-23T09:54:11Z Grue`: depends on what distribution you need 2014-09-23T09:54:15Z stassats: dim: and that tells me that you are using sbcl 2014-09-23T09:54:39Z dim: stassats: really? 2014-09-23T09:55:17Z dim: I'm using SBCL almost only nowadays and a bit of CCL for compat checks and because it's the only one without any problem whatsoever with pgloader 2014-09-23T09:55:34Z stassats: it is the fourth number from the uninitiatilized seed 2014-09-23T09:55:36Z dim: I would use only CCL but: a. it's not in debian and b. it's still quite slower than SBCL 2014-09-23T09:55:47Z dim: stassats: ahah ;-) 2014-09-23T09:55:48Z stassats: (loop for i to 3 collect (random 100.0d0)) => (62.944711253834164d0 81.15843153081796d0 25.397393118645773d0 82.67519197788647d0) 2014-09-23T09:56:16Z dim: I like that in CL by default random is ok for simulation purposes 2014-09-23T09:57:03Z stassats: without a default value, random-state can be saved into a file 2014-09-23T09:58:08Z stassats: xishvai: the bits above should be relevant for you 2014-09-23T09:58:17Z stassats: don't use RANDOM without first creating a new random-state 2014-09-23T09:59:34Z pt1 joined #lisp 2014-09-23T10:02:01Z mr-foobar quit (Ping timeout: 272 seconds) 2014-09-23T10:04:48Z mr-foobar joined #lisp 2014-09-23T10:06:20Z xishvai: stassats: like the `seed` function in C? 2014-09-23T10:11:34Z stassats: clhs make-random-state 2014-09-23T10:11:35Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_mk_rnd.htm 2014-09-23T10:11:40Z stassats: clhs *r-s* 2014-09-23T10:11:41Z specbot: Matches: *random-state*, *read-suppress*. 2014-09-23T10:11:46Z stassats: clhs *random-state* 2014-09-23T10:11:46Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_rnd_st.htm 2014-09-23T10:12:05Z stassats: (setf *random-state* (make-random-state t)) or binding *random-state* will do 2014-09-23T10:16:02Z xishvai: OK. thx! 2014-09-23T10:19:45Z dmiles_afk quit (Read error: Connection reset by peer) 2014-09-23T10:20:05Z dmiles_afk joined #lisp 2014-09-23T10:21:14Z zeebrah joined #lisp 2014-09-23T10:28:32Z mr-foobar quit (Ping timeout: 245 seconds) 2014-09-23T10:29:45Z stepnem joined #lisp 2014-09-23T10:29:50Z kuzy000_ joined #lisp 2014-09-23T10:37:51Z Shinmera joined #lisp 2014-09-23T10:40:41Z TomRS joined #lisp 2014-09-23T10:43:54Z pt1 quit (Remote host closed the connection) 2014-09-23T10:44:36Z pt1 joined #lisp 2014-09-23T10:45:21Z pt1 quit (Remote host closed the connection) 2014-09-23T10:52:32Z faheem__1: good article, in case you have not already seen it -> http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/2/17_Macintosh_Common_Lisp.html 2014-09-23T10:52:57Z faheem__1: i thought CCL was the same as MCL, but apparently not, at least according to this article. 2014-09-23T10:53:25Z stassats: ccl is the same as openmcl 2014-09-23T10:54:02Z vinleod joined #lisp 2014-09-23T10:54:34Z faheem__1: stassats: are openmcl and mcl different 2014-09-23T10:54:36Z faheem__1: ? 2014-09-23T10:54:38Z stassats: yes 2014-09-23T10:55:18Z faheem__1: stassats: ok 2014-09-23T10:55:32Z aap_ quit (Ping timeout: 260 seconds) 2014-09-23T10:58:56Z Bike quit (Read error: Connection reset by peer) 2014-09-23T10:59:49Z aap_ joined #lisp 2014-09-23T11:01:39Z TomRS quit (Remote host closed the connection) 2014-09-23T11:04:00Z TomRS joined #lisp 2014-09-23T11:05:05Z TomRS quit (Remote host closed the connection) 2014-09-23T11:07:28Z TomRS joined #lisp 2014-09-23T11:08:09Z Longlius quit (Remote host closed the connection) 2014-09-23T11:10:06Z edgar-rft quit (Quit: continuation finished by death) 2014-09-23T11:14:16Z knob joined #lisp 2014-09-23T11:16:20Z xishvai: is there a way to get help in REPL like `dir` in Python? 2014-09-23T11:17:00Z stassats: clhs documentation 2014-09-23T11:17:00Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_docume.htm 2014-09-23T11:17:05Z stassats: clhs apropos 2014-09-23T11:17:05Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_apropo.htm 2014-09-23T11:17:31Z vanila quit (Remote host closed the connection) 2014-09-23T11:18:57Z Harag quit (Ping timeout: 245 seconds) 2014-09-23T11:19:09Z Harag joined #lisp 2014-09-23T11:19:45Z schoppenhauer quit (Quit: Adé) 2014-09-23T11:20:37Z Bazzie quit (Ping timeout: 245 seconds) 2014-09-23T11:24:10Z Harag1 joined #lisp 2014-09-23T11:25:52Z Harag quit (Ping timeout: 240 seconds) 2014-09-23T11:28:59Z Cymew quit (Quit: Konversation terminated!) 2014-09-23T11:28:59Z Adlai: pjb: "method combinations are monads" <- what? 2014-09-23T11:29:37Z stassats: are method combinations burritos, though? 2014-09-23T11:29:54Z karswell` joined #lisp 2014-09-23T11:30:34Z echo-area quit (Remote host closed the connection) 2014-09-23T11:30:37Z ndrei joined #lisp 2014-09-23T11:31:21Z nell quit (Quit: WeeChat 1.1-dev) 2014-09-23T11:36:13Z Cymew joined #lisp 2014-09-23T11:37:29Z shka`: lol 2014-09-23T11:43:25Z schoppenhauer joined #lisp 2014-09-23T11:43:53Z drmeister joined #lisp 2014-09-23T11:45:52Z Harag1 quit (Ping timeout: 240 seconds) 2014-09-23T11:46:13Z xishvai: In js: 2014-09-23T11:46:13Z xishvai: function f1() { 2014-09-23T11:46:13Z xishvai: console.log("f1"); 2014-09-23T11:46:13Z xishvai: } 2014-09-23T11:46:13Z xishvai: var f2=f1; 2014-09-23T11:46:14Z xishvai: f2(); 2014-09-23T11:46:14Z xishvai: How to do the same thing in Lisp? 2014-09-23T11:48:29Z minion quit (Remote host closed the connection) 2014-09-23T11:48:36Z minion joined #lisp 2014-09-23T11:48:48Z mal_: (defun f1 () (format *terminal-io* "f1")) (setf (symbol-function 'f2) (symbol-function 'f1)) 2014-09-23T11:48:55Z mal_: not that that is a very good idea 2014-09-23T11:49:09Z Grue`: (flet ((f2 (&rest args) (apply #'f1 args))) 2014-09-23T11:49:49Z Grue`: if not at toplevel 2014-09-23T11:51:11Z mal_: or there's a solution with symbol-macrolet or define-symbol-macro 2014-09-23T11:51:27Z mal_: it all depends on what's the purpose of that construct 2014-09-23T11:52:13Z jtza8 quit (Ping timeout: 272 seconds) 2014-09-23T11:52:50Z Grue`: also you can assign (function f1) [or #'f1] to variable and then funcall that variable 2014-09-23T11:52:51Z Ralt quit (Ping timeout: 272 seconds) 2014-09-23T11:55:00Z xishvai: it's too hard for me now. i take a note. thx~ 2014-09-23T11:56:04Z wizzo quit (Quit: Textual IRC Client: www.textualapp.com) 2014-09-23T11:56:29Z mal_: what are you trying to do exactly? 2014-09-23T12:01:11Z mr-foobar joined #lisp 2014-09-23T12:01:19Z wizzo joined #lisp 2014-09-23T12:01:30Z wasamasa: writing JS in CL clearly 2014-09-23T12:03:26Z jegaxd26 joined #lisp 2014-09-23T12:07:41Z Grue`: don't be discouraged by not understanding the separate function namespace, it's a tradeoff that almost no other language engages in, so it's a common hurdle when learning 2014-09-23T12:08:55Z wizzo_ joined #lisp 2014-09-23T12:10:00Z wizzo quit (Read error: Connection reset by peer) 2014-09-23T12:10:43Z jtza8 joined #lisp 2014-09-23T12:11:08Z Ralt joined #lisp 2014-09-23T12:13:58Z jtza8 quit (Remote host closed the connection) 2014-09-23T12:15:34Z pt1 joined #lisp 2014-09-23T12:15:35Z yrk joined #lisp 2014-09-23T12:15:57Z oudeis joined #lisp 2014-09-23T12:16:41Z ndrei quit (Ping timeout: 272 seconds) 2014-09-23T12:16:50Z yrk quit (Changing host) 2014-09-23T12:16:50Z yrk joined #lisp 2014-09-23T12:17:59Z pt1 quit (Remote host closed the connection) 2014-09-23T12:18:13Z ndrei joined #lisp 2014-09-23T12:22:24Z gendl_ joined #lisp 2014-09-23T12:22:43Z Jubb joined #lisp 2014-09-23T12:25:51Z gendl_ quit (Client Quit) 2014-09-23T12:27:29Z zeebrah quit (Ping timeout: 260 seconds) 2014-09-23T12:29:45Z przl joined #lisp 2014-09-23T12:30:02Z zeebrah joined #lisp 2014-09-23T12:32:27Z rme joined #lisp 2014-09-23T12:33:36Z ndrei quit (Quit: Lost terminal) 2014-09-23T12:33:48Z ndrei joined #lisp 2014-09-23T12:34:04Z nyef joined #lisp 2014-09-23T12:34:05Z drmeister quit (Remote host closed the connection) 2014-09-23T12:34:09Z Adlai: stassats: method combinations are the tortilla that binds it all together 2014-09-23T12:34:21Z nyef: G'morning all. 2014-09-23T12:37:46Z vanila joined #lisp 2014-09-23T12:38:46Z nyef: minion: advice on weird? 2014-09-23T12:38:46Z minion: #11938: If you have `some weird error', the problem is probably with your frobnitzer. 2014-09-23T12:38:46Z nyef: Ah, right. 2014-09-23T12:45:21Z Beetny quit (Ping timeout: 246 seconds) 2014-09-23T12:51:40Z juansnn left #lisp 2014-09-23T12:53:56Z EvW joined #lisp 2014-09-23T12:54:27Z przl quit (Ping timeout: 245 seconds) 2014-09-23T12:54:52Z drmeister joined #lisp 2014-09-23T12:55:01Z billstclair quit (Ping timeout: 260 seconds) 2014-09-23T12:57:29Z oudeis quit (Quit: This computer has gone to sleep) 2014-09-23T12:57:32Z dmiles_afk quit (Quit: Read error: 110 (Connection timed out)) 2014-09-23T12:57:53Z jkaye joined #lisp 2014-09-23T12:58:20Z przl joined #lisp 2014-09-23T13:02:44Z drmeister: So GCL isn't ANSI CL compliant - what is it missing? 2014-09-23T13:03:14Z stassats: a motivated maintainer? 2014-09-23T13:03:26Z drmeister: I read somewhere that it was missing load-time-form - how can that be? 2014-09-23T13:03:42Z stassats: itym load-time-value 2014-09-23T13:04:40Z drmeister: RIght - load-time-value - I need autocomplete. 2014-09-23T13:05:14Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-09-23T13:05:18Z Xach: drmeister: the relative abundance of high-quality and high-conformance implementations of CL is a recent phenomenon 2014-09-23T13:05:34Z Xach: you don't have to go back in time to find major bugs in things that people take for granted today 2014-09-23T13:05:42Z Xach: "too far back in time" 2014-09-23T13:06:12Z drmeister: I see 2014-09-23T13:06:50Z drmeister: The endless cycle of software life. 2014-09-23T13:08:46Z nyef: Xach: I think that you had it right the first time. There are still major bugs in things that people take for granted. 2014-09-23T13:09:08Z Xach: I am blinded by the optimism of the present 2014-09-23T13:09:09Z xishvai quit (Quit: xishvai) 2014-09-23T13:12:04Z chitofan joined #lisp 2014-09-23T13:13:00Z mac_ified quit (Ping timeout: 246 seconds) 2014-09-23T13:14:20Z Zag joined #lisp 2014-09-23T13:14:23Z Soft quit (Quit: --yes) 2014-09-23T13:14:51Z drmeister: Interesting - I hardly ever commit clasp code to github on Tuesdays. Every other day, lots of commits, but not Tuesdays. 2014-09-23T13:16:24Z attila_lendvai quit (Quit: Leaving.) 2014-09-23T13:17:57Z Soft joined #lisp 2014-09-23T13:18:19Z vaporatorius joined #lisp 2014-09-23T13:18:25Z shka` quit (Ping timeout: 260 seconds) 2014-09-23T13:18:48Z BitPuffin joined #lisp 2014-09-23T13:20:07Z BitPuffin quit (Client Quit) 2014-09-23T13:20:22Z BitPuffin joined #lisp 2014-09-23T13:22:31Z drmeister quit (Read error: Connection reset by peer) 2014-09-23T13:22:34Z dlowe: Amusingly, we have GCL to thank for a nice suite of ANSI CL compliance tests. 2014-09-23T13:24:03Z Xach: sssssssort of 2014-09-23T13:26:38Z clop: i thought you could build gcl in some kind of ansi mode, but maybe that's still preliminary 2014-09-23T13:27:07Z shka` joined #lisp 2014-09-23T13:29:00Z normanrichards quit 2014-09-23T13:29:51Z dlowe: I'm not sure the test suite would have been written otherwise 2014-09-23T13:31:55Z oudeis joined #lisp 2014-09-23T13:32:11Z drmeiste_ quit (Remote host closed the connection) 2014-09-23T13:32:25Z drmeister joined #lisp 2014-09-23T13:35:51Z drmeiste_ joined #lisp 2014-09-23T13:36:32Z przl quit (Ping timeout: 260 seconds) 2014-09-23T13:36:34Z ggole joined #lisp 2014-09-23T13:38:02Z oleo joined #lisp 2014-09-23T13:43:40Z ndrei quit (Quit: Lost terminal) 2014-09-23T13:43:51Z ndrei joined #lisp 2014-09-23T13:44:35Z ltbarcly joined #lisp 2014-09-23T13:46:43Z drmeiste_ quit (Read error: No route to host) 2014-09-23T13:48:06Z drmeiste_ joined #lisp 2014-09-23T13:48:57Z stacksmith: Xach, when you do a monthly quicklisp update for an included project, do you just grab whatever version happens to be in the repo? 2014-09-23T13:51:25Z cmack joined #lisp 2014-09-23T13:53:15Z Xach: stacksmith: It depends on how the project is added. For a project pulled from git, it is whatever is the most recent thing. 2014-09-23T13:53:35Z Xach: stacksmith: Some projects make releases in the form of a tar.gz file with a version. Sometimes I grab those. 2014-09-23T13:53:54Z eudoxia joined #lisp 2014-09-23T13:54:21Z normanrichards joined #lisp 2014-09-23T13:55:14Z stacksmith: Xach: scary! 2014-09-23T13:55:44Z H4ns: if i type M-. on uiop/os:hostname, slime prints an error message "ASDF is a nickname for the package ASDF/INTERFACE" and sends me to an empty file. is something wrong with my configuration? 2014-09-23T13:55:54Z Xach: stacksmith: What would you prefer? 2014-09-23T13:56:53Z hoco4ku left #lisp 2014-09-23T13:57:03Z przl joined #lisp 2014-09-23T13:57:24Z stacksmith: Xach: releases make sense, but grabbing the git repo has a good chance of catching me with pants down. Now that I know, I can develop in a branch and keep the master safe, I suppose. Is there a date when this happens? 2014-09-23T13:57:31Z moore33 joined #lisp 2014-09-23T13:58:03Z Xach: I can also pull from a branch. 2014-09-23T13:58:08Z Xach: Or a tag, or something. 2014-09-23T13:58:16Z Xach: stacksmith: I try to release on the first weekend of each month, but it doesn't always work out like that. 2014-09-23T13:58:42Z Xach: I like releases a lot, especially when they're at an url like http://whatever.com/whatever-latest.tgz 2014-09-23T13:58:51Z Xach: Not a ton of people bother to do that, though. 2014-09-23T13:58:58Z oudeis quit (Ping timeout: 250 seconds) 2014-09-23T13:59:00Z stacksmith: Xach: not criticizing, just trying to figure it out. 2014-09-23T14:00:04Z H4ns: what would be a good way to determine the host name of the local host, in sbcl? 2014-09-23T14:00:07Z xristos: stacksmith: git repo is better i think, you have a lot more freedom to organize things and don't really miss anything 2014-09-23T14:00:18Z xristos: you can use tags/branches to do releases 2014-09-23T14:02:04Z ndrei quit (Quit: Lost terminal) 2014-09-23T14:02:07Z stacksmith: Xach, is there any automation working or planned for maintaining one's projects? It would sort of make sense if we could push updates to some big quicklisp repo without bugging you... 2014-09-23T14:02:12Z bit` quit (Ping timeout: 260 seconds) 2014-09-23T14:02:19Z ndrei joined #lisp 2014-09-23T14:02:35Z H4ns: (sb-unix:unix-gethostname) will do. 2014-09-23T14:02:50Z Xach: stacksmith: What kind of updates? I normally get updates automatically already. 2014-09-23T14:03:10Z stassats: no sb-unix!~ 2014-09-23T14:03:16Z Xach: H4ns: fsvo "good". sb-unix docstring starts with "private" 2014-09-23T14:03:21Z alexherbo2 quit (Quit: WeeChat 1.0) 2014-09-23T14:03:55Z H4ns: sb-unix:gethostname is exported, that's why i thought it would be good. 2014-09-23T14:03:58Z H4ns: alternatives? 2014-09-23T14:04:14Z Xach: you have to peek at the package docstring on sbcl sometimes 2014-09-23T14:04:33Z H4ns: (sb-posix:getenv "HOSTNAME") ? 2014-09-23T14:04:34Z stassats: it's exported for the sake of sbcl itself 2014-09-23T14:04:43Z InfusoElAmbulant joined #lisp 2014-09-23T14:04:47Z stassats: many things in sb-c or are exported too 2014-09-23T14:05:17Z przl quit (Ping timeout: 245 seconds) 2014-09-23T14:05:53Z przl joined #lisp 2014-09-23T14:06:00Z moore33: On the subject of sbcl, is there a public interface to a timer with higher resolution than get-internal-real-time? 2014-09-23T14:06:16Z rvirding_ quit (Ping timeout: 272 seconds) 2014-09-23T14:06:43Z rvirding_ joined #lisp 2014-09-23T14:07:12Z stassats: SB-EXT:GET-TIME-OF-DAY ? 2014-09-23T14:08:09Z blakbunnie27 quit (Ping timeout: 272 seconds) 2014-09-23T14:08:23Z stardiviner quit (Quit: my website: http://stardiviner.dyndns-blog.com/) 2014-09-23T14:08:45Z jkaye quit (Remote host closed the connection) 2014-09-23T14:09:17Z jkaye joined #lisp 2014-09-23T14:09:20Z moore33: stassats: That would be fine. Thanks. 2014-09-23T14:09:38Z stassats: which resolution does get-internal-real-time have? 2014-09-23T14:09:50Z stassats: there should be something on linux for nano-seconds also 2014-09-23T14:10:04Z Xach: 1000Hz 2014-09-23T14:10:07Z stassats: clock_gettime 2014-09-23T14:10:18Z blakbunnie27 joined #lisp 2014-09-23T14:10:29Z oudeis joined #lisp 2014-09-23T14:10:37Z stassats: so, milliseconds, get-time-of-day is micro 2014-09-23T14:10:49Z moore33: IIRC, ccl's get-internal-real-time returns microseconds or nanoseconds. 2014-09-23T14:11:09Z stassats: internal-time-units-per-second => 1000000 on ccl 2014-09-23T14:11:43Z moore33: yes 2014-09-23T14:12:09Z stassats: i bet it isn't actually so fine grained on windows 2014-09-23T14:13:40Z jkaye quit (Ping timeout: 258 seconds) 2014-09-23T14:13:40Z przl_ joined #lisp 2014-09-23T14:13:56Z clop: there's also (ccl::rdtsc), but that's probably a bad idea :) 2014-09-23T14:14:06Z rme: (ccl:current-time-in-nanoseconds) gives you the number of nanoseconds since some arbitrary time in the past (probably system boot). 2014-09-23T14:14:51Z ndrei quit (Remote host closed the connection) 2014-09-23T14:15:42Z stassats: does it use clock_gettime? 2014-09-23T14:15:52Z bit` joined #lisp 2014-09-23T14:16:00Z ltbarcly quit (Quit: Computer has gone to sleep.) 2014-09-23T14:16:18Z przl quit (Ping timeout: 250 seconds) 2014-09-23T14:16:34Z rme: stassats: where it's available, yes. 2014-09-23T14:20:11Z stassats: time is hard 2014-09-23T14:21:44Z ndrei joined #lisp 2014-09-23T14:23:36Z posterdati300 quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2014-09-23T14:24:53Z shka`` joined #lisp 2014-09-23T14:25:23Z dlowe: huh. local-time calls gettimeofday on ccl 2014-09-23T14:25:34Z TomRS` joined #lisp 2014-09-23T14:26:28Z ndrei quit (Ping timeout: 260 seconds) 2014-09-23T14:26:40Z normanrichards quit 2014-09-23T14:26:54Z moore33: rme: By the way, ccl on windows is really sweet. 2014-09-23T14:27:00Z dlowe: it'd be nice if it could use clock_gettime everywhere it's available, but that would mean pulling in CFFI or something. 2014-09-23T14:27:05Z shka` quit (Ping timeout: 258 seconds) 2014-09-23T14:27:17Z dlowe: Maybe it could be provided as an extension. 2014-09-23T14:27:29Z TomRS quit (Ping timeout: 260 seconds) 2014-09-23T14:27:34Z rme: moore33: Thanks. Glad it's working well for you. 2014-09-23T14:27:53Z dlowe: Lately, I've found myself using smaller system files to provide options that require dependencies. 2014-09-23T14:27:56Z oudeis quit (Ping timeout: 244 seconds) 2014-09-23T14:28:14Z TomRS`` joined #lisp 2014-09-23T14:29:46Z oudeis joined #lisp 2014-09-23T14:30:19Z TomRS` quit (Ping timeout: 272 seconds) 2014-09-23T14:30:47Z moore33 quit 2014-09-23T14:31:17Z billstclair joined #lisp 2014-09-23T14:31:17Z billstclair quit (Changing host) 2014-09-23T14:31:17Z billstclair joined #lisp 2014-09-23T14:32:51Z zeebrah quit (Ping timeout: 272 seconds) 2014-09-23T14:33:11Z drmeiste_ quit (Read error: Connection reset by peer) 2014-09-23T14:33:27Z drmeiste_ joined #lisp 2014-09-23T14:34:50Z TomRS``` joined #lisp 2014-09-23T14:34:52Z gravicappa quit (Ping timeout: 260 seconds) 2014-09-23T14:35:05Z antonv joined #lisp 2014-09-23T14:35:16Z yati joined #lisp 2014-09-23T14:35:36Z anaumov quit (Remote host closed the connection) 2014-09-23T14:35:48Z EvW quit (Quit: EvW) 2014-09-23T14:36:01Z zacharias quit (Ping timeout: 272 seconds) 2014-09-23T14:36:52Z kobain joined #lisp 2014-09-23T14:37:25Z TomRS```` joined #lisp 2014-09-23T14:37:34Z jkaye joined #lisp 2014-09-23T14:37:37Z varjag quit (Quit: Leaving) 2014-09-23T14:38:04Z attila_lendvai joined #lisp 2014-09-23T14:38:13Z antonv: Hi all 2014-09-23T14:38:46Z antonv: I am using vecto to draw simple image, and have problem, that the lines I draw in the image are half-transparent 2014-09-23T14:38:47Z TomRS`` quit (Ping timeout: 272 seconds) 2014-09-23T14:38:58Z antonv: Does anyone know how to solve this? 2014-09-23T14:39:18Z Xach: antonv: You could align them to the pixel grid differently. 2014-09-23T14:39:34Z stassats: draw them at half positions or with half widths 2014-09-23T14:39:46Z Xach: antonv: if you use integral coordinates and draw a horizontal line, they are sampled across two rows/columns of pixels. 2014-09-23T14:39:55Z Xach: "horizontal or vertical" line 2014-09-23T14:40:10Z chitofan quit (Ping timeout: 246 seconds) 2014-09-23T14:40:57Z TomRS``` quit (Ping timeout: 260 seconds) 2014-09-23T14:41:14Z antonv: ok, thanks, trying to understand this... 2014-09-23T14:42:32Z antonv: got it working 2014-09-23T14:43:00Z antonv: and that's why it also took 2 pixes withs, while I specified 1 pixel 2014-09-23T14:44:08Z Xach: antonv: it filled 50% of two pixels, summing to 100% of one! (sort of) 2014-09-23T14:44:44Z antonv: yes, I understand now 2014-09-23T14:45:42Z stassats: drawing is hard 2014-09-23T14:45:44Z rme: Curse those non-pixel based drawing models! 2014-09-23T14:46:32Z Xach: I sometimes think about adding some layer to vecto that does pixel line DWIM 2014-09-23T14:47:44Z dlowe: snap-to-pixel-grid 2014-09-23T14:48:19Z rme: antonv: Instead of trying to stroke 1 pixel lines, I find that it's often better to draw 1 pixel wide rectangles. 2014-09-23T14:48:29Z rme: For horizontal and vertial lines, of course. 2014-09-23T14:48:46Z Xach: that is a good approach 2014-09-23T14:48:48Z antonv: rme: thanks, will try this 2014-09-23T14:48:53Z rme: Make theat fill 1 pixel wide rectangls. 2014-09-23T14:49:27Z stassats: well, aren't the lines a misnomer anyway, since a true line doesn't have any width 2014-09-23T14:49:43Z Xach: they're paths 2014-09-23T14:49:45Z antonv: because so far I only got 2 pixel lines OK, and was trying to 1 pixel lines were my problem 2014-09-23T14:52:03Z shka`` quit (Ping timeout: 246 seconds) 2014-09-23T14:52:50Z Krystof: http://mjg59.dreamwidth.org/8705.html is sort-of relevant 2014-09-23T14:53:09Z Krystof: also this comment: http://mjg59.dreamwidth.org/8705.html?thread=254465 2014-09-23T14:53:13Z antonv: the rectangles solution works great! 2014-09-23T14:53:26Z pranavrc quit 2014-09-23T14:54:00Z normanrichards joined #lisp 2014-09-23T14:54:00Z normanrichards quit (Read error: Connection reset by peer) 2014-09-23T14:54:03Z rme: I used the rectangles techique for the MIDI display in Opusmodus, so I know it works. :-) 2014-09-23T14:55:07Z Xach: alvy ray smith wrote about sampling and pixels. the pdf reference manual discusses it too. both had some influence on vecto. 2014-09-23T14:55:40Z rme: Yeah, every time I write "pixel", I hear Alvy Ray Smith yelling at me. 2014-09-23T14:55:48Z wasamasa: rme: is opusmodus your creation? 2014-09-23T14:56:01Z rme: wasamasa: I did the user interface. 2014-09-23T14:56:15Z Xach: I hear he only gets mad when you talk about them as little squares :) 2014-09-23T14:56:22Z rme: It was work for a client. 2014-09-23T14:56:37Z wasamasa: rme: I'm mostly curious what implementation it's using 2014-09-23T14:56:45Z rme: wasamasa: ccl 2014-09-23T14:56:50Z Shinmera: I wish I could try Opusmodus, but alas I don't own a mac. 2014-09-23T14:57:18Z eudoxia: i guessed CCL because it was made by Clozure Associates 2014-09-23T14:58:32Z rme: Opusmodus is not made by Clozure Associates. We did work on it for a client, though. 2014-09-23T14:59:21Z fikusz quit (Quit: Leaving) 2014-09-23T14:59:36Z wasamasa: rme: since I found out later lisp dumps are very different from typical executables one would expect 2014-09-23T15:00:42Z wasamasa: rme: read: larger 2014-09-23T15:02:02Z oudeis quit (Ping timeout: 244 seconds) 2014-09-23T15:02:14Z TomRS```` quit (Ping timeout: 250 seconds) 2014-09-23T15:02:16Z H4ns: wasamasa: i never expect small lisp executables. 2014-09-23T15:02:26Z stassats: that's not universally true 2014-09-23T15:02:36Z H4ns: wasamasa: maybe you should not write "one" but "my" and then adjust your expectations :) 2014-09-23T15:03:56Z Cymew quit (Quit: Konversation terminated!) 2014-09-23T15:04:09Z rme: wasamasa: I have a little slide show application written in CCL that's in the Mac App Store. It's 47 MB. 2014-09-23T15:04:10Z Cymew joined #lisp 2014-09-23T15:04:33Z Karl_Dscc joined #lisp 2014-09-23T15:04:57Z wasamasa: at least the big lisp applications don't get a lot bigger than the small ones regarding the dump size 2014-09-23T15:06:45Z schjetne: how does that work for the proprietary compilers? 2014-09-23T15:06:52Z hitecnologys quit (Ping timeout: 240 seconds) 2014-09-23T15:07:05Z Xach: They all have copious documentation on the topic. 2014-09-23T15:07:20Z schjetne: I don't suppose I could just hook into a random program built with, say LispWorks and essentially have LispWorks at no charge? 2014-09-23T15:07:37Z schjetne: not that I'm interested in using proprietary Lisp implementations 2014-09-23T15:07:37Z H4ns: schjetne: wow, terrific idea! 2014-09-23T15:07:39Z Xach: schjetne: They work out license deals for that sort of thing. 2014-09-23T15:08:01Z wasamasa: schjetne: I suppose they just make you sign something to sue you if it would matter 2014-09-23T15:08:02Z ndrei joined #lisp 2014-09-23T15:08:25Z schjetne: I guess it would be meaningless to try to solve with DRM 2014-09-23T15:08:27Z wasamasa: schjetne: besides, wouldn't you just have the runtime? 2014-09-23T15:09:12Z schjetne: I don't know, I don't really distribute binaries 2014-09-23T15:09:33Z Xach: There was an amusing story from Gensym at ILC in Reno, where a space agency had an expired license for G2 and had to be rushed a new hardware dongle some short period before a launch. 2014-09-23T15:09:53Z yrk quit (Ping timeout: 260 seconds) 2014-09-23T15:10:14Z eudoxia quit (Quit: Lost terminal) 2014-09-23T15:11:19Z oudeis joined #lisp 2014-09-23T15:11:26Z hitecnologys joined #lisp 2014-09-23T15:13:30Z schjetne: Xach: did they have to launch the dongle into space? If so, that would put any other DRM scheme to shame. 2014-09-23T15:14:08Z Xach: It was plugged into some control computer. 2014-09-23T15:14:26Z Cymew quit (Ping timeout: 244 seconds) 2014-09-23T15:17:50Z mac_ified joined #lisp 2014-09-23T15:22:29Z Bike joined #lisp 2014-09-23T15:25:58Z lambdAnon joined #lisp 2014-09-23T15:26:23Z marsbot is now known as marsam 2014-09-23T15:26:30Z oudeis quit (Quit: This computer has gone to sleep) 2014-09-23T15:26:31Z moore33 joined #lisp 2014-09-23T15:26:55Z mr-foobar quit (Quit: Leaving...) 2014-09-23T15:27:17Z fikusz joined #lisp 2014-09-23T15:28:58Z mvilleneuve quit (Quit: This computer has gone to sleep) 2014-09-23T15:29:17Z mr-foobar joined #lisp 2014-09-23T15:29:39Z varjag_ joined #lisp 2014-09-23T15:29:46Z pgomes quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2014-09-23T15:30:11Z bambams_ joined #lisp 2014-09-23T15:30:31Z Cymew joined #lisp 2014-09-23T15:34:17Z mac_ified quit 2014-09-23T15:34:45Z Cymew quit (Ping timeout: 246 seconds) 2014-09-23T15:36:02Z jordonbiondo joined #lisp 2014-09-23T15:39:20Z mac_ified joined #lisp 2014-09-23T15:41:04Z p_l: AFAIK LW doesn't do extra special licensing for embedding LW in application, but you're not going to get stuff that wasn't included in the application that embedded LW or was built with LW 2014-09-23T15:41:17Z p_l: Franz got a varied and headache-inducing licensing scheme 2014-09-23T15:45:33Z raymondillo joined #lisp 2014-09-23T15:45:48Z raymondillo left #lisp 2014-09-23T15:46:36Z pt1 joined #lisp 2014-09-23T15:47:25Z vanila quit (Remote host closed the connection) 2014-09-23T15:50:28Z vlnx quit (Ping timeout: 260 seconds) 2014-09-23T15:50:49Z w37 joined #lisp 2014-09-23T15:51:20Z moore33 quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2014-09-23T15:53:16Z DGASAU quit (Remote host closed the connection) 2014-09-23T15:55:41Z DGASAU joined #lisp 2014-09-23T15:57:27Z vlnx joined #lisp 2014-09-23T16:02:07Z beach joined #lisp 2014-09-23T16:02:22Z beach: Good evening everyone! 2014-09-23T16:03:22Z nyef: Hello beach. 2014-09-23T16:06:21Z beach: nyef: Thanks for mentioning "interpreter" as a use case for a code walker. It made me think in more general terms. 2014-09-23T16:06:34Z drmeist__ joined #lisp 2014-09-23T16:06:39Z zophy joined #lisp 2014-09-23T16:07:05Z normanrichards joined #lisp 2014-09-23T16:07:05Z normanrichards quit (Read error: Connection reset by peer) 2014-09-23T16:07:39Z nyef: It just seemed such an obvious answer to the question "what parts of a typical implementation are already codewalkers?" 2014-09-23T16:08:08Z beach: Yes, you are right. 2014-09-23T16:09:02Z ehu quit (Ping timeout: 245 seconds) 2014-09-23T16:09:02Z beach: I just never think of interpreters because I wasn't planning to write one. As I said before, I was planning to just interpret MIR notation. But other implementations might want an interpreter based on my code walker. 2014-09-23T16:09:21Z w37 quit (Remote host closed the connection) 2014-09-23T16:09:50Z drmeiste_ quit (Ping timeout: 250 seconds) 2014-09-23T16:10:17Z posterdati300 joined #lisp 2014-09-23T16:13:39Z bobbysmith007 quit (Quit: Leaving.) 2014-09-23T16:17:13Z madrik quit (Quit: relocate) 2014-09-23T16:22:29Z Elench joined #lisp 2014-09-23T16:23:12Z yrk joined #lisp 2014-09-23T16:23:37Z yrk quit (Changing host) 2014-09-23T16:23:37Z yrk joined #lisp 2014-09-23T16:28:00Z drmeister: Dear software license aficionados: Here's the situation that Clasp will work under. MPS is GPL - I'll have to make clear that if you use Clasp with MPS then everything is GPL. If you use Clasp with Boehm then everything is LGPL. Clasp is LGPL largely because the ECL code Clasp depends on is LGPL. The Memory Pool System (MPS) that Clasp uses is GPL. The GPL on MPS is to force companies to talk to Ravenbrook about commercialization. Cla 2014-09-23T16:28:00Z drmeister: sp also supports the Boehm GC. Boehm has an MIT license. Clasp with Boehm should default to an LGPL license. 2014-09-23T16:28:31Z drmeister: I need to run to class but I thought I'd summarize this and gather any thoughts people might have on this. I'm leaving my IRC chat window open. 2014-09-23T16:28:35Z H4ns: #-windows-target 2014-09-23T16:28:36Z H4ns: (defun init-unix-sockaddr (addr path) 2014-09-23T16:28:36Z H4ns: (macrolet ((sockaddr_un-path-len () 2014-09-23T16:28:36Z H4ns: (/ (ensure-foreign-type-bits 2014-09-23T16:28:39Z H4ns: (foreign-record-field-type 2014-09-23T16:28:42Z H4ns: (%find-foreign-record-type-field 2014-09-23T16:28:45Z H4ns: (parse-foreign-type '(:struct :sockaddr_un)) :sun_path))) 2014-09-23T16:28:49Z H4ns: 8))) 2014-09-23T16:28:52Z H4ns: (let* ((name (defaulted-native-namestring path)) 2014-09-23T16:28:56Z H4ns: (namelen (length name)) 2014-09-23T16:28:59Z H4ns: (pathlen (sockaddr_un-path-len)) 2014-09-23T16:29:02Z H4ns: (copylen (min (1- pathlen) namelen))) 2014-09-23T16:29:05Z H4ns: (setf (pref addr :sockaddr_un.sun_family) #$AF_UNIX) 2014-09-23T16:29:08Z H4ns: (let* ((sun-path (pref addr :sockaddr_un.sun_path))) 2014-09-23T16:29:12Z H4ns: (dotimes (i copylen) 2014-09-23T16:29:12Z H4ns: (setf (%get-unsigned-byte sun-path i) 2014-09-23T16:29:14Z ChanServ has set mode +o Krystof 2014-09-23T16:29:15Z H4ns: (let* ((code (char-code (schar name i)))) 2014-09-23T16:29:16Z Grue`: woah dude use a paste 2014-09-23T16:29:18Z H4ns: (if (> code 255) 2014-09-23T16:29:20Z H4ns [~user@81.174.155.115] has been kicked from #lisp by Krystof (Kicked by Krystof) 2014-09-23T16:29:25Z |3b|: Grue`: probably accidental 2014-09-23T16:29:26Z Shinmera: Accidental pasting happens to the best of us. 2014-09-23T16:29:42Z drewc: (deftype good (time) t) (typep (get-universal-time) '(good morning)) => T 2014-09-23T16:30:12Z H4ns joined #lisp 2014-09-23T16:30:16Z |3b| thinks 'flood protection' in clients is a bad thing... if it is too much to paste quickly, pasting it slowly isn't an improvement :p 2014-09-23T16:30:21Z dlowe: drewc: that's a rigged judgement :) 2014-09-23T16:30:23Z zophy quit (Ping timeout: 244 seconds) 2014-09-23T16:30:28Z H4ns: sorry. at least it was lisp code. 2014-09-23T16:30:49Z ggole: Some paste protection just refuses to send anything over a few lines 2014-09-23T16:30:50Z dlowe: at least it wasn't sensitive code 2014-09-23T16:31:15Z H4ns: no, it was junk that i've completely removed. 2014-09-23T16:31:24Z H4ns: thankfully, emacs put it into my clipboard :) 2014-09-23T16:31:39Z H4ns: sometimes i wish clipboard content would expire after a minute or three. 2014-09-23T16:32:11Z Shinmera: I'd hope not. I even have a global clipboard history to make that as impossible as can be! 2014-09-23T16:32:28Z drewc: drmeister: if you can, use LLGPL where possible (or preferably PD, Unlicense, MIT or 2-clause BSD). Otherwise, GPL and LGPL lisp implementations are unusable for non GPL/LGPL'd code because the license is based on C and C libraries. 2014-09-23T16:32:33Z kristof joined #lisp 2014-09-23T16:33:07Z drewc: unusable == no distribution allowed by force of law. 2014-09-23T16:33:35Z przl_ quit (Ping timeout: 258 seconds) 2014-09-23T16:33:41Z drewc: dlowe: every time can be a good one! :) 2014-09-23T16:34:08Z LiamH joined #lisp 2014-09-23T16:34:26Z drewc: (shadow t) (defvar t nil) <--- wait ... define T :) 2014-09-23T16:34:55Z tajjada joined #lisp 2014-09-23T16:36:49Z nyef: Hello drewc. 2014-09-23T16:37:20Z Grue`: but all functions will return cl:t so this wouldn't work except in one package 2014-09-23T16:37:31Z EvW joined #lisp 2014-09-23T16:38:10Z drewc: nyef: greetings. How goes the struggle? 2014-09-23T16:38:59Z nyef: It's gone worse at times. (-: 2014-09-23T16:39:10Z kobain quit (Ping timeout: 244 seconds) 2014-09-23T16:40:12Z skbierm joined #lisp 2014-09-23T16:40:48Z zophy joined #lisp 2014-09-23T16:41:06Z gigetoo joined #lisp 2014-09-23T16:42:40Z `JRG quit (Ping timeout: 246 seconds) 2014-09-23T16:42:58Z skbierm1 joined #lisp 2014-09-23T16:44:22Z rme: H4ns: the interface database situation on FreeBSD is pretty bad. It may take me a day or two before I can sort it out. 2014-09-23T16:44:39Z H4ns: rme: oops, sorry. 2014-09-23T16:44:59Z H4ns: rme: there is quite some refactoring work left and i also have to work on the windows port, so there is no rush. 2014-09-23T16:45:05Z ltbarcly joined #lisp 2014-09-23T16:45:37Z rme: OK, good. 2014-09-23T16:45:42Z kristof quit (Ping timeout: 245 seconds) 2014-09-23T16:45:55Z zacharias joined #lisp 2014-09-23T16:45:59Z scharan quit (Quit: WeeChat 0.4.2) 2014-09-23T16:46:06Z zacharias quit (Changing host) 2014-09-23T16:46:06Z zacharias joined #lisp 2014-09-23T16:46:16Z klltkr joined #lisp 2014-09-23T16:46:32Z drewc: nyef: (not (typep *struggle* 'worst)) => T :) 2014-09-23T16:46:40Z loke_ quit (Quit: Leaving) 2014-09-23T16:48:30Z skbierm1 quit (Quit: Leaving.) 2014-09-23T16:48:36Z skbierm quit (Quit: Leaving.) 2014-09-23T16:48:41Z oleo__ joined #lisp 2014-09-23T16:48:41Z oleo is now known as Guest43395 2014-09-23T16:48:49Z kobain joined #lisp 2014-09-23T16:49:14Z oleo__ quit (Read error: Connection reset by peer) 2014-09-23T16:50:15Z kobain quit (Max SendQ exceeded) 2014-09-23T16:50:32Z kobain joined #lisp 2014-09-23T16:51:00Z Guest43395 quit (Ping timeout: 250 seconds) 2014-09-23T16:51:06Z kobain quit (Max SendQ exceeded) 2014-09-23T16:51:18Z oleo__ joined #lisp 2014-09-23T16:51:25Z kobain joined #lisp 2014-09-23T16:51:46Z oleo__ is now known as oleo 2014-09-23T16:54:47Z Hydan is now known as Hydan` 2014-09-23T16:55:46Z Hydan` is now known as Hydan 2014-09-23T17:01:12Z zacharias_ joined #lisp 2014-09-23T17:01:47Z hitecnologys_ joined #lisp 2014-09-23T17:02:13Z jasom: drewc: it's not possible to link MPS into a program and have it not be GPL. 2014-09-23T17:02:24Z ans: hey guise, how can i do something like ruby's method_missing in lisp? 2014-09-23T17:02:34Z jasom: drewc: well unless you get Ravenbrook to make an exception. 2014-09-23T17:03:09Z normanrichards joined #lisp 2014-09-23T17:03:09Z normanrichards quit (Read error: Connection reset by peer) 2014-09-23T17:03:16Z drewc: jasom: yeah, makes sense. But for non-forced GPL, it should be avoided, IMNSHO. 2014-09-23T17:03:52Z zacharias quit (Ping timeout: 240 seconds) 2014-09-23T17:04:41Z hitecnologys quit (Ping timeout: 260 seconds) 2014-09-23T17:04:42Z Xach: ans: since CL doesn't do message-passing-style OO, there's no direct mapping. 2014-09-23T17:04:53Z manfoo7`` joined #lisp 2014-09-23T17:04:55Z Xach: ans: but you can do things like NO-APPLICABLE-METHOD and some other things in the protocol. 2014-09-23T17:05:32Z ans: yea i came across no-applicable-method but that requires a generic method of that name to exist no? 2014-09-23T17:05:36Z dmiles_afk joined #lisp 2014-09-23T17:06:08Z shka joined #lisp 2014-09-23T17:06:19Z Xach: Yes. Like I said, there's no direct mapping. There's provision for many things to be handled later within the generic-function-style though. 2014-09-23T17:06:34Z jegaxd26 quit (Remote host closed the connection) 2014-09-23T17:06:52Z jasom: drewc: though it's possible that Ravenbrook would let the MPS be used with clasp as GPL and all parts not in clasp to be unencumbered, or something similar, they have ties to lisp/dylan IIRC. 2014-09-23T17:07:43Z jegaxd26 joined #lisp 2014-09-23T17:08:00Z jasom: ans: you could make your own class that has a send-message function and then do message-passing OO on top of that 2014-09-23T17:08:29Z drewc: jasom: and its possible that the USA and EU will stop increasing copyright terms so that the laws are on our side! Possibilities are endless ;) 2014-09-23T17:08:31Z Xach: It can be lonely living in a world of your own creation, though. 2014-09-23T17:09:02Z jasom: didn't flavors do that? 2014-09-23T17:09:14Z shka: Xach: good evening 2014-09-23T17:09:19Z shka: jasom: good evening 2014-09-23T17:09:20Z manfoo7` quit (Ping timeout: 260 seconds) 2014-09-23T17:09:43Z shka: drewc: good evening 2014-09-23T17:09:52Z shka: drewc: i'm afraid that it is not possible 2014-09-23T17:09:54Z Xach: shka: Please don't go through the whole list. 2014-09-23T17:10:10Z shka: yeah, this is lisp 2014-09-23T17:10:26Z ans: Xach, jasom: im doing a network manager lib over dbus. with introspection i get a list of all the objects, methods, and properties, so i can generate the whole thing, i was thinking of some kind of proxy objects, i had properties down via slot-missing, dont know what to do for methods. ideas? 2014-09-23T17:10:37Z shka: (mapcar users (lambda (x) (say x "good evening"))) 2014-09-23T17:10:44Z shka: aaaah 2014-09-23T17:10:47Z shka: wrong order 2014-09-23T17:10:49Z shka: fail 2014-09-23T17:11:24Z jasom: ans: if you did a defgeneric for every class, then no-applicable-method might apply 2014-09-23T17:11:28Z drewc: ans: (defgeneric message (object message &rest args)) ? 2014-09-23T17:11:44Z pt1 quit (Remote host closed the connection) 2014-09-23T17:11:52Z ltbarcly quit (Quit: Computer has gone to sleep.) 2014-09-23T17:12:13Z jasom: ans: s/for every class/for every method name/ 2014-09-23T17:12:29Z drewc: and (defmethod message ((foo string) (m (eql 'concatenate)) &rest args) ...) 2014-09-23T17:12:52Z Xach: ans: In that situation, it could make sense to invoke stuff by having a special function like (dbus-call ...) and then add a protocol for handling unhandled names. 2014-09-23T17:13:15Z ans: yea i was hoping to somehow get native looking method calls :p 2014-09-23T17:13:17Z ans: too bad 2014-09-23T17:13:17Z drewc: string.concatenate(otherstring) == (message string 'concatenate other-string) 2014-09-23T17:14:10Z drewc: native method calls in CL, or native to your outlook on method calls? 2014-09-23T17:14:22Z Xach: ans: you could construct a bunch of defun/defgeneric/defclass forms and eval them, or write them to a file and compile & load, too... 2014-09-23T17:14:32Z Xach: I can't say I'd recommend that without more info, though. 2014-09-23T17:14:37Z Xach: So many options! 2014-09-23T17:14:57Z ans: yea i suppose i could query the dbus interface first construct classes and everything from it 2014-09-23T17:15:07Z Grue`: could write a macro that transforms (.method ...args) into (call-method 'method args) 2014-09-23T17:15:46Z drewc might mention SHEEPLE at this point .... 2014-09-23T17:16:57Z marsam is now known as marsbot 2014-09-23T17:17:03Z drewc: it has defmessage and defreply, and objects that are based on prototypes.... 2014-09-23T17:17:43Z MoALTz joined #lisp 2014-09-23T17:18:07Z drewc: but what exactly is wrong with uses a generic function and a handler-bind/handler-case around the 'no generic/method' conditions exactly? 2014-09-23T17:18:39Z ans: have to have a list of available methods before hand 2014-09-23T17:19:02Z drewc: you are new to CL in general? 2014-09-23T17:19:37Z ans: somewhat 2014-09-23T17:19:45Z Pheequ0a joined #lisp 2014-09-23T17:20:17Z dlowe: I'm not sure it's a good idea to have native-looking method calls. Remote calls can fail in all sorts of ways that native calls can't 2014-09-23T17:20:18Z drewc: (defvar *available-methods* (list-available-methods)) <--- or : you need to be more specific about the requirements, and how much you know about CL, programming, etc. 2014-09-23T17:20:57Z delaunay joined #lisp 2014-09-23T17:21:07Z ans: drewc: i meant that would be a problem, that i would need such a list beforehand 2014-09-23T17:21:15Z ans: dont want such a list 2014-09-23T17:21:32Z drewc: why do you need such a list? 2014-09-23T17:21:49Z drewc: OR: what are the requirements exactly? 2014-09-23T17:21:50Z jasom: ans: for the most part, in lisp, there isn't anything you can't do at run-time you can't do at compile-time 2014-09-23T17:21:50Z ans: to define the generic methods 2014-09-23T17:22:06Z normanrichards joined #lisp 2014-09-23T17:22:07Z normanrichards quit (Read error: Connection reset by peer) 2014-09-23T17:22:23Z drewc: ans: why do you need to define it before you know what it is? 2014-09-23T17:23:22Z ans: nevermind 2014-09-23T17:23:31Z delaunay quit (Client Quit) 2014-09-23T17:23:53Z fragamus joined #lisp 2014-09-23T17:23:58Z Pheequ0a quit (Quit: WeeChat 0.3.8) 2014-09-23T17:24:15Z drewc: ans: It was a great album ... I even had the uncensored t-shirt of the cover some 22 years ago! 2014-09-23T17:24:28Z ilhami joined #lisp 2014-09-23T17:24:29Z ilhami: Hey 2014-09-23T17:24:43Z ilhami: what's special about your language? :D 2014-09-23T17:24:53Z ltbarcly joined #lisp 2014-09-23T17:25:08Z rme: it's fun 2014-09-23T17:25:11Z ilhami: :D 2014-09-23T17:25:25Z shka: i have a trivial question 2014-09-23T17:25:42Z shka: how do i supply argument to the initform of the slot? 2014-09-23T17:25:48Z drewc: ilhami: et quoi après? 2014-09-23T17:25:53Z effy quit (Ping timeout: 240 seconds) 2014-09-23T17:25:57Z ilhami: no french.. 2014-09-23T17:26:01Z jasom: shka: what do you mean? 2014-09-23T17:26:03Z ilhami: Danish, English 2014-09-23T17:26:05Z ilhami: or Spanish 2014-09-23T17:26:10Z Shinmera: shka: I'm not sure I understand what you mean? 2014-09-23T17:26:23Z jasom: shka: initforms don't take arguments 2014-09-23T17:26:24Z dlowe: shka: you can't 2014-09-23T17:26:31Z shka: hm, ok 2014-09-23T17:26:39Z shka: so let me provide any example 2014-09-23T17:26:39Z dlowe: shka: you can make an initialize-instance method to do extra setup 2014-09-23T17:26:44Z Shinmera: shka: If you want to compute initforms based on other slot values, you'll have to set them in something like an initialize-instance :after method 2014-09-23T17:26:48Z jasom: shka: you probably want initialize-instance 2014-09-23T17:27:01Z shka: oh, ok 2014-09-23T17:27:10Z shka: it actually makes sense 2014-09-23T17:27:16Z jasom: if 3 people in #lisp agree on a solution, it's almost certainly the right one :) 2014-09-23T17:27:18Z ltbarcly quit (Client Quit) 2014-09-23T17:27:20Z rme: Heh. Everyone knows that answer. 2014-09-23T17:27:38Z aba_ joined #lisp 2014-09-23T17:27:46Z shka: but how i would pass arguments to the method? 2014-09-23T17:28:04Z dlowe: shka: initialize-instance is passed the keyword arguments given to make-instance 2014-09-23T17:28:10Z jasom: clhs 7.1 2014-09-23T17:28:10Z specbot: Object Creation and Initialization: http://www.lispworks.com/reference/HyperSpec/Body/07_a.htm 2014-09-23T17:28:12Z shka: ooooooooooooooooooh 2014-09-23T17:28:13Z kuzy000_ quit (Quit: No Ping reply in 180 seconds.) 2014-09-23T17:28:22Z shka: dlowe: thank you, sir 2014-09-23T17:28:28Z shka: i think i know everything 2014-09-23T17:28:29Z stassats: you can also access it from a slot 2014-09-23T17:28:31Z dlowe: yeah, you should ready the spec on there 2014-09-23T17:28:33Z jasom: shka: read all of 7.1 2014-09-23T17:28:34Z dlowe: read, too 2014-09-23T17:28:45Z shka: jasom: time is limited :( 2014-09-23T17:28:47Z drewc: ilhami: vous avez demandé ce qui est spécial à propos de ma langue .... la première j'ai parlé était canadienne-française 2014-09-23T17:28:53Z shka: i work whole day 2014-09-23T17:28:55Z zophy quit (Ping timeout: 272 seconds) 2014-09-23T17:29:24Z shka: so i would never be able to do anything if i would have to read docs all the time 2014-09-23T17:29:26Z jasom: shka: it would take up less than 5 A4 pages by my estimation, so it's not too long 2014-09-23T17:29:27Z kuzy000_ joined #lisp 2014-09-23T17:29:38Z shka: that's great 2014-09-23T17:29:47Z drewc: shka: you are aware that reading docs saves time, yes? 2014-09-23T17:29:51Z killerintersekt joined #lisp 2014-09-23T17:30:01Z gigetoo quit (Remote host closed the connection) 2014-09-23T17:30:23Z dlowe: Programming for hours to save minutes of reading 2014-09-23T17:30:35Z jkaye quit (Remote host closed the connection) 2014-09-23T17:30:40Z jasom: dlowe: programming is more fun though ;-) 2014-09-23T17:31:10Z jkaye joined #lisp 2014-09-23T17:31:27Z hitecnologys_ quit (Quit: hitecnologys_) 2014-09-23T17:31:29Z aba_ quit (Client Quit) 2014-09-23T17:31:31Z jasom: Actually I've been known to say "Hmm, I wonder if X does what I think it does" ... type X into REPL for 3 CL implementations ... spend an hour trying to find the part of the CLHS that says how X is defined 2014-09-23T17:31:37Z drewc: dlowe: first, bug #lisp, for hours .... that makes programming and reading almost unneeded :P 2014-09-23T17:32:16Z dlowe: Isn't that what stack overflow is for? 2014-09-23T17:32:48Z shka: dlowe: but #lisp is more usefull 2014-09-23T17:33:09Z drewc: I must be old school, for the only time I ever look at stackoverflow is when the google search turns up the answer ... 2014-09-23T17:33:17Z drmeister quit (Remote host closed the connection) 2014-09-23T17:33:22Z drewc: and new-school, for it is google and not altavista 2014-09-23T17:33:25Z bambams_ quit (Ping timeout: 246 seconds) 2014-09-23T17:33:26Z dlowe: I wanted to contribute to stackoverflow on common lisp, but rainer joswig is so fast and such a good writer, I figured there wasn't a point 2014-09-23T17:33:52Z drmeister joined #lisp 2014-09-23T17:34:34Z sheilong joined #lisp 2014-09-23T17:34:55Z Hydan is now known as Hydan` 2014-09-23T17:35:23Z jkaye quit (Ping timeout: 240 seconds) 2014-09-23T17:36:51Z drewc: dlowe: that is quite true .... I have been CL'r for over 10 years now, and Joswig was/is always someone to read and to look up to.... stackoverflow is recent, Rainer's know-how is not :) 2014-09-23T17:37:02Z ilhami: WHAT IS LISP ? :D 2014-09-23T17:37:17Z ilhami: what other programming language does it resemble most? 2014-09-23T17:37:39Z drewc: ilhami: I give up, what are the answers? 2014-09-23T17:38:22Z drewc: ilhami: OR: https://en.wikipedia.org/wiki/Lisp_(programming_language) 2014-09-23T17:38:27Z jasom: ilhami: it's fairly close to scheme 2014-09-23T17:38:38Z malbertife joined #lisp 2014-09-23T17:38:55Z Grue`: common lisp is closest to emacs lisp imo 2014-09-23T17:39:00Z killerintersekt quit (Remote host closed the connection) 2014-09-23T17:39:02Z ilhami: Not close to Java? 2014-09-23T17:39:18Z Grue`: nope. javascript though... 2014-09-23T17:39:24Z jasom: ilhami: well they are both garbage collected, that's about all the similarity 2014-09-23T17:39:25Z drewc smiles and nods and moves away :) 2014-09-23T17:39:54Z jasom: Grue`: I always thought javascript was closer to self than lisp, but maybe that's just because of the object system. 2014-09-23T17:40:02Z oGMo: jasom: quite 2014-09-23T17:40:04Z ilhami: lol jasom :D 2014-09-23T17:40:15Z zophy joined #lisp 2014-09-23T17:40:15Z drewc: jasom: SHEEPLE! 2014-09-23T17:40:36Z Grue`: supposedly some early version of javascript was *implemented* in lisp, or so i heard 2014-09-23T17:40:51Z drewc: jasom: https://sykosomatic.org/2009/07/sheeple/ 2014-09-23T17:41:01Z drewc: Grue`: look at mozilla cvs 2014-09-23T17:41:02Z oGMo: Grue`: well, also a current-ish one, in cl-javascript 2014-09-23T17:41:42Z ilhami: is Lisp easier than Java? 2014-09-23T17:42:01Z jasom: drewc: does the author truely think that prototype-based OO is contributory to javascript's success? 2014-09-23T17:42:24Z schoppenhauer: ilhami: no 2014-09-23T17:42:30Z oGMo: ilhami: why don't you go read http://www.gigamonkeys.com/book/ and decide for yourself 2014-09-23T17:42:35Z drewc: jasom: No idea, I don't dwell in philosophy very much. 2014-09-23T17:42:36Z jasom: ilhami: well you are less likely to run into a AbstractSingletonProxyFactoryBean om ;os[ 2014-09-23T17:42:49Z drewc: Grue`: http://mxr.mozilla.org/mozilla/source/js2/semantics/ 2014-09-23T17:42:51Z killerintersekt joined #lisp 2014-09-23T17:44:10Z Grue`: oh nice 2014-09-23T17:44:26Z drewc: jasom: OTOH, it is much superior to the ALIST's I tend to use for prototypical objects, so that is why I use it. 2014-09-23T17:44:36Z jasom: drewc: very true 2014-09-23T17:44:56Z jasom: okay, this wins for the most Java class name of all time: http://grepcode.com/file/repository.springsource.com/org.aspectj/com.springsource.org.aspectj.weaver/1.6.3/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java 2014-09-23T17:45:32Z madrik joined #lisp 2014-09-23T17:45:35Z ilhami: Hahahahahah :D 2014-09-23T17:45:36Z ilhami: nice class 2014-09-23T17:45:43Z Grue`: ohYesItHas 2014-09-23T17:46:25Z drewc: ilhami: easier than Java for you? no ... you should go over to a newer language like java! try #java, they might not ask for your own opinion and spout FUBAR. :D 2014-09-23T17:46:28Z C6248_ joined #lisp 2014-09-23T17:46:45Z BitPuffin quit (Ping timeout: 260 seconds) 2014-09-23T17:46:49Z drewc: don't they have LAMBDA finally? 2014-09-23T17:46:51Z ilhami: Java > Lisp :D 2014-09-23T17:46:56Z ilhami: C# > Lisp :D 2014-09-23T17:47:08Z C6248_ quit (Client Quit) 2014-09-23T17:47:15Z ilhami: C# has lambda 2014-09-23T17:47:20Z ltbarcly joined #lisp 2014-09-23T17:47:25Z oGMo: why are you (still) here? 2014-09-23T17:47:39Z jasom: drewc: even C has lambda these day's, languages without lambda are soo 00's 2014-09-23T17:47:46Z drewc: (> anything ilhami) => T 2014-09-23T17:48:05Z Petit_Dejeuner_: C has had function pointers for a long time 2014-09-23T17:48:09Z Petit_Dejeuner_: Java STILL can't do that 2014-09-23T17:48:11Z oGMo: jasom: C or C++? i don't recall any in C 2014-09-23T17:48:12Z ilhami: Write me "Hello World" in lisp 2014-09-23T17:48:18Z oGMo: ilhami: you just did 2014-09-23T17:48:22Z ilhami: oh ok 2014-09-23T17:48:26Z gigetoo joined #lisp 2014-09-23T17:48:37Z ilhami: that's so easy. 2014-09-23T17:48:49Z ilhami: Lisp easier than Java. 2014-09-23T17:49:01Z killerintersekt quit (Remote host closed the connection) 2014-09-23T17:49:05Z Petit_Dejeuner_: not always 2014-09-23T17:49:05Z ilhami: in Java you have to do System.out.println("Hello World") 2014-09-23T17:49:09Z drewc: ilhami: If you want to start a fight or ruin your highschool programming class, you should stay here and keep on blabbing! 2014-09-23T17:49:31Z ilhami: oh yeah let's start a fight. :D 2014-09-23T17:50:04Z Petit_Dejeuner_: Why don't you just use Clojure? 2014-09-23T17:50:25Z scharan joined #lisp 2014-09-23T17:50:36Z drewc: ilhami: sorry if I was not clear .... does put up or shut up make sense? This is not a "what lang is better for a newb?" IRC channel. 2014-09-23T17:50:47Z ilhami: drewc shut up 2014-09-23T17:50:58Z ilhami: nerd 2014-09-23T17:51:04Z drewc: sigh. 2014-09-23T17:51:27Z beach left #lisp 2014-09-23T17:51:46Z ilhami: is off topic allowed in here? 2014-09-23T17:51:55Z drewc: ilhami: no. 2014-09-23T17:51:55Z jasom: oGMo: oh you're right. 2014-09-23T17:52:08Z malbertife quit (Quit: Leaving) 2014-09-23T17:52:44Z malbertife joined #lisp 2014-09-23T17:52:55Z ggole: There's an Apple extension that adds "blocks" to C 2014-09-23T17:53:04Z ehaliewicz joined #lisp 2014-09-23T17:53:05Z Petit_Dejeuner_: Like Ruby? 2014-09-23T17:53:19Z ggole: They're basically closures. 2014-09-23T17:53:29Z oGMo: gcc might have something too 2014-09-23T17:53:40Z ilhami: which compiler does Lisp use? 2014-09-23T17:53:43Z ggole: gcc allows nested functions, no closures 2014-09-23T17:53:43Z oGMo: but.. not really generally useful 2014-09-23T17:54:35Z drmeister quit (Remote host closed the connection) 2014-09-23T17:54:41Z segv- quit (Ping timeout: 260 seconds) 2014-09-23T17:54:41Z ST3KP joined #lisp 2014-09-23T17:54:51Z drmeister joined #lisp 2014-09-23T17:55:50Z Petit_Dejeuner_: ilhami, several 2014-09-23T17:55:55Z ilhami: CLISP? 2014-09-23T17:55:55Z sdemarre joined #lisp 2014-09-23T17:55:57Z drewc: ilhami: No offense needs to be taken, but you are spouting something that does not make sense ... Can I suggest you learn what lisp is and what it does on your own? Otherwise, your questions reveal the state of your education ;) 2014-09-23T17:57:13Z ilhami: The name LISP derives from "LISt Processing". Linked lists are one of Lisp languages' major data structures, and Lisp source code is itself made up of lists. As a result, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or even new domain-specific languages embedded in Lisp. 2014-09-23T17:57:42Z Petit_Dejeuner_: Did you copy and paste that? 2014-09-23T17:57:49Z H4ns: ilhami: why do you paste that here? is your wish to get thrown out? 2014-09-23T17:58:04Z oGMo: rather dated paste, at that 2014-09-23T17:58:50Z Petit_Dejeuner_: wikipedia 2014-09-23T17:58:51Z ilhami: is it not permissible to paste here? 2014-09-23T17:58:55Z ilhami: http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Lisp_(programming_language).html 2014-09-23T17:59:05Z Adlai stands in awe of people's patience with trolling 2014-09-23T17:59:14Z Petit_Dejeuner_ is bored 2014-09-23T17:59:19Z H4ns: ilhami: no. and in particular if you're pasting what you should read yourself instead. 2014-09-23T17:59:26Z Adlai: #bitcoin moderation is amazing, they kickban people in less than a minute 2014-09-23T17:59:37Z ilhami: oh yeah I read better when others are reading with me. :D 2014-09-23T17:59:49Z H4ns: ilhami: get lost. 2014-09-23T17:59:54Z innertracks joined #lisp 2014-09-23T17:59:59Z ilhami: H4ns you get lost. 2014-09-23T18:00:01Z Petit_Dejeuner_: Adlai, It's hard to keep a pyramid scheme going with dissenters. /bait 2014-09-23T18:00:22Z Adlai throws the bait at ilhami 2014-09-23T18:00:26Z ilhami: Klods Hans :D 2014-09-23T18:00:41Z Petit_Dejeuner_: http://www.princeton.edu/~achaney/tmve/wiki100k/docs/warning.html 2014-09-23T18:00:59Z BitPuffin joined #lisp 2014-09-23T18:01:01Z alexherbo2 joined #lisp 2014-09-23T18:01:10Z drewc: ok, so I try to not deal with trolls, because they enjoy being the centre of attention ... and it seems that I am not an OP of this chan regardless ... So I will go back to lisping now :) 2014-09-23T18:02:16Z ilhami: I can stop trolling if you provide me good ressources 2014-09-23T18:02:31Z Petit_Dejeuner_: On what? 2014-09-23T18:02:39Z ltbarcly quit (Quit: Computer has gone to sleep.) 2014-09-23T18:02:41Z ilhami: on Lisp 2014-09-23T18:02:53Z ilhami: so I can learn about it 2014-09-23T18:02:53Z drewc: ilhami: http://edition.cnn.com/2014/02/11/tech/web/online-trolls-sadists 2014-09-23T18:02:56Z yati quit (Ping timeout: 250 seconds) 2014-09-23T18:03:03Z Grue`: "on lisp" by paul graham 2014-09-23T18:03:06Z drewc is feeding, sorry about that! 2014-09-23T18:03:13Z ilhami: ok. :D Grue` thanks 2014-09-23T18:03:17Z ilhami: see that was kind by Grue` . 2014-09-23T18:03:18Z Grue`: read it until you're enlightened 2014-09-23T18:03:35Z Petit_Dejeuner_: ilhami, Practical Common Lisp, On Lisp, Land of Lisp, Let over Lambda, Lisp in Small Pieces (LiSP) 2014-09-23T18:03:37Z zacharias_ quit (Ping timeout: 245 seconds) 2014-09-23T18:03:58Z drewc: PAIP! 2014-09-23T18:04:25Z oGMo: (PCL which i linked above, proving troll is full of crap) 2014-09-23T18:04:32Z ilhami: Give me some time. 2014-09-23T18:04:41Z ilhami: I will read some about it and come back 2014-09-23T18:04:59Z Adlai: ilhami: also, if you're interested in arguments in favor of lisp in production, here's a good article i read a few days ago: http://practicaltypography.com/why-racket-why-lisp.html 2014-09-23T18:05:15Z Adlai: (the author uses a scheme dialect but most of his comments are relevant for any lisp) 2014-09-23T18:05:20Z Petit_Dejeuner_: Anything by Paul Graham 2014-09-23T18:05:29Z ilhami: So there are many kind of lisps :P 2014-09-23T18:05:29Z husker joined #lisp 2014-09-23T18:05:31Z ilhami: I see 2014-09-23T18:05:37Z ilhami: I will check it out 2014-09-23T18:05:38Z Petit_Dejeuner_: Lisp is a family of languages. 2014-09-23T18:05:42Z ilhami: oh ok. 2014-09-23T18:06:05Z jasom: ilhami: Lisp can be used both to describe both a family of languages, and a specific language in that family 2014-09-23T18:06:15Z ilhami: ok thanks. 2014-09-23T18:06:18Z BitPuffin quit (Ping timeout: 246 seconds) 2014-09-23T18:06:25Z ilhami: so it has many "dialects" :D 2014-09-23T18:06:27Z jasom: ilhami: much like C is in the Algol family, scheme is in the Lisp family 2014-09-23T18:06:49Z madrik quit (Ping timeout: 260 seconds) 2014-09-23T18:07:11Z wasamasa: to paraphrase someone else, "The fastest way of getting answers is stating something blatantly wrong about the topic." 2014-09-23T18:07:30Z ilhami: Clojure runs on JVM? 2014-09-23T18:07:49Z drewc rolls his eyes as the troll c/p'd the wikipedia page which states such stuff ... who's that trippy trapping 'cross my bridge! 2014-09-23T18:08:08Z wasamasa: I can stop trolling if you provide me good ressources 2014-09-23T18:08:13Z wasamasa: sounds like an eleven-year old 2014-09-23T18:08:17Z ilhami: http://en.wikipedia.org/wiki/Clojure :D 2014-09-23T18:08:25Z ilhami: it says it runs on JVM 2014-09-23T18:09:11Z Petit_Dejeuner_: Java has nothing to do with JavaScript, but Clojure has much to do with ClojureScript 2014-09-23T18:11:02Z ilhami: (println "Hello world!") -- this is hello world in clojure. 2014-09-23T18:11:30Z Shinmera: Good for you. 2014-09-23T18:11:41Z drewc: ah! It is the actual month of September ... not eternal at all! 2014-09-23T18:11:58Z faheem__1: ilhami: why not just "Hello world!"? 2014-09-23T18:12:27Z KCL joined #lisp 2014-09-23T18:13:43Z ilhami: did I put some pressure on the server by trolling a bit? :D should we stress test the freenode server? :D 2014-09-23T18:13:48Z drewc makes some sense out of the troll increase ... in the k-12 usenet when the eternal september happened and does not forget, yet forgets which actual month it is sometimes. 2014-09-23T18:14:12Z Guest64381 quit (Ping timeout: 260 seconds) 2014-09-23T18:14:15Z ilhami: We are in September. 2014-09-23T18:14:19Z Grue`: needs moar gavino 2014-09-23T18:14:19Z ilhami: 23rd 2014-09-23T18:14:48Z ilhami: drewc are you murican? 2014-09-23T18:15:01Z faheem__1: i've heard rumors that IRC channels can toss people out if they are annoying. 2014-09-23T18:15:04Z jordonbiondo quit (Ping timeout: 250 seconds) 2014-09-23T18:15:17Z ilhami: make Freenode k-line me :D 2014-09-23T18:15:17Z KCL_ quit (Ping timeout: 245 seconds) 2014-09-23T18:15:25Z ilhami: can you do that? 2014-09-23T18:16:28Z kushal quit (Quit: Leaving) 2014-09-23T18:16:37Z Shinmera: You could k-line yourself. How 'bout that. 2014-09-23T18:16:40Z drewc: ilhami: learn how to spell, or how to ask what you want to ask, or ... well /ignore is going to happen and I am not at all sorry. 2014-09-23T18:16:56Z stassats: minion: chant 2014-09-23T18:16:57Z minion: MORE USEFULL 2014-09-23T18:17:09Z aliona joined #lisp 2014-09-23T18:17:16Z ilhami: I want a k-line.. I want to be the first one in the history to be k-lined on freenode. :D 2014-09-23T18:17:25Z rme: ilhami: Please stop this bad behavior. 2014-09-23T18:17:37Z ST3KP quit (Quit: Page closed) 2014-09-23T18:17:41Z wasamasa: ilhami: you're too late to receive that honor 2014-09-23T18:17:48Z wasamasa: ilhami: do something more useful 2014-09-23T18:17:56Z ilhami: ok. like what? 2014-09-23T18:18:00Z Shinmera: Typing /quit 2014-09-23T18:18:12Z wasamasa: reading 2014-09-23T18:18:15Z wasamasa: learning to program 2014-09-23T18:18:18Z wasamasa: solving problems 2014-09-23T18:18:26Z intersekted joined #lisp 2014-09-23T18:18:27Z wasamasa: that kind of stuff, alternatively /part 2014-09-23T18:18:36Z ilhami: I like coding in Java. 2014-09-23T18:19:50Z wasamasa: that should rule out clojure for you 2014-09-23T18:19:59Z aliona quit (Quit: Leaving) 2014-09-23T18:20:09Z Xach: If you'd like to continue the discussion, please use private messages. 2014-09-23T18:20:19Z rdd joined #lisp 2014-09-23T18:20:29Z ilhami: ok 2014-09-23T18:20:53Z sdemarre quit (Ping timeout: 240 seconds) 2014-09-23T18:21:47Z faheem__1: Xach: you should be a school teacher. 2014-09-23T18:22:38Z ilhami: Xach do you want to be my teacher+ 2014-09-23T18:22:40Z ilhami: ? 2014-09-23T18:22:48Z ilhami: 100 bucks per hour :D 2014-09-23T18:23:16Z jkaye joined #lisp 2014-09-23T18:23:33Z Fare joined #lisp 2014-09-23T18:23:59Z faheem__1: i just finished writing an article review, and i feel exploited. any academics here? 2014-09-23T18:24:21Z ilhami: want me to read it and check it for spelling errors? :D 2014-09-23T18:24:25Z rdd quit (Client Quit) 2014-09-23T18:25:09Z jasom: faheem__1: drmeister is an academic, I think he's AFK though 2014-09-23T18:26:14Z jordonbiondo joined #lisp 2014-09-23T18:27:00Z intersekted quit (Remote host closed the connection) 2014-09-23T18:27:11Z faheem__1: jasom: right. probably recovering from him weekend labors. 2014-09-23T18:27:46Z faheem__1: i'm a bit puzzled how a research chemist can be a lisp hacker. does he not sleep? 2014-09-23T18:28:55Z Xach: Is the article about Lisp? 2014-09-23T18:29:54Z faheem__1: Xach: nope. 2014-09-23T18:31:27Z ilhami: where are you guys from? 2014-09-23T18:31:28Z getfem joined #lisp 2014-09-23T18:32:23Z Xach: Let us talk about Common Lisp for a while instead. 2014-09-23T18:34:46Z edgar-rft joined #lisp 2014-09-23T18:35:05Z Adlai quit (Remote host closed the connection) 2014-09-23T18:35:05Z slacko25328 joined #lisp 2014-09-23T18:35:06Z angavrilov quit (Read error: Connection reset by peer) 2014-09-23T18:35:36Z Adlai joined #lisp 2014-09-23T18:36:38Z ilhami: Okay.. Let's talk about Common Lisp. 2014-09-23T18:37:23Z sdemarre joined #lisp 2014-09-23T18:38:36Z cmack` joined #lisp 2014-09-23T18:39:11Z hiroakip joined #lisp 2014-09-23T18:39:35Z Paul_McFreely quit (Quit: Computer has gone to sleep.) 2014-09-23T18:40:09Z Paul_McFreely joined #lisp 2014-09-23T18:40:22Z cmack quit (Ping timeout: 240 seconds) 2014-09-23T18:42:19Z ehu joined #lisp 2014-09-23T18:42:51Z wgl: Speaking of lisp, does anyone here routinely use SBCL on FreeBSD? 2014-09-23T18:43:51Z oGMo: ah that reminds me, i was going to make a fbsd vm to test just that 2014-09-23T18:45:27Z getfem left #lisp 2014-09-23T18:45:29Z aap_: i have it installed, it seems to work 2014-09-23T18:46:16Z dented42 joined #lisp 2014-09-23T18:46:31Z ehaliewicz quit (Remote host closed the connection) 2014-09-23T18:46:36Z sdemarre quit (Ping timeout: 258 seconds) 2014-09-23T18:46:43Z drmeister: drewc: I was reading a review of the LLGPL that (as far as I understood) said that it didn't have the intended affects. Also, every library I generate is very much like a C++ .so file so wouldn't LGPL be appropriate. Anyway, ECL is LGPL and I depend on it so I'm kind of stuck with it. 2014-09-23T18:46:44Z H4ns: wgl: yes, works. 2014-09-23T18:47:30Z dented42 quit (Client Quit) 2014-09-23T18:47:59Z dented42 joined #lisp 2014-09-23T18:48:42Z prozac20mg joined #lisp 2014-09-23T18:48:48Z ilhami: so inactive channel here. 2014-09-23T18:48:51Z ``Erik: wgl: yes, in production, even 2014-09-23T18:50:02Z White_Flame: drmeister: Given the flexibility of CL to redefine things, including single functions with libraries, I'm not sure "lisp lib is like a .so" would technically apply 2014-09-23T18:50:23Z White_Flame: even though that might be the loading mechanism 2014-09-23T18:50:25Z drewc: LLGPL is not a bad license, and it may cover such things, but my major problem is generating binary images .... what is the license my image is under and do I have a choice about it? If everything is a .so including the runtime, and the license allows it to be used in/for non-llgpl thingie ... 2014-09-23T18:50:30Z faheem__1: Xach: i asked you about CCL some time ago. I don't know if you saw the question. 2014-09-23T18:50:43Z faheem__1: asked you here, i mean 2014-09-23T18:52:17Z Xach: faheem__1: I don't work on ccl, usually. I like the general idea of CL implementations being available in debian, but I have not seen it done successfully yet, and I don't know what it would take to make it successful. 2014-09-23T18:52:28Z Patzy quit (Ping timeout: 260 seconds) 2014-09-23T18:52:41Z dented42 quit (Remote host closed the connection) 2014-09-23T18:52:51Z Patzy joined #lisp 2014-09-23T18:52:57Z innertracks quit (Ping timeout: 260 seconds) 2014-09-23T18:53:01Z drewc: drmeister: and what White_Flame said ... what if my image includes the ability to compile lisp and also (defun cl:car ...) ? What license for what thing at what time etc. 2014-09-23T18:53:25Z faheem__1: Xach: actually, i have a working package for Debian. 2014-09-23T18:53:30Z faheem__1: that's not the problem 2014-09-23T18:53:51Z Xach: Ok. What is the problem? 2014-09-23T18:54:08Z Xach: I did not read all the text at the debian link you provided, sorry. 2014-09-23T18:54:11Z mhd joined #lisp 2014-09-23T18:55:10Z faheem__1: Xach: the debian ftpmasters are being daft about it. unfortunately, nobody seems to care. i should clarify that the daft bit is my opinion. also it was really one person. 2014-09-23T18:55:31Z faheem__1: i can point you to the relevant text, if you are willing to take a few minutes reading it 2014-09-23T18:55:51Z wasamasa: drmeister: so, MPS is the part of clasp that is problematic regarding the license for the entire project? 2014-09-23T18:55:58Z dented42 joined #lisp 2014-09-23T18:57:04Z faheem__1: Xach: to a first approximation, i'm asking for the take of someon who (a) is a CL expert and (b) has some involvement with CL, if only indirectly. 2014-09-23T18:57:26Z Xach: faheem__1: Ok, if you could show me the important part, I can peek at it. 2014-09-23T18:57:45Z innertracks joined #lisp 2014-09-23T18:57:48Z faheem__1: Xach: ok, one sec 2014-09-23T19:00:15Z faheem__1: Xach: ok, open https://bugs.debian.org/609047 . Then do a search for "Luca". 2014-09-23T19:00:52Z faheem__1: The original message is not in that bug report, but I quote it in its entirety, then reply to it. 2014-09-23T19:01:23Z faheem__1: The message from Luca starts with "sorry, but we do not think introducing a convenience copy of gcc" 2014-09-23T19:02:09Z DKordic joined #lisp 2014-09-23T19:02:35Z faheem__1: That is quoted. Then my reply is below that. 2014-09-23T19:03:15Z lambdAnon quit (Remote host closed the connection) 2014-09-23T19:03:26Z Xach: I'm afraid it is too much for me to quickly understand. Sorry about that. If you can summarize in a paragraph or two, I can peek at it, but there is a lot to read and I'm not sure what the problem is even after reading 6 replies. 2014-09-23T19:04:35Z faheem__1: Xach: Luca's reply is really the main thing. I guess the question is whether you are familar with how CCl interface headers are generated. 2014-09-23T19:05:03Z innertracks quit (Quit: innertracks) 2014-09-23T19:05:17Z faheem__1: It uses a program called ccigen, or a fork of that, anyway. and that generates the headers 2014-09-23T19:05:20Z dented42 quit (Remote host closed the connection) 2014-09-23T19:06:04Z faheem__1: the problem is that this ccigen thingy is generated from a patched copy of gcc 4.0. This is apparently "not desirable". 2014-09-23T19:06:09Z H4ns: faheem__1: if i may say something: generating the cdb files is a brittle process which requires hand holding and manual tweaks. it is a process that needs to be run rarely. insisting on generating the cdb files from source with every build is madness. 2014-09-23T19:07:09Z faheem__1: H4ns: it seemed quite reliable once i got it working. and you would get zero sympathy from Debian if you started talking about how brittle your build processes were 2014-09-23T19:07:22Z drmeister: drewc: Well if you redefine CAR it technically will live in a different LLVM Module and not touch the loaded library but other code will call the new CAR. The library may or may not call the new CAR depending on how it was set up. 2014-09-23T19:07:42Z faheem__1: i've also had people build it independently with no problem. 2014-09-23T19:07:45Z H4ns: faheem__1: luckily, i am not dependent on sympathy from debian in any way. 2014-09-23T19:07:47Z Xach: faheem__1: I have nothing to add to the discussion. 2014-09-23T19:08:06Z pt1 joined #lisp 2014-09-23T19:08:15Z faheem__1: on multiple occasions, with different versions of CCL 2014-09-23T19:08:30Z faheem__1: Xach: oh. 2014-09-23T19:08:38Z Xach: I take that back. I would be happy to point to a non-official debian repo to get clozure cl via apt or similar, as long as it was nearly identical to what I'd get from the normal process. 2014-09-23T19:08:50Z dented42 joined #lisp 2014-09-23T19:08:57Z Xach: I do not really want to use a "debianized" ccl (or sbcl, or anything else) 2014-09-23T19:09:04Z drewc: drmeister: right, but what it the license of my thing that redefines CAR and has EVAL ? 2014-09-23T19:09:09Z drmeister: ECL has an LGPL license. Why is it not a problem for ECL? 2014-09-23T19:09:12Z drewc: s/it/is 2014-09-23T19:09:25Z faheem__1: Xach: define "debianized" ccl 2014-09-23T19:09:49Z drewc never used ECL because of a problem with it's license 2014-09-23T19:10:00Z faheem__1: afaik, the debian package in question is essentially identical to the upstream version 2014-09-23T19:10:16Z mvilleneuve joined #lisp 2014-09-23T19:10:54Z drmeister: drewc: I'm kind of stuck with ECL's LGPL license because I don't have a "clean room" implementation independent of ECL CL source code. 2014-09-23T19:11:00Z Xach: faheem__1: depends on cl-asdf 2014-09-23T19:11:27Z faheem__1: Xach: anyway, i guess i was asking for the support of the community in this matter. though Debian doesn't care, Clozure doesn't care, and the CL community seems faintly hostile to Debian packaging. Overall, not a promising wicket. 2014-09-23T19:11:28Z drmeister: I can always redefine the license later - correct? 2014-09-23T19:11:32Z dented42 quit (Remote host closed the connection) 2014-09-23T19:11:50Z faheem__1: Xach: i don't follow. what does cl-asdf have to do with it? 2014-09-23T19:12:01Z nyef: drmeister: I'm curious, how much of your system actually IS independent of ECL? 2014-09-23T19:12:49Z Xach: faheem__1: i would not want to install a ccl (or sbcl, or clisp, etc) package that downloaded and configured cl-asdf as part of its process. that has happened in the past. i don't know if it is an ongoing thing. 2014-09-23T19:12:53Z drewc: drmeister: I used to like GPL/LGPL before I moved into lisp, so I do not mean offence in any way.... but the legal aspect of such things is what I take offence at... and I am not a lawyer :| 2014-09-23T19:13:02Z Xach: faheem__1: cl-asdf packages have made it hard to find configuration info and hard to troubleshoot problems. 2014-09-23T19:13:04Z drmeister: nyef: About 100,000 lines of code. 2014-09-23T19:13:12Z drmeister: C++ and Common Lisp combined. 2014-09-23T19:13:54Z Krystof: Xach: currently sbcl in debian does not seem to depend on a cl-asdf package 2014-09-23T19:14:08Z faheem__1: Xach: i don't think my package uses cl-asdf. it certainly doesn't depend on it. 2014-09-23T19:14:16Z drmeister: I "borrow" about 30,000 lines of Common Lisp from ECL. All the stuff in ecl/src/lsp and ecl/src/clos 2014-09-23T19:14:22Z nyef: drmeister: Any idea what would be involved in replacing all of the ECL bits? 2014-09-23T19:14:25Z drmeister: I don't use either of the compilers from ECL 2014-09-23T19:14:43Z jasom: has anyone tried implementing lisp on top of klambda? 2014-09-23T19:14:43Z faheem__1: i think that if asdf sees another copy of asdf in the system, it does wacky things like trying to load it, but that's not my fault. 2014-09-23T19:15:04Z nyef: Hrm. So, cribbing from beach's thing, SBCL, and AMOP's Closette might actually break your LGPL dependency? 2014-09-23T19:15:13Z faheem__1: of course, CCL has its own internal copy of ASDF. 2014-09-23T19:15:18Z Xach: When I say "debianized", I mean things that make the project diverge from its normal behavior, locations, configuration, etc, to conform to debian's standards of behavior, locations, configuration, etc. I am reminded of http://cr.yp.to/compatibility.html 2014-09-23T19:15:24Z schjetne: What's the harm of releasing the dependent program under the LGPL? 2014-09-23T19:15:25Z jasom: faheem__1: it loads it only if it's a newer version (as Faré said on the list) 2014-09-23T19:15:25Z drmeister: I also took about 10,000 lines of ECL C code and translated it line by line into C++ changing what I needed to make it compatible with the other 100,000 lines of code I wrote. Pathnames, streams and some of the numerical functions are "heavily inspired" by ECL code. 2014-09-23T19:15:28Z drewc: Xach: AFAIK they went ahead and dropped the cl-asdf thingie.... at least that is what I have heard... but I am on the 'stopped using anything .deb to do with CL' side from some 10 years ago, so what do I know. 2014-09-23T19:15:49Z slacko25328 quit (Read error: No route to host) 2014-09-23T19:16:09Z faheem__1: jasom: right. but how would one stop it doing that? or is that intended behavior? 2014-09-23T19:16:20Z drmeister: My compiler is about 10,000 lines of Common Lisp that I wrote from scratch and there's 100,000 lines of C++ that do everything else. 2014-09-23T19:16:36Z drmeister: nyef: Does that answer the question? 2014-09-23T19:17:02Z jasom: faheem__1: that's the intended behavior; the idea is if CCL adds something to their version 3.0.1.2 then upstream asdf will incorporate it before a version newer than that 2014-09-23T19:17:12Z faheem__1: Xach: i don't think I changed anything significant the package, but you are speaking generally, so I don't know what you would consider acceptable. 2014-09-23T19:17:12Z drmeister: Replacing the ECL bits? A couple of months to get the pathname/file/numerical stack code replaced. 2014-09-23T19:17:19Z Clara_Zieme joined #lisp 2014-09-23T19:17:47Z kobain quit (Ping timeout: 244 seconds) 2014-09-23T19:17:51Z nyef: drmeister: Okay, so something to keep in mind as a possible future project, and also something that can in theory be done piecemeal. 2014-09-23T19:17:51Z drmeister: The 30,000 LOC Common Lisp code I would have to get from somewhere else. And then there's getting everything to work together. Six months maybe. 2014-09-23T19:18:03Z faheem__1: jasom: ok. i recall that having an older cl-asdf would cause weird breakages. is the solution to simply toss cl-asdf, perhaps? 2014-09-23T19:18:12Z drmeister: Given it took me three years of hard work to get to this stage. 2014-09-23T19:18:20Z rme: ccl bundles a stock asdf strictly for the convenience of the user. It'd be more convenient for me as a ccl maintainer to leave it out. 2014-09-23T19:18:27Z faheem__1: drmeister: hi. hows the uploading going? 2014-09-23T19:18:54Z faheem__1: rme: fare at least seems to want it there. 2014-09-23T19:18:59Z jasom: faheem__1: well if cl-asdf does the stupid "load asdf" rather than using asdf to load it, then yeah. 2014-09-23T19:19:20Z faheem__1: i don't really have an opinon. is suggested that ccl point ot the cl-asdf thing, and he freaked out. 2014-09-23T19:19:40Z faheem__1: so apparently he doesn't want that to happen. i don't really care. i'll like ccl in debian, that's all. 2014-09-23T19:19:53Z jasom: IIRC sbcl really doesn't like it if asdf is downgraded 2014-09-23T19:20:08Z faheem__1: and the issue here isn't asdf, it's this nonsense about the CCIGEN program 2014-09-23T19:20:37Z drmeister: faheem__1: I had a little hiccup. Last week I thought I'd downloaded the stock LLVM3.5 and spent the weekend integrating it. I hadn't, I accidentally downloaded a trunk version. So today I'm messing with git revisions to try and put together a build system that doesn't require me to walk back a whole bunch of changes. 2014-09-23T19:20:49Z faheem__1: rme: if you have a couple of minutes, the issue with debian is that they don't like the fact that CCIGEN is built from a patched gcc 4.0 frontend. 2014-09-23T19:21:12Z faheem__1: I think this is totally wacky, and tried to explain, but it seems nobody is listening. 2014-09-23T19:21:31Z faheem__1: drmeister: wow, sounds like a lot of work 2014-09-23T19:21:41Z rme: As for "Clozure doesn't care" about Debian packaging, I guess that's true as far as it goes. We already try to take care of our users and provide an easy way to install CCL. If there were easy things I could do to make CCL more suitable for Debian, I would do them. 2014-09-23T19:22:08Z faheem__1: rme: i can point you to the relevant message if you want. 2014-09-23T19:22:22Z rme: faheem__1: Thanks; I saw it. 2014-09-23T19:22:31Z faheem__1: rme: ok. what was your take on it? 2014-09-23T19:23:43Z kobain joined #lisp 2014-09-23T19:24:40Z drmeister: nyef: I just saw this "So, cribbing from beach's thing, SBCL, and AMOP's Closette might actually break your LGPL dependency?" It could. 2014-09-23T19:25:12Z rme: First, IMO there's no benefit to having the user build the interfaces. If Debian doesn't like including the .cdb blobs, I can understand that, but for me, that's enough for me to lose interest in having CCL in Debian. 2014-09-23T19:25:37Z Clara_Zieme quit (Remote host closed the connection) 2014-09-23T19:25:39Z shka quit (Quit: WeeChat 0.4.3) 2014-09-23T19:25:41Z husker quit (Ping timeout: 260 seconds) 2014-09-23T19:25:57Z faheem__1: rme: ok. ironically, if i had just shipped the cdb blobs, it is possible nobody would have noticed 2014-09-23T19:26:08Z drmeister: nyef: Especially now that I know what I'm doing. 2014-09-23T19:26:27Z faheem__1: i've looked at previous ccl packages, and i think they'e all shipped the cdb files. 2014-09-23T19:26:39Z wgl: aap_: In installing SBCL on FreeBSD, do you compile from source, and do you enable threading? 2014-09-23T19:26:49Z rme: You've done the work to make that possible, but you're running up against someone who thinks that ffigen is not worthy of being included because it's derived from gcc. 2014-09-23T19:27:27Z faheem__1: rme: that is a correct summary 2014-09-23T19:27:39Z drewc: drmeister: FWIW, that is a crib that I would love to take part in... a) for the LICENSE itself and b) because that is almost exactly what/where I/we are suppose to start from, IMO. 2014-09-23T19:27:50Z faheem__1: drmeister: so, what is your current estimate for having clasp online? 2014-09-23T19:28:02Z klltkr quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-09-23T19:28:14Z rme: I myself have no interest in dealing with someone like that. From my point of view, I already go to a fair amount of effort to make CCL easy to get directly from Clozure Associates, the actual upstream source. 2014-09-23T19:28:43Z faheem__1: rme: fair enough 2014-09-23T19:29:02Z faheem__1: i was hoping someone might have an idea about how to fix this. 2014-09-23T19:29:20Z faheem__1: it seems like a ridiculous roadblock 2014-09-23T19:29:32Z faheem__1: i can think of other things to object to, but this? 2014-09-23T19:29:37Z madrik joined #lisp 2014-09-23T19:30:03Z drmeister: faheem__1: Tomorrow? Part of my build process that I run here is running a C++ static analyzer that analyzes the 172 Clasp C++ source files and writes about 15,000 lines of C++ that describe every class that the MPS garbage collector needs to manage. That static analyzer takes about 8 hours to run. If the MPS version runs after that it's time to release. 2014-09-23T19:30:12Z faheem__1: i may set up an unofficial repos somewhere. maybe i should just go ahead and do that. 2014-09-23T19:30:38Z drewc: drmeister: that is to say, beach's thing + closette is something that I have used/read/loved ... and SBCL is SBCL. :) 2014-09-23T19:30:39Z faheem__1: rme: does Clozure have any interest in hosting an unofficial Debian/Ubuntu apt repos? 2014-09-23T19:31:05Z faheem__1: drmeister: great, thanks. 2014-09-23T19:31:44Z Xach: If I were making unofficial apt repos, I would do it on Amazon S3. So, so cheap and fast. 2014-09-23T19:31:55Z drmeister: drewc: I'd be into that and maybe if Clasp takes off others might be as well. Using ECL was a means to an end. It seemed like the quickest path to where I wanted to go. Where I wanted to go was a Common Lisp that interoperated with C++. 2014-09-23T19:32:03Z Tristam quit (Ping timeout: 246 seconds) 2014-09-23T19:32:28Z faheem__1: Xach: i can alrady use debian's servers to do so, i think. but upstream might be better, if they were willing. 2014-09-23T19:32:49Z Tristam joined #lisp 2014-09-23T19:32:50Z drmeister: Part of that path meant learning Common Lisp and how to implement Common Lisp in C++. ECL is the closest thing to my goal. 2014-09-23T19:33:09Z faheem__1: i have an account on alioth, and the Debian Common Lisp team (what's left of them) has no objection. 2014-09-23T19:33:45Z drmeister: I've been asked many times why I didn't just extend ECL. I still don't think it would have worked, I would have gotten bogged down. 2014-09-23T19:33:51Z drewc: drmeister: makes sense, and I am actually quite excited about the outcome of such a thing. So if it does take off, part of my goal is to relearn/re-hate C++ ... so I may be counted in 2014-09-23T19:34:14Z lisper29 joined #lisp 2014-09-23T19:34:39Z fragamus quit (Quit: Computer has gone to sleep.) 2014-09-23T19:34:52Z drmeister: drewc: I don't like C++ either but there are a lot of C++ libraries out there that could be leveraged from within Common Lisp. 2014-09-23T19:34:53Z faheem__1: drewc: it is never too late to learn to re-hate C++. 2014-09-23T19:35:01Z wgl: re-hate C++. Good concept. 2014-09-23T19:35:03Z Fare: yes, it makes sense for implementations to provide asdf, for environment bootstrap purpose 2014-09-23T19:35:16Z rme: faheem__1: If I hosted a Debian package, I'd feel responsible for it. I don't know how to make Debian packages (and I'm not inclined to learn), so I think I'd have to say I'd rather not. I hope that makes sense. 2014-09-23T19:35:24Z drewc: drmeister: precisely. 2014-09-23T19:35:34Z wgl: Many folks in my line of work like C++. They are security code review guys. No end of work to do. 2014-09-23T19:35:36Z Fare: in the days of ASDF1, portably loading ASDF was *hell*. These days you can just (require "asdf") and assume you have it 2014-09-23T19:35:37Z foom: Debian has a policy against copying code to lots of places, even if that means introducing dependencies. 2014-09-23T19:35:50Z drmeister: Our distaste for C++ is what binds is. One of us! One of us! One of us! 2014-09-23T19:35:52Z foom: This is, generally, a sane policy for a distribution to have 2014-09-23T19:35:53Z mikeym joined #lisp 2014-09-23T19:36:00Z faheem__1: Fare: since you are here, what is your take on Debian's roadblock, besides (possibly) Debian is nuts? 2014-09-23T19:36:02Z drmeister: I'm kidding. C++ has it's uses. 2014-09-23T19:36:03Z White_Flame: I thought it was our distaste for Java :) 2014-09-23T19:36:06Z drmeister: its 2014-09-23T19:36:22Z faheem__1: rme: sure. i understand where you are coming from 2014-09-23T19:36:24Z Fare: I maintain the package for ASDF. Someone would have to resurrect common-lisp-controller to have all implementations use it. 2014-09-23T19:36:25Z foom: If the lisps need ASDF precompiled into binary form, it's sane to build-depend on the asdf source code to build the binary package. 2014-09-23T19:36:36Z Fare: faheem: which roadblock? 2014-09-23T19:36:41Z drmeister: Basic! We can all hate basic. 2014-09-23T19:36:50Z faheem__1: foom: it is, but it doesn't really apply here. 2014-09-23T19:36:54Z nyef: Applesoft basic was kindof fun. 2014-09-23T19:37:18Z foom: faheem_: Well, ASDF isn't the problem you're running into, it's a side-thread... 2014-09-23T19:37:22Z foom: But yes, it does apply here. 2014-09-23T19:37:29Z faheem__1: foom: for the record, i agre with that policy too. it makes sense, and I'm a long time Debian user. 2014-09-23T19:37:30Z nyef: The last major thing I wrote in Applesoft basic was a program that dumped its own listing by PEEKing at the tokenized code rather than using the LIST command. 2014-09-23T19:37:44Z drewc: drmeister: that was my first computer language! I like green screen basic, hate visual ... 2014-09-23T19:37:57Z Jesin quit (Quit: Leaving) 2014-09-23T19:38:06Z faheem__1: foom: no, it doesn't. the policy is to avoid having multiple copies of libraries floating around. but CCIGEN has no dupes in the Debian system 2014-09-23T19:38:17Z foom: I was talking about ASDF 2014-09-23T19:38:22Z White_Flame: BASIC has a REPL. C++, Java, etc don't. Therefore, BASIC > C++/Java 2014-09-23T19:38:24Z rme: It's "ffigen", actually. 2014-09-23T19:38:28Z codeburg quit (Remote host closed the connection) 2014-09-23T19:38:30Z drmeister: Anyway, "hate" is such a strong, un-nuanced word. 2014-09-23T19:38:31Z rme: But maybe you renamed it. 2014-09-23T19:38:35Z faheem__1: that is happens to be generated from gcc sources, is not relevant 2014-09-23T19:38:53Z faheem__1: foom: oh, my mistake. but asdf is not the roadblock. 2014-09-23T19:39:03Z codeburg joined #lisp 2014-09-23T19:39:06Z faheem__1: rme: ok, ffigen 2014-09-23T19:39:18Z foom: indeed; just registering my disagreement with the arguments in that subthread. :) 2014-09-23T19:39:25Z nyef: Maybe the thing to do is to reimplement ffigen based on something like gcc-xml? 2014-09-23T19:39:27Z faheem__1: rme: sorry. careless typing 2014-09-23T19:39:41Z foom: As for ffigen I think seeing that it is a derivative of GCC 4.0 raises serious questions about the maintainability of it. 2014-09-23T19:39:43Z faheem__1: nyef: i thought of that. it would be hard, i think. 2014-09-23T19:39:47Z faheem__1: rme: care to weigh in 2014-09-23T19:39:48Z faheem__1: ? 2014-09-23T19:39:58Z rme: yeah, ffigen is a bit of a pain point right now. 2014-09-23T19:40:07Z eugenee joined #lisp 2014-09-23T19:40:13Z foom: That is clearly grounds for an initial REJECT, although I'd expect that with sufficient discussion it could be allowed in 2014-09-23T19:40:26Z eugenee: Hi 2014-09-23T19:40:29Z faheem__1: foom: i'm not saying it is an ideal situation, but they don't even seem to want to talk about it. 2014-09-23T19:40:41Z foom: It appears that you're having trouble finding someone to talk to. Have you tried their irc channel? 2014-09-23T19:40:51Z faheem__1: foom: do you have any specific ideas, besides repeatedly emailing ftpmasters? 2014-09-23T19:41:28Z faheem__1: foom: which one? they just politely laugh at me. plus these days almost nobody has interest in CL, which is the real problem, i tink 2014-09-23T19:41:31Z foom: I'd also suggest making a package fixing things you think might help (e.g. removing GFDL) and submitting it again. 2014-09-23T19:41:51Z foom: then, at least, it goes into a queue to be looked at, rather than forgotten about 2014-09-23T19:41:55Z Fare: at StrangeLoop, there was a guy doing the equivalent of ffigen for javascript, using debug information left by the C compiler in -g mode. 2014-09-23T19:42:07Z faheem__1: foom: ok, but the GFDL thing is minor. you mean to debian-mentors? 2014-09-23T19:42:21Z foom: GFDL isn't minor; it's grounds for a reject in and of itself. 2014-09-23T19:42:28Z lisper29 quit (Quit: Leaving) 2014-09-23T19:42:31Z faheem__1: foom: i don't think i know you. are you a DD? of course, i might recognize your real name. 2014-09-23T19:42:36Z faheem__1: foom: fair enough. 2014-09-23T19:42:49Z foom: Not a DD; just a hanger-on. :) 2014-09-23T19:43:11Z faheem__1: re GFDL. but i thought i'd wait till the ffigen thing was resolved before proceeding. 2014-09-23T19:43:41Z rme: rpav's thing (https://github.com/rpav/c2ffi) is promising, but having to bring in clang and llvm is a drag. 2014-09-23T19:43:49Z faheem__1: foom: "clearly grounds for an initial REJECT" the gc 4.0 thing, you mean? 2014-09-23T19:44:11Z foom: I mean parts of gcc 4.0 include licenses that are not suitable for debian main. 2014-09-23T19:44:13Z faheem__1: rme: ok. are there plans to replace it then? CCIGEN? 2014-09-23T19:44:33Z foom: Why is having to bring in clang and llvm a pain, vs having to use an ancient GCC? 2014-09-23T19:44:36Z faheem__1: foom: ok, that. i mean the convenience copy thing. the license thing is not na issue 2014-09-23T19:44:52Z nug700 joined #lisp 2014-09-23T19:44:53Z faheem__1: foom: well, i guess the ancient gcc works... 2014-09-23T19:44:56Z Fare: https://github.com/stephenrkell/ 2014-09-23T19:45:22Z foom: I think the convenience copy is something you can argue for; having your licenses not-in-order is not. 2014-09-23T19:45:46Z faheem__1: what is current best practice for something like ffigen? 2014-09-23T19:46:09Z rme: faheem__1: There aren't any such plans. We're going to have to do something about updating it or replacing it, though. 2014-09-23T19:46:13Z faheem__1: i don't see why it has to include gcc even. it's just a C lang parser, right? 2014-09-23T19:46:35Z Fare: I believe the code is https://github.com/stephenrkell/dwarfidl 2014-09-23T19:46:36Z faheem__1: and for example LLVM can do that, probably better. 2014-09-23T19:46:44Z foom: llvm/clang didn't used to exist 2014-09-23T19:46:56Z foom: The only sane option was to modify gcc (ala gcc-xml) 2014-09-23T19:46:59Z ltbarcly joined #lisp 2014-09-23T19:47:01Z rme: You want to get all the structure alignment/layout right, and a C compiler knows all that stuff. 2014-09-23T19:47:02Z faheem__1: foom: i know. and yes, i agree the license thing is negotiable. 2014-09-23T19:47:28Z faheem__1: rme: would LLVM be a reasonable way to go? are there license issues with it from your pov? 2014-09-23T19:48:26Z faheem__1: Fare: https://github.com/stephenrkell/dwarfidl <- "ffigen for javascript"? 2014-09-23T19:49:30Z Fare: the guy says he actually wrote it with smalltalk in mind 2014-09-23T19:50:06Z rme: I don't think there are license issues. But it's not just like "use llvm" is downloading something from an ftp site and plugging it in. 2014-09-23T19:50:30Z Fare: anyway... there are options, these days. LLVM is probably the one that is going to have the more reliable continuous support 2014-09-23T19:50:33Z pierre1_ joined #lisp 2014-09-23T19:50:34Z ilhami quit (Quit: Nettalk6 - www.ntalk.de) 2014-09-23T19:50:36Z faheem__1: drmeister: would using LLVM for parsing C code and building interface headers be a reasonable thing to do? 2014-09-23T19:50:55Z ilhami joined #lisp 2014-09-23T19:50:56Z faheem__1: rme: no, of course not. i was not suggesting it is easy. 2014-09-23T19:50:57Z ilhami quit (Client Quit) 2014-09-23T19:51:04Z mikeym quit (Max SendQ exceeded) 2014-09-23T19:51:12Z rme: The coolest thing would be to have a Lisp C front-end that knew about all the ABI rules and everything, and then we woulnd't need an external program. Someone get on that, please. 2014-09-23T19:51:20Z mikeym joined #lisp 2014-09-23T19:51:21Z mikeym quit (Max SendQ exceeded) 2014-09-23T19:51:44Z |3b|: faheem__1: c2ffi/autowrap does exactly that 2014-09-23T19:51:45Z Fare: rme: clasp has that. Of course, it's not easily portable to other implementations. 2014-09-23T19:51:48Z drmeister: faheem__1: I've been biting my tongue to not say anything until Clasp is out. But yes, it will be a perfectly reasonable thing to do to parse C and C++ header files to create FFI's for other languages. 2014-09-23T19:51:50Z mikeym joined #lisp 2014-09-23T19:51:51Z mikeym quit (Max SendQ exceeded) 2014-09-23T19:52:18Z faheem__1: rme: Lisp C front-end? You mean, C code that talks to the lisp implementation? 2014-09-23T19:52:20Z mikeym joined #lisp 2014-09-23T19:52:21Z mikeym quit (Max SendQ exceeded) 2014-09-23T19:52:30Z Xach: I've always wondered about who tells the C implementation. Does the compiler writer read the ABI docs and bake them into the code? Are there data tables lying around somewhere? 2014-09-23T19:52:34Z faheem__1: drmeister: don't feel obliged to bite your tongue. :-) 2014-09-23T19:52:35Z pierre1_ quit (Client Quit) 2014-09-23T19:52:37Z drmeister: I think it will do it better than FFIGEN, SWIG or any other FFI builder. 2014-09-23T19:52:37Z rme: No, a C compiler-like thing written in Lisp. 2014-09-23T19:52:45Z |3b|: it still isn't a drop-in replacement though, since you also need obj-c and the platform specific ffi 2014-09-23T19:52:52Z mikeym joined #lisp 2014-09-23T19:52:53Z mikeym quit (Max SendQ exceeded) 2014-09-23T19:52:56Z faheem__1: rme: oh. a C compiler written in lisp? 2014-09-23T19:52:58Z drmeister: Clasp has the clang C/C++ compiler front end built into it. 2014-09-23T19:53:00Z faheem__1: huh 2014-09-23T19:53:07Z Fare: rme: good luck maintaining it 2014-09-23T19:53:23Z rme: Yeah, notice I exhorted someone else to get on it (and not me). 2014-09-23T19:53:24Z mikeym joined #lisp 2014-09-23T19:53:25Z mikeym quit (Max SendQ exceeded) 2014-09-23T19:54:27Z Fare: any news about a new lispworks release? They were saying there would be one this year 2014-09-23T19:54:38Z Fare: I hope they update their asdf when they do/did it. 2014-09-23T19:54:50Z cmack`` joined #lisp 2014-09-23T19:54:54Z drmeister: Folks, listen: Clasp has Clang built into it. Clasp parses C/C++/Objective-C right now and makes the AST available for interrogation within Common Lisp. 2014-09-23T19:54:57Z Fare: then every maintained implementation will have asdf3 2014-09-23T19:55:06Z rme wonders how many hours it would take his slow little ARM box to build LLVM and libclang. 2014-09-23T19:55:29Z foom: rme: luckily debian has autobuilders that do that for you. :) 2014-09-23T19:55:30Z Fare: rme: is it faster in a jitted arm emulator on x64 ? 2014-09-23T19:56:23Z cmack` quit (Ping timeout: 240 seconds) 2014-09-23T19:56:26Z Fare: drmeister, have you sped it up from v/70 ? 2014-09-23T19:56:38Z drmeister: What is v/70? 2014-09-23T19:56:45Z rme: Fare: I don't know; I've never tried an emulator. It's probably not a bad ida. 2014-09-23T19:56:48Z faheem__1: drmeister: could clasp help with the CCL interface headers thing? 2014-09-23T19:57:06Z drmeister: What is the CCL interface headers thing? 2014-09-23T19:57:11Z Karl_Dscc quit (Remote host closed the connection) 2014-09-23T19:57:11Z Fare: where v is the speed of ECL — you said you were 70 times slower, a few weeks ago 2014-09-23T19:57:29Z madrik quit (Quit: sleep) 2014-09-23T19:57:43Z drmeister: Fare: I'm planning to incorporate beach's Cleavir compiler and hook it into the LLVM backend. 2014-09-23T19:57:59Z Fare: nice. How usable is Cleavir? 2014-09-23T19:58:17Z drmeister: beach says it will be ready in a few weeks/months. 2014-09-23T19:58:19Z faheem__1: drmeister: there is this program called FFIGEN which generates CCL interface headers. 2014-09-23T19:58:37Z faheem__1: by parsing C header files 2014-09-23T19:58:40Z rme: http://ccl.clozure.com/ccl-documentation.html#The-Interface-Translator 2014-09-23T19:58:55Z faheem__1: and it is currently based on a patched gcc 4.0 2014-09-23T19:59:38Z malbertife quit (Ping timeout: 244 seconds) 2014-09-23T19:59:51Z drmeister: Yes. It can replace FFIGEN. 2014-09-23T20:00:03Z faheem__1: and some Debian guy has not good things to say about it 2014-09-23T20:00:10Z ltbarcly quit (Quit: Computer has gone to sleep.) 2014-09-23T20:00:21Z drmeister: I trust some Debian guy implicitly. 2014-09-23T20:00:37Z faheem__1: drmeister: ok. is there some modular bit of clasp that could do this? 2014-09-23T20:00:44Z drmeister: But seriously. Clasp is solution to your problem if FFIGEN is your problem. 2014-09-23T20:00:56Z Fare: drmeister, any news on the licensing front? 2014-09-23T20:00:59Z faheem__1: drmeister: you don't even know "some Debian guy" 2014-09-23T20:01:14Z |3b| thinks "write a bunch of code" is the solution, clasp or otherwise 2014-09-23T20:01:23Z drmeister: Fare: It's done. I'm just cleaning up and getting ready to throw the private/public repository switch. 2014-09-23T20:01:25Z faheem__1: drmeister: looking forward to playing with Clasp 2014-09-23T20:01:34Z Fare: congrats! 2014-09-23T20:01:45Z AeroNotix: I, for one, am ready to see this magical lisp implementation I've heard a lot about 2014-09-23T20:01:49Z |3b| doubts clasp supports objc or ccl ffi outof the box any better than c2ffo/autowrap 2014-09-23T20:01:53Z Fare: drmeister, what about the running of asdf on clasp? 2014-09-23T20:02:00Z Fare: any patch needed? 2014-09-23T20:02:27Z Fare: (I'm not expecting program-op to work for now) 2014-09-23T20:02:44Z faheem__1: |3b|: i don't think anyone was suggesting it would be an out of the box thing 2014-09-23T20:03:42Z drmeister: faheem__1: Let's talk more about this later. Note: It's not all done yet. We would have to write a program in Clasp to interrogate the C++/C/Objective-C AST and generate the FFI code. I solved a much harder problem when I wrote the static analyzer that builds my MPS garbage collector interface. 2014-09-23T20:04:02Z faheem__1: drmeister: ok. thanks. 2014-09-23T20:04:50Z thierrygar quit (Quit: thierrygar) 2014-09-23T20:05:28Z drmeister: I've got to run to a talk. BBL 2014-09-23T20:05:37Z drmeist__ quit (Remote host closed the connection) 2014-09-23T20:05:43Z faheem__1: drmeister: take care 2014-09-23T20:08:15Z rme: bleh. I'm all worn out 2014-09-23T20:08:34Z faheem__1: rme: sorry for troubling you 2014-09-23T20:09:02Z rme: no worries 2014-09-23T20:09:05Z drmeiste_ joined #lisp 2014-09-23T20:11:50Z Fare quit (Quit: Leaving) 2014-09-23T20:12:00Z thierrygar joined #lisp 2014-09-23T20:13:47Z fragamus joined #lisp 2014-09-23T20:14:35Z wgl: White_Flame: sounds like you are building tools to do abstract execution? 2014-09-23T20:16:05Z lisper29 joined #lisp 2014-09-23T20:18:25Z malbertife joined #lisp 2014-09-23T20:19:17Z Xach: "Would you like some help with that?" 2014-09-23T20:21:08Z jkaye quit (Remote host closed the connection) 2014-09-23T20:21:19Z knob quit (Quit: Leaving) 2014-09-23T20:21:44Z jkaye joined #lisp 2014-09-23T20:22:09Z stassats: did anybody come up with a better way to get a previous element than (car (ldiff list (member element list))) ? 2014-09-23T20:22:27Z White_Flame: wgl: Depending on your definition of "abstract execution", maybe : 2014-09-23T20:22:59Z White_Flame: extracting execution semantics, and abstracting higher level intent from that, would be more correct 2014-09-23T20:23:26Z bgs100 joined #lisp 2014-09-23T20:23:29Z White_Flame: actually performing the steps would be a cop-out, considering the code as black-box instead of understanding its internals 2014-09-23T20:23:45Z fragamus quit (Quit: Computer has gone to sleep.) 2014-09-23T20:24:47Z White_Flame: stassats: eq-hash table of conses pointing to their prior? 2014-09-23T20:25:18Z White_Flame: that'd basically be a side-band double link list 2014-09-23T20:25:52Z jkaye quit (Ping timeout: 240 seconds) 2014-09-23T20:25:55Z stassats: maybe i should store it in a Oracle DB too? 2014-09-23T20:26:13Z stassats: that'd be basically a side channel overkill 2014-09-23T20:26:18Z White_Flame: it all depends on what "better" is, in terms of speed/space tradeoff 2014-09-23T20:26:26Z innertracks joined #lisp 2014-09-23T20:26:34Z stassats: i guess you just didn't get my question 2014-09-23T20:26:57Z lisper29 left #lisp 2014-09-23T20:27:33Z nyef: stassats: FIND with a :KEY of #'CADR? 2014-09-23T20:27:46Z Xach: FIND doesn't get the cdr chain, it gets the cars. 2014-09-23T20:27:46Z drmeiste_ quit (Read error: Connection reset by peer) 2014-09-23T20:27:47Z nyef: Hrm. Possibly not quite, but that sort of angle. 2014-09-23T20:27:48Z stassats: it doesn't work on sublists, though 2014-09-23T20:28:02Z prozac20mg quit 2014-09-23T20:28:17Z stassats: LOOP will certainly work, but that's not the question 2014-09-23T20:28:18Z drmeiste_ joined #lisp 2014-09-23T20:28:24Z Xach: (cadr (member element (reverse list))) is not especially an improvement 2014-09-23T20:28:36Z stassats: Xach: and doesn't preserve semantics 2014-09-23T20:28:52Z Xach: what did i miss? 2014-09-23T20:28:57Z nyef: You have a list and an element, and you want the immediately preceding element in the list? 2014-09-23T20:29:17Z Ven joined #lisp 2014-09-23T20:29:18Z stassats: Xach: the same element past the first one 2014-09-23T20:29:55Z Xach: stassats: true, thanks. 2014-09-23T20:30:35Z stassats: nyef: right 2014-09-23T20:30:43Z stassats: or i just want to use LDIFF 2014-09-23T20:30:50Z drmeiste_: faheem__1: So what's the problem with FFIGEN? 2014-09-23T20:30:51Z Xach: ldiff is pretty cool. 2014-09-23T20:31:31Z drmeiste_ is now known as drmeister_ 2014-09-23T20:32:38Z uzo joined #lisp 2014-09-23T20:33:52Z White_Flame: wouldn't (car (ldiff list )) always return nil or (car list)? 2014-09-23T20:34:21Z White_Flame: is there maybe a reverse missing in there? 2014-09-23T20:34:50Z nyef: What's the criteria for "better"? 2014-09-23T20:35:00Z stassats: nyef: you decide! 2014-09-23T20:35:19Z White_Flame sticks with the hashtable, then 2014-09-23T20:35:34Z stassats: White_Flame: that's pretty horrible 2014-09-23T20:35:38Z White_Flame: of elements rather than cons cells, post-misunderstanding 2014-09-23T20:36:19Z dlowe: White_Flame: perhaps you should be using vectors instead 2014-09-23T20:36:29Z nyef: (block nil (mapl (lambda (x) (when (eq (cadr x) target-element) (return (car x))) list-in-question)) 2014-09-23T20:36:30Z scottj joined #lisp 2014-09-23T20:36:35Z White_Flame: hey, my criteria for "better" involves a situation where the list is immutable and relatively long, and this operation is performed many times on the same list 2014-09-23T20:37:03Z White_Flame: dlowe: if it's indexed by element value, you'd still have to linearly searc 2014-09-23T20:37:05Z White_Flame: +h 2014-09-23T20:38:00Z phao joined #lisp 2014-09-23T20:38:25Z zophy quit (Ping timeout: 259 seconds) 2014-09-23T20:38:30Z urandom__ quit (Quit: Konversation terminated!) 2014-09-23T20:38:37Z nyef: (elt list-in-question (1- (position target-element list-in-question))) ;; Also works on vectors! 2014-09-23T20:38:55Z schaueho quit (Ping timeout: 272 seconds) 2014-09-23T20:39:38Z White_Flame: elt will also fail if the element is the first in the list, so you'd need a little fencepost checking 2014-09-23T20:40:24Z drmeister_: Fare: I think I have what I need to implement ASDF's create-image function. I have a function that takes a list of LLVM bitcode files and an epilogue and/or prologue form and generates a .so/.dylib file that can be loaded into Clasp and run. 2014-09-23T20:42:28Z White_Flame: one of these days I'll hack a version of gethash that lets you supply a precomputed hash value, instead of recalculating it every time 2014-09-23T20:42:29Z faheem__1: drmeister_: well, some debian guy doesn't like FFIGEN, because it is based on a patched copy of GCC 4.0. 2014-09-23T20:42:35Z Xach: (car (find element (maplist 'identity list) :key 'cadr)) 2014-09-23T20:42:43Z faheem__1: and yes, it's not an ideal way to go, obviously 2014-09-23T20:43:19Z drmeister_: I see, and we are up to GCC 4.8 and they don't want to maintain a hacked version of GCC 4.0? 2014-09-23T20:43:56Z drmeister_: Is FFIGEN written in Common Lisp? 2014-09-23T20:44:14Z oudeis joined #lisp 2014-09-23T20:44:28Z Shinmera quit (Quit: しつれいしなければならないんです。) 2014-09-23T20:44:38Z stassats: (block nil (reduce (lambda (x y) (if (eql y ELT) (return x) y)) LIST)) then 2014-09-23T20:44:40Z faheem__1: drmeister_: essentially, yes. well, they don't want a hacked copy of 4.0 in their archives. it's a form of pollution apparently 2014-09-23T20:45:01Z gingerale quit (Ping timeout: 260 seconds) 2014-09-23T20:45:09Z faheem__1: drmeister_: FFIGEN itself. umm. it's a binary, which parses the C headers 2014-09-23T20:45:27Z Xach: stassats: nice. 2014-09-23T20:45:39Z faheem__1: and i guess written in C, cos that's what gcc 4.0 is written in 2014-09-23T20:46:34Z White_Flame: stassats: still O(n), though ;) 2014-09-23T20:46:39Z faheem__1: actually, testing is now at 4.9. stable is still at 4.7. 2014-09-23T20:46:57Z drmeister_: What generates the FFI code? It's Common Lisp FFI code that is generated - correct? 2014-09-23T20:47:00Z stassats: White_Flame: that is the minimum possible 2014-09-23T20:47:07Z jkaye joined #lisp 2014-09-23T20:47:13Z faheem__1: drmeister_: yes, Common Lisp FFI code, afaik 2014-09-23T20:47:41Z faheem__1: the code that is generated is certainly CL, at least. i *think* it is FFI code 2014-09-23T20:47:55Z faheem__1: no idea how specific to CCL it is 2014-09-23T20:48:06Z thierrygar quit (Ping timeout: 272 seconds) 2014-09-23T20:48:15Z stassats: if i were after performance, naturally i would choose (loop for (x y) on '(1 2 3) thereis (and (eql y 2) x)) 2014-09-23T20:48:50Z drmeister_: But is FFIGEN a binary that does all of this or are there two parts (1) A program (binary) that reads the C header files and generates an intermediate file and (2) A program (Common Lisp hopefully) that reads the intermediate file and generates Common Lisp FFI code. 2014-09-23T20:49:25Z White_Flame: stassats: I don't know what the use of this particular function is, but it seems odd to me that it would only be called a few times per list, where precalculation of a priors table wouldn't benefit 2014-09-23T20:49:47Z White_Flame: if something's walking around a list, I suspect it'd be hitting the same list often, but it all depends on the use 2014-09-23T20:50:09Z stassats: there's no basis for any of such assumptions 2014-09-23T20:50:27Z White_Flame: hence starting with "I don't know what that use of this particular function is..." 2014-09-23T20:50:33Z fridim__ quit (Ping timeout: 260 seconds) 2014-09-23T20:50:54Z White_Flame: but my usage scenarios tend to be pretty functional, and precalculating speedups benefit quite a bit of code in my experience 2014-09-23T20:51:25Z White_Flame: also, deferring to "you decide!" in terms of criteria for "better" :) 2014-09-23T20:51:45Z stassats: i guess you went with "the most silly" then 2014-09-23T20:52:05Z faheem__1: drmeister_: afaik, it is all just binary 2014-09-23T20:52:17Z White_Flame: I went with "things that can destroy performance of an enterprise-scale deployment" 2014-09-23T20:52:28Z faheem__1: drmeister_: just one binary 2014-09-23T20:52:45Z faheem__1: i don't see any intermediate thingy 2014-09-23T20:52:52Z stassats: White_Flame: that does sound enterprise indeed, doing things before knowing what should be done 2014-09-23T20:53:19Z White_Flame: hence I gave the context which justifies going sub-O(n) in an amortized cost situation 2014-09-23T20:53:35Z wheelsucker joined #lisp 2014-09-23T20:53:40Z drmeister_: Oh well. It would have been easier with a CL program that generated the FFI. 2014-09-23T20:53:42Z stassats: my list is 5 items long, a hashtable will be too slow 2014-09-23T20:53:54Z stassats: and it will be called once in two hours at best 2014-09-23T20:53:56Z faheem__1: drmeister_: oh 2014-09-23T20:53:59Z White_Flame: your lists don't count then. Those are toys, not data ;) 2014-09-23T20:55:37Z drmeister_: Well, I don't know the landscape of FFI generating programs at all. There are probably other solutions out there. The hard problem is always parsing the C/C++. Clasp solves that problem in the best way, it integrates an actively evolving C/C++ compiler and exposes it to Common Lisp. 2014-09-23T20:55:42Z innertracks quit (Ping timeout: 245 seconds) 2014-09-23T20:56:00Z rme: ffigen produces .ffi files, which are s-expression based representations of the information from the .h files. Lisp code then processes the .ffi output and turns it into an on-disk database. 2014-09-23T20:56:26Z stassats: White_Flame: sorry, next time i'll ask for a function which is only applicable to your code 2014-09-23T20:56:45Z prxq: re ffi, imo, a pretty hard part is to come up with the policy part of the binding. 2014-09-23T20:56:48Z faheem__1: rme: the ffi things are CL code, right? 2014-09-23T20:57:01Z drmeister_: Why don't you use SWIG or CFFI-Groveler (http://common-lisp.net/project/cffi/manual/html_node/The-Groveller.html). 2014-09-23T20:57:16Z rme: The .ffi files are data in s-expression form. There's not actual CL code. 2014-09-23T20:57:16Z White_Flame: stassats: I'm just pointing out that you left optimization criteria up to others, then demanded it apply to your unspoken personal criteria. So hey, if you were asking for a function which is only applicable to your code, then at least state your context as I did 2014-09-23T20:57:19Z prxq: by that i mean, how do you keep error handling in sync and other such troubles, 2014-09-23T20:57:25Z faheem__1: rme: ok 2014-09-23T20:57:29Z rme: drmeister: This has all been around since way before then. 2014-09-23T20:58:18Z faheem__1: drmeister_: the current version, which was a revision dates back to like 2000/2001. and again, this was based on an earlier patched gcc 2014-09-23T20:58:28Z thierrygar joined #lisp 2014-09-23T20:58:45Z faheem__1: drmeister_: so we are talking about something that is 20 yrs old or more 2014-09-23T20:59:35Z drmeister_: faheem__1, rme: Right but why are we talking about it? Did it have capabilities that SWIG and CFFI-Groveler don't replicate? 2014-09-23T20:59:57Z rme: Uh, it existed? 2014-09-23T21:00:00Z faheem__1: drmeister_: not sure i follow. it's what is currently in place 2014-09-23T21:00:21Z faheem__1: and like i said, probably predates all the current alternatives. 2014-09-23T21:00:34Z faheem__1: it might be as old as the linux kernel, for example 2014-09-23T21:01:08Z faheem__1: drmeister_: with current tools, it might not be that hard to replace, but someone would have to do the work to find out 2014-09-23T21:01:28Z jasom: IIRC ffigen started with gcc 2.x so was really old 2014-09-23T21:01:29Z drmeister_: Are you using FFIGEN? 2014-09-23T21:01:40Z stassats: White_Flame: short/cute/fast, but not overthought 2014-09-23T21:01:46Z faheem__1: drmeister_: who, me? 2014-09-23T21:02:13Z drmeister_: faheem__1: Yes, are you using FFIGEN for something - why are you interested in getting Debian to support it? 2014-09-23T21:02:16Z jasom: drmeister: ffigen is used by ccl 2014-09-23T21:02:24Z jasom: drmeister: faheem__1 is trying to get ccl into debian 2014-09-23T21:02:31Z faheem__1: drmeister_: i'm not. ffigen is used to build the ccl headers 2014-09-23T21:02:58Z faheem__1: that's what this entire discussion has been about 2014-09-23T21:03:08Z faheem__1: ffigen is purely a means to an end here 2014-09-23T21:03:11Z drmeister_: Ah, so ffigen is part of the build process of ccl - I missed that. 2014-09-23T21:03:16Z faheem__1: drmeister_: right 2014-09-23T21:03:46Z drmeister_: It was a long discussion, my ears perked up when you mentioned that an old version of GCC was used to parse C files. 2014-09-23T21:03:46Z faheem__1: i think clozure would agree it is not the ideal tool any longer. 2014-09-23T21:03:59Z White_Flame: stassats: yet when a newbie comes here, they get bombarded with every related concept, and a "short/cute/fast" explanation does not suffice? :) 2014-09-23T21:04:01Z faheem__1: drmeister_: sure, i wasn't expecting you to be following it. 2014-09-23T21:04:28Z faheem__1: maybe in the 1990s it was the best option available. right now, clearly not 2014-09-23T21:04:52Z White_Flame: stassats: I'm just performing the same type of escalation here 2014-09-23T21:04:59Z oudeis quit (Quit: This computer has gone to sleep) 2014-09-23T21:05:12Z drmeister_ quit (Read error: Connection reset by peer) 2014-09-23T21:05:22Z drmeiste_ joined #lisp 2014-09-23T21:05:29Z |3b|: drmeister_: cffi-grovel is something completely different, it gets platform specific implementation details of already known FFI data (like structure offsets taking into account different padding or whatever) 2014-09-23T21:05:34Z drmeiste_: Sorry, network dropped 2014-09-23T21:06:02Z faheem__1: drmeiste_: that happens in PA too? :-) 2014-09-23T21:06:05Z oudeis joined #lisp 2014-09-23T21:06:08Z ilhami joined #lisp 2014-09-23T21:06:37Z stassats: and yes, i forgot a call to LAST in my ldiff example, but it's still the shortest way 2014-09-23T21:06:50Z drmeiste_ quit (Read error: Connection reset by peer) 2014-09-23T21:06:57Z drmeister quit (Remote host closed the connection) 2014-09-23T21:06:59Z wgl: White_Flame: Very interesting. 2014-09-23T21:07:04Z sz0 quit 2014-09-23T21:07:20Z drmeister joined #lisp 2014-09-23T21:07:35Z drmeiste_ joined #lisp 2014-09-23T21:07:52Z White_Flame: wgl: Have you done stuff in a similar field? 2014-09-23T21:08:00Z drmeist__ joined #lisp 2014-09-23T21:08:13Z drmeist__: I see. faheem__1 - sorry, I misunderstood. You have a special need that Clasp probably can't fill in the near term. I'm interested in the general problem of interfacing C/C++ code to Common Lisp. That's what I thought FFIGEN was solving. I see now that it's a more specific problem that you need FFIGEN to keep ccl working. 2014-09-23T21:08:18Z ggole quit 2014-09-23T21:08:20Z drmeist__ is now known as drmeister_ 2014-09-23T21:08:45Z kuzy000_ quit (Ping timeout: 260 seconds) 2014-09-23T21:09:26Z faheem__1: drmeister_: ok. 2014-09-23T21:09:28Z drmeister_: On a side note: I love tmux - even with my network ping-ponging up and down my job keeps running. 2014-09-23T21:09:49Z faheem__1: drmeister_: aren't US networks supposed to be stable? 2014-09-23T21:09:57Z dmiles_afk quit (Ping timeout: 272 seconds) 2014-09-23T21:10:00Z faheem__1: or are you on some wireless network? 2014-09-23T21:10:06Z drmeister_: I was walking around the building. 2014-09-23T21:10:07Z jasom: drmeiste_: fwiw xpra does the same thing for x11, but leaks memory like a sieve 2014-09-23T21:10:31Z drmeister_: "fwiw xpra" does what for x11? 2014-09-23T21:10:44Z drmeister_: Parses C header files? 2014-09-23T21:10:46Z faheem__1: drmeister_: it's a similar concept, but for X 2014-09-23T21:10:55Z faheem__1: drmeister_: xpra ~ tmux 2014-09-23T21:10:56Z |3b|: faheem__1: US networks are supposed to be profitable :/ 2014-09-23T21:11:05Z faheem__1: |3b|: lol 2014-09-23T21:11:30Z drmeister_: Why does ccl need to parse C header files? 2014-09-23T21:11:42Z faheem__1: i don't think xpra works very well, though. i tried it once. 2014-09-23T21:11:53Z drmeister quit (Ping timeout: 258 seconds) 2014-09-23T21:11:54Z faheem__1: drmeister_: to build C interface headers 2014-09-23T21:12:20Z Bike_ joined #lisp 2014-09-23T21:13:21Z drmeister_: I see - to achieve C interop with CL. 2014-09-23T21:13:21Z faheem__1: drmeister_: i'm not sure if you get to read the backlog when you reconnect 2014-09-23T21:13:24Z hiroakip quit (Ping timeout: 260 seconds) 2014-09-23T21:13:31Z drmeister_: I don't. 2014-09-23T21:13:35Z drmeister_: I live in the NOW. 2014-09-23T21:13:47Z faheem__1: drmeister_: i think so. you want me to give a link? 2014-09-23T21:14:09Z drmeister_: I'm reading this one: http://ccl.clozure.com/manual/chapter13.7.html 2014-09-23T21:14:25Z dmiles_afk joined #lisp 2014-09-23T21:14:45Z Bike_ is now known as Bicyclidine 2014-09-23T21:15:00Z faheem__1: drmeister_: yes, that covers it, i think 2014-09-23T21:15:21Z jordonbiondo quit (Ping timeout: 272 seconds) 2014-09-23T21:15:24Z drmeister_: Why is it important to get ccl into Debian? 2014-09-23T21:15:50Z drmeister_: Debian is a big important software repository? 2014-09-23T21:15:52Z faheem__1: drmeister_: in the larger scheme of things, i suppose it isn't. 2014-09-23T21:16:12Z faheem__1: it won't solve world poverty, global warming, or stop wars. :-) 2014-09-23T21:16:32Z drmeister_: That's the job of C++. 2014-09-23T21:16:35Z fantazo joined #lisp 2014-09-23T21:16:37Z faheem__1: drmeister_: but i'm a debian user, and i'm trying to support debian 2014-09-23T21:16:43Z faheem__1: though they don't make it easy 2014-09-23T21:17:50Z drmeister_: I understand 2014-09-23T21:17:58Z faheem__1: drmeister_: also, having an out of the box CL implementation of arguably the second most popular CL implementation on the most widely used free software platform wouldn't hurt 2014-09-23T21:18:15Z faheem__1: wouldn't hurt CL usage, i mean. and CL usage could use all the help it could get 2014-09-23T21:18:32Z kanru quit (Ping timeout: 260 seconds) 2014-09-23T21:19:11Z wgl: White_Flame: Are you familiar with http://www.zynamics.com/bindiff.html? 2014-09-23T21:20:29Z White_Flame: I've glanced at it before 2014-09-23T21:20:46Z wgl: White_Flame: I work in the security industry and have several half-started projects for analyzing executables, particularly .net, which is what many of my customers use. 2014-09-23T21:20:51Z White_Flame: most of those tools perform discovery of well-formed binaries, not degenerate cases, nor high-level meanings of what the code does 2014-09-23T21:21:06Z hiroakip joined #lisp 2014-09-23T21:21:39Z faheem__1: drmeister_: to be more explicit - if someone thinks to himself (or herself) hey, let me check out CL, they might do `apt-get install ccl'. they are less likely to go to clozure.com and start screwing around 2014-09-23T21:21:48Z wgl: Yes, the story about bindiff that I remember was that they analyzed code from a Microsoft patch, comparing a fixed dll with the unfixed one, and found a similar vulnerable pattern in an unpatched dll elsewhere in the system. 2014-09-23T21:21:54Z sz0 joined #lisp 2014-09-23T21:22:08Z sz0 quit (Max SendQ exceeded) 2014-09-23T21:22:35Z sz0 joined #lisp 2014-09-23T21:22:40Z White_Flame: wgl: cool, but the pattern was given to the system, not discovered by it, right? 2014-09-23T21:22:41Z wgl: Of particular interest to me is static source code analyzers. The crop of them that I have tried are all pretty bad, in that they have more false positives than worthwhile reports. 2014-09-23T21:22:44Z sz0 quit (Max SendQ exceeded) 2014-09-23T21:23:02Z White_Flame: wgl: yeah, my stuff by definition is static analysis 2014-09-23T21:23:16Z White_Flame: (working with binaries, not at runtime) 2014-09-23T21:23:21Z wgl: No, first step was to do call graph analysis if the unpatched dll, then same thing for the patched one, and identify what had changed, then look for that pattern elsewher in the system. 2014-09-23T21:23:34Z White_Flame: ok 2014-09-23T21:23:53Z drmeister_: faheem__1: I get it. But there are old programs that are chained to old programs. The cost of bringing them forward can be high. 2014-09-23T21:24:45Z dmiles_afk quit (Ping timeout: 272 seconds) 2014-09-23T21:24:51Z faheem__1: drmeister_: agreed. 2014-09-23T21:25:33Z Jesin joined #lisp 2014-09-23T21:25:34Z wgl: But semantic result would be useful, and for this particular need something output from a compiler would suit. For example, the roslyn compiler for .net. Compiler as a service. 2014-09-23T21:25:37Z White_Flame: wgl: how far along in analysis have your half-started projects gotten to? 2014-09-23T21:26:27Z sheilong quit (Quit: Konversation terminated!) 2014-09-23T21:26:58Z faheem__1: drmeister_: i don't actually know how difficult this task is. it might not be that hard 2014-09-23T21:26:58Z drmeister_ quit (Read error: Connection reset by peer) 2014-09-23T21:26:59Z wgl: Half-started is probably charitible. Crudley decomposes a .arm executable from an internet phone; pulling apart a dll to find what the type is. 2014-09-23T21:27:06Z wgl: Quite raw at this point. 2014-09-23T21:28:33Z wgl: What stage is your effort at? 2014-09-23T21:28:36Z White_Flame: ok. While most of my work has been ontological design (and that's where the real challenges are), in my running experiments I do have things like chaining the sources & sinks of various register values & flags, and code overlays 2014-09-23T21:28:46Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-09-23T21:29:02Z wgl: Ah, nice. You are going for, e.g., x86 family? 2014-09-23T21:29:07Z White_Flame: (overlays = multiple loaders, or decompressed code (which is a cop-out via emulation now)) 2014-09-23T21:29:33Z White_Flame: I've got a reasonable abstraction for the CPU, with the 6502 currently defined. It's only a few hundred lines in my description language so far 2014-09-23T21:29:48Z wgl: Ah. Built on CL? 2014-09-23T21:30:27Z White_Flame: our symbolic AI platform is built on CL 2014-09-23T21:31:06Z wgl: So clearly you are going for deeper understanding than simple taint analysis, for example? 2014-09-23T21:31:11Z White_Flame: my tests are running CLIPS, while I update the totl (our rule language) compiler to support some of the more speed-choking scenarios 2014-09-23T21:31:26Z White_Flame: right, complete descriptive reverse engineering is the pipe dream goal 2014-09-23T21:31:51Z White_Flame: including discovery of file formats, network protocols, etc 2014-09-23T21:32:51Z White_Flame: hence, it is a proper AI approach of conceptual understanding, not an algorithmic breakdown 2014-09-23T21:33:43Z White_Flame: though algorithmic breakdown can go a long way in the beginning 2014-09-23T21:34:55Z White_Flame: I've been trying to find a good automated approach to the problem since the 90s, but in the last 5 or so years actually have built tools that can begin actually tackling it 2014-09-23T21:35:27Z pt1 quit (Remote host closed the connection) 2014-09-23T21:36:13Z pt1 joined #lisp 2014-09-23T21:36:14Z wgl: Is it this clips? White_Flame 2014-09-23T21:36:20Z wgl: http://clipsrules.sourceforge.net/ 2014-09-23T21:36:33Z White_Flame: yep, I"ve been doing some smaller tests in that 2014-09-23T21:36:57Z pt1 quit (Remote host closed the connection) 2014-09-23T21:37:09Z wgl: Interesting. Doesn't sound like a small challenge. 2014-09-23T21:37:21Z White_Flame: but the RETE algorithm doesn't scale too well with data-driven projects; it expects lots of rules, and small amounts of data. 2014-09-23T21:37:39Z Bicyclidine quit (Quit: Lost terminal) 2014-09-23T21:37:57Z White_Flame: small 1KB machine code binaries are taking up hundreds of megs of RAM 2014-09-23T21:38:27Z White_Flame: though that's partially because of the fine-grained level of detail of the information being asserted about everything 2014-09-23T21:38:28Z wgl: I would think. 2014-09-23T21:39:06Z White_Flame: so I'm all about declarative->imperative, HLL->HLL compilation nowadays 2014-09-23T21:39:31Z Bike_ joined #lisp 2014-09-23T21:39:32Z wgl: So you would, for example, inhale a malware to spit out a description of what it is doing? 2014-09-23T21:39:41Z Bike_ is now known as Bicyclidine 2014-09-23T21:39:44Z White_Flame: sure 2014-09-23T21:40:15Z drmeiste_ quit (Remote host closed the connection) 2014-09-23T21:40:29Z drmeister joined #lisp 2014-09-23T21:41:16Z drmeiste_ joined #lisp 2014-09-23T21:41:17Z wgl: I am wondering if you are expecting to get some reduction in graph space if you can collapse certain recognized sequences? 2014-09-23T21:41:24Z oudeis quit (Ping timeout: 260 seconds) 2014-09-23T21:42:01Z resttime: Whoa allegrograph is strong: http://www.w3.org/wiki/LargeTripleStores 2014-09-23T21:42:27Z White_Flame: wgl: that is kind of the definition of reverse engineering. ;) taking small steps and making sweeping declarations of what those steps are doing, then recurse 2014-09-23T21:45:49Z oudeis joined #lisp 2014-09-23T21:47:03Z wgl: Would be harder for "mean" programs. Such as self-decrypting stuff. 2014-09-23T21:47:27Z White_Flame: I already support that via memory overlays and emulation passes (the weenie cop-out approach) 2014-09-23T21:47:47Z White_Flame: one thing that really annoys me about things like IDA and other byte-tagging architectures is that they can't have multiple meanings per instruction easily 2014-09-23T21:48:26Z White_Flame: nor do I believe it even supports jumping into the middle of instructions 2014-09-23T21:48:39Z wgl: Well, not sure if you can avoid the cop-out approach. 2014-09-23T21:48:49Z nyef: There are some architectures where you can't jump into the middle of an instruction, but yeah. 2014-09-23T21:48:54Z smithzv joined #lisp 2014-09-23T21:48:57Z wgl: I remember reading that this chokes IDA and is a favorite trick of malware writers. 2014-09-23T21:49:06Z smithzv is now known as Guest60129 2014-09-23T21:49:11Z nyef: It's been used on 6502 quite a bit, and in windows core DLLs as well. 2014-09-23T21:49:33Z White_Flame: right, it's existed since at least the 70s, and I'd be surprised if not earlier 2014-09-23T21:50:44Z nyef: White_Flame: Out of curiosity, have you read about Don Lancaster's "tearing" method for reverse engineering? 2014-09-23T21:51:05Z wgl: Perhaps, but the first time I heard about it was on the 8085. 2014-09-23T21:51:08Z fantazo quit (Quit: Verlassend) 2014-09-23T21:51:28Z robot-beethoven joined #lisp 2014-09-23T21:52:01Z wgl: www.tinaja.com/glib/degub.pdf 2014-09-23T21:52:49Z White_Flame: nyef: having the machine trace actual instructions achieves similar effect 2014-09-23T21:53:21Z White_Flame: detecting text and unreached code would be the human contribution there 2014-09-23T21:53:26Z ilhami quit (Quit: Nettalk6 - www.ntalk.de) 2014-09-23T21:53:49Z nyef: Mmm... ASCII text blocks should be easy for a computer to spot. 2014-09-23T21:54:10Z White_Flame: yeah, but lots of false positives. And useless unless you know what's pointing to it 2014-09-23T21:54:16Z wgl: Not the right one. 2014-09-23T21:56:20Z nyef: You'd have a lot fewer false positives if you matched against, say, a spelling dictionary. 2014-09-23T21:56:44Z mac_ified quit (Ping timeout: 258 seconds) 2014-09-23T21:57:45Z White_Flame: of course, when you're talking about retro computing, you've also got PETSCII, ASCII, EBCDIC, font/tile offsets, screen codes, etc 2014-09-23T21:57:47Z drmeiste_ quit (Remote host closed the connection) 2014-09-23T21:57:51Z nyef: True. 2014-09-23T21:58:10Z White_Flame: as well as high-bit flags mixed in with text. You need to know how it's interpreted 2014-09-23T21:58:14Z drewc: nyef: or, say, anything that is not ASCII text is spam? http://www.gigamonkeys.com/book/practical-a-spam-filter.html is still something I enjoy! :) 2014-09-23T21:58:17Z nyef: And then you watch for writes to video memory (or the VDP/PPU/whatever)... 2014-09-23T21:58:18Z wgl: ascii85, six bit compression 2014-09-23T21:58:43Z nyef: minion: Advice on heuristic? 2014-09-23T21:58:44Z minion: #11953: Of course, this is a heuristic, which is a fancy way of saying that it doesn't work. 2014-09-23T21:58:57Z stassats quit (Ping timeout: 272 seconds) 2014-09-23T21:59:40Z White_Flame: drewc: but what of my APL mailing list? 2014-09-23T21:59:50Z nyef: White_Flame: Here's a real challenge for your system: Will it be able to do an analysis like this? http://www.unlambda.com/pipermail/lispm-hackers/2003-August/001517.html 2014-09-23T22:00:54Z drewc: APL .... yeah, not ASCII at all, so SPAM 2014-09-23T22:01:22Z drewc does not like accents either, both spoken and written! 2014-09-23T22:01:23Z White_Flame: nyef: the tack from an automated perspective would be to break down the interpreter first 2014-09-23T22:02:49Z nyef: White_Flame: Yeah, except that we didn't know what we were looking at in terms of the ROMs that held the interpreter, or a usable grasp on the machine language it was written in. 2014-09-23T22:03:10Z nyef: We knew a little bit about the machine architecture, but not a whole lot. 2014-09-23T22:03:34Z White_Flame: right, that wouldn't be within the field of my project. But in the last 2 years or so, there were some greate demonstration of automated extraction of machine code architectures from binary dumps 2014-09-23T22:03:55Z wgl: nyef: Nice. 2014-09-23T22:05:48Z wgl: nyef: With respect to "There are some architectures where you can't jump into the middle of an 2014-09-23T22:05:48Z wgl: instruction" isn't this what the Chrome Nacl sandbox prevents? 2014-09-23T22:05:56Z davazp joined #lisp 2014-09-23T22:06:56Z White_Flame: I believe it does. JVM validation ensures the same 2014-09-23T22:07:10Z nydel quit (Quit: WeeChat 0.4.2) 2014-09-23T22:07:17Z drmeiste_ joined #lisp 2014-09-23T22:07:20Z nyef: wgl: I'm more thinking of architectures like ALPHA, MIPS, or PPC, where the instructions are all the same length and all aligned. You literally can't ADDRESS the middle of an instruction as code. 2014-09-23T22:08:22Z wgl: nyef: Right. Variable-length instructions are kind of "new". The 8085 was the first of that sort that I had any experience with. 2014-09-23T22:08:30Z ehu quit (Ping timeout: 246 seconds) 2014-09-23T22:08:33Z nydel joined #lisp 2014-09-23T22:09:12Z wgl: Oh, except for the Burroughs 3500--it had something different. Seems like the addresses were variable length. But for sure they were in *decimal*, believe it or not. 2014-09-23T22:09:51Z wgl: And the Burroughs b1700, whose instruction size varied based on the total address space needed by each program. 2014-09-23T22:09:53Z White_Flame: The RISC movement brought on fixed-sized instructions as a "thing", so I'd regard that as the "kind of new" approach 2014-09-23T22:10:00Z nyef: I'd believe it: Old-school 36-bit machines were 36 bits because that way you got so many BCD digits. 2014-09-23T22:10:17Z White_Flame: while obviously the first machines had fixed dispatch bitfields and such 2014-09-23T22:10:34Z White_Flame: but varying operand sizes is pretty classic 2014-09-23T22:10:50Z wgl: nyef: Except the CDC 3500 didn't have BCD as I recall--mostly used for scientific and it was 36 bits. 2014-09-23T22:11:18Z wgl: Also, pdp-10 was certainly not decimal (although they added some instructions later on, I think) and it was 36 bits. 2014-09-23T22:11:39Z nyef: The entire point of a 36-bit machine is that it has (/ 36 4) => 9 BCD digits worth of precision. 2014-09-23T22:12:25Z wgl: nyef: Not all of them. One motivation for the pdp-10 architecture was that it could hold two address in a word. 2014-09-23T22:12:46Z nyef: After all, binary numbers and floating point are horribly confusing, and everybody just uses decimal math for physics calculations anyway. 2014-09-23T22:13:43Z wgl: Er, not sure that is true. 2014-09-23T22:13:59Z mishoo quit (Ping timeout: 258 seconds) 2014-09-23T22:15:13Z White_Flame: Konrad Zuse used binary floating point, so everybody else after him was just a poser 2014-09-23T22:15:39Z wgl: Sorry, I misspoke. the 3500 had a 48 bit word size. 2014-09-23T22:16:01Z nyef: Heh! Have fun simulating THAT on a 32-bit Lisp! 2014-09-23T22:16:29Z nyef speaks from experience with that one, the Raven processor has a 48-bit microinstruction word. 2014-09-23T22:19:13Z davazp quit (Ping timeout: 272 seconds) 2014-09-23T22:19:29Z wgl: But floating point was pretty much a universal disaster until the IEEE standard came out. 2014-09-23T22:21:03Z wgl: Was the Raven processor a process control device? 2014-09-23T22:23:09Z nyef: http://www.unlambda.com/index.php?n=Main.Nevermore 2014-09-23T22:23:37Z nyef: "process control" That might be stretching things a bit. (-: 2014-09-23T22:24:40Z wgl: nyef: Ah, cool. 2014-09-23T22:28:17Z Guest60129 left #lisp 2014-09-23T22:29:01Z defaultxr joined #lisp 2014-09-23T22:33:15Z InfusoElAmbulant quit (Read error: Connection reset by peer) 2014-09-23T22:33:15Z drmeiste_ quit (Read error: Connection reset by peer) 2014-09-23T22:34:45Z drmeiste_ joined #lisp 2014-09-23T22:36:22Z wgl: White_Flame: What do you anticipate the ultimate use of your reverser to be? 2014-09-23T22:36:57Z sz0 joined #lisp 2014-09-23T22:37:17Z sz0 quit (Max SendQ exceeded) 2014-09-23T22:38:37Z drmeiste_ quit (Read error: Connection reset by peer) 2014-09-23T22:38:38Z White_Flame: while there are many uses, the "ultimate" would be to give the machine a conceptualized understanding of a programming project, so it could write code from intent 2014-09-23T22:38:53Z White_Flame: and have it worry about the details 2014-09-23T22:39:17Z White_Flame: that's a bit further down the pipe dream pipe 2014-09-23T22:39:57Z wgl: Does not sound like a small project. 2014-09-23T22:40:48Z drmeister quit (Remote host closed the connection) 2014-09-23T22:41:27Z White_Flame: but there are more realizable steps in the path to that, and those are interesting in and of themselves 2014-09-23T22:41:29Z hiroakip quit (Ping timeout: 272 seconds) 2014-09-23T22:41:39Z drmeister joined #lisp 2014-09-23T22:41:51Z wgl: Yes, i can envision a few. 2014-09-23T22:44:19Z drmeiste_ joined #lisp 2014-09-23T22:45:20Z EvW quit (Remote host closed the connection) 2014-09-23T22:48:52Z jegaxd26 quit (Read error: Connection reset by peer) 2014-09-23T22:49:31Z EvW joined #lisp 2014-09-23T22:59:06Z jkaye quit (Remote host closed the connection) 2014-09-23T22:59:40Z jkaye joined #lisp