2015-02-06T00:00:06Z tokenrove: axion: how did you package things up? did you use buildapp or did you save-lisp-and-die directly? 2015-02-06T00:00:56Z axion: no need for buildapp...i just wrote a single line compile.lisp with save-lisp-and-die 2015-02-06T00:01:02Z enitiz joined #lisp 2015-02-06T00:01:14Z vaporatorius quit (Remote host closed the connection) 2015-02-06T00:01:31Z axion: well a few lines if you count quickload/in-package 2015-02-06T00:02:20Z tokenrove: cool. thanks! seems a lot less pain-filled than it used to be. 2015-02-06T00:02:23Z fe[nl]ix: axion: congratulations 2015-02-06T00:02:45Z axion: on what? :) 2015-02-06T00:03:32Z fe[nl]ix: making a game work on Linux and Win32 is an accomplishment 2015-02-06T00:04:05Z axion: ah...i didn't need to do anything platform specific as of yet. maybe i will eventually run into such issues you speak of :) 2015-02-06T00:04:16Z kephra quit (Ping timeout: 252 seconds) 2015-02-06T00:05:50Z fe[nl]ix: axion: I'm happy for you 2015-02-06T00:05:58Z fe[nl]ix: this deserves blogging 2015-02-06T00:06:48Z axion: heh, i am just learning tbh. and i just very recently started blogging about the process 2015-02-06T00:07:10Z nugnuts joined #lisp 2015-02-06T00:07:54Z |3b|: tokenrove: last time i tried, sbcl had some subtle thread problems on windows, at least to the point it couldn't pass the tests... haven't noticed it in normal use though 2015-02-06T00:08:17Z rtra quit (Ping timeout: 250 seconds) 2015-02-06T00:09:51Z kephra joined #lisp 2015-02-06T00:11:00Z Karl_Dscc joined #lisp 2015-02-06T00:12:09Z ebrasca joined #lisp 2015-02-06T00:12:32Z ebrasca quit (Client Quit) 2015-02-06T00:13:46Z rtra joined #lisp 2015-02-06T00:17:41Z tokenrove: |3b|: that's what i feared. i have used ccl in the past when i've needed to deliver on windows, but it sounds like the problems aren't as bad now. still, debugging subtle thread problems on my least favorite platform does not tempt me. 2015-02-06T00:18:27Z |3b|: might just work, most people don't do the sort of things the test suite does :) 2015-02-06T00:23:27Z Jesin quit (Ping timeout: 264 seconds) 2015-02-06T00:24:28Z Jesin joined #lisp 2015-02-06T00:24:29Z a20150205 joined #lisp 2015-02-06T00:25:19Z resttime_ joined #lisp 2015-02-06T00:26:22Z john-mcaleely quit (Ping timeout: 240 seconds) 2015-02-06T00:26:31Z john-mcaleely joined #lisp 2015-02-06T00:28:09Z resttime quit (Ping timeout: 245 seconds) 2015-02-06T00:34:53Z edgar-rft joined #lisp 2015-02-06T00:36:18Z profess joined #lisp 2015-02-06T00:38:26Z cdtaylor quit (Remote host closed the connection) 2015-02-06T00:39:37Z bjorkintosh quit (Ping timeout: 250 seconds) 2015-02-06T00:41:59Z bjorkintosh joined #lisp 2015-02-06T00:44:55Z linux_dream joined #lisp 2015-02-06T00:46:01Z linux_dream: hi people. my lispbox IDE stopped to work, so I downloaded Emacs instead, but I am still unable to execute lisp code 2015-02-06T00:46:08Z kcj joined #lisp 2015-02-06T00:46:26Z linux_dream: I created a file called test.lisp with a single line in it : (+ 1 1) 2015-02-06T00:47:06Z emaczen: linux_dream: What dialect of lisp do you wish to use? 2015-02-06T00:47:06Z linux_dream: I followed google's tip to execute Common Lisp code in Emacs but that did not work. (alt+x lisp-mode for instance) 2015-02-06T00:47:13Z linux_dream: Common Lisp 2015-02-06T00:47:46Z emaczen: linux_dream: It's pretty standard to use slime (a common lisp mode for emacs) 2015-02-06T00:48:01Z oGMo: linux_dream: get a common lisp, get slime, use slime to run or connect to lisp, then it'll work 2015-02-06T00:48:15Z emaczen: linux_dream: do you know how to use emacs? 2015-02-06T00:48:30Z linux_dream: I see. but I use an Arch linux derivative and slime does not appear in the AUR as a stable version (only the git version is there), which seems scary to me 2015-02-06T00:48:38Z emaczen: M-x package-install slime 2015-02-06T00:48:40Z linux_dream: no, I am new to emacs 2015-02-06T00:48:48Z emaczen: Do you know what M-x is? 2015-02-06T00:48:54Z linux_dream: yes 2015-02-06T00:49:01Z linux_dream: Alt+x keys 2015-02-06T00:49:06Z emaczen: Are you using emacs 24 ? 2015-02-06T00:49:12Z linux_dream: I think so 2015-02-06T00:49:25Z linux_dream: my lisp compiler (I think), is SBCL 2015-02-06T00:49:28Z oGMo: and melpa 2015-02-06T00:49:28Z emaczen: M-x version will tell you 2015-02-06T00:49:55Z oGMo: SBCL would definitely be your CL 2015-02-06T00:50:05Z k-dawg joined #lisp 2015-02-06T00:50:11Z linux_dream: gnu emacs 24.4.1 2015-02-06T00:50:37Z emaczen: If you have emacs 24, then you can just simply do: 'M-x package-install' then enter 'slime' 2015-02-06T00:50:58Z linux_dream: according to the gnu emacs website if I visit a file that ends in .lisp , the external lisp mode is auto loaded or something like that 2015-02-06T00:50:58Z theseb quit (Quit: Leaving) 2015-02-06T00:51:18Z linux_dream: ok but do I really need slime? 2015-02-06T00:51:28Z oGMo: linux_dream: lisp-mode is only a piece of the puzzle; slime will actually make emacs talk to the lisp 2015-02-06T00:51:29Z emaczen: linux_dream: you should be able to get slime working in like 2 minutes 2015-02-06T00:51:37Z linux_dream: my goal is to edit or just read some code from time to time 2015-02-06T00:51:49Z linux_dream: okay I'm getting it 2015-02-06T00:52:36Z linux_dream: [No Match] is what I get 2015-02-06T00:52:44Z linux_dream: there's no package called slime 2015-02-06T00:53:19Z linux_dream: if I search in the AUR (Arch repository), there's only a git version of slime 2015-02-06T00:53:26Z linux_dream: so I guess unstable 2015-02-06T00:53:47Z oGMo: probably need melpa 2015-02-06T00:53:58Z oGMo: that said, just get the git version, it's what you'll want anyway ;P 2015-02-06T00:54:16Z linux_dream: that would be my first git package 2015-02-06T00:54:26Z linux_dream: I just hope that it doesn't get updated every time I reboot my pc.... 2015-02-06T00:54:45Z oGMo: git doesn't update unless you tell it to 2015-02-06T00:55:00Z linux_dream: ok then perfect, I'm getting it 2015-02-06T00:55:06Z hiroakip quit (Ping timeout: 245 seconds) 2015-02-06T00:56:16Z linux_dream: I'm confused on which package to download from the AUR 2015-02-06T00:57:16Z vdamewood quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-02-06T00:58:14Z ninjazach joined #lisp 2015-02-06T00:58:16Z linux_dream: well I'll go by the number of "votes" :) 2015-02-06T00:58:47Z emaczen: AUR? 2015-02-06T00:59:06Z linux_dream: yes the arch user repository 2015-02-06T00:59:21Z linux_dream: anyway I'm downloading slime 2015-02-06T00:59:24Z emaczen: I have never used arch, but I plan on it eventually :) 2015-02-06T00:59:41Z linux_dream: I use MAnjaro which is based on Arch (and therefore can use the AUR) 2015-02-06T00:59:51Z linux_dream: Manjaro is Arch made for noobs :) 2015-02-06T01:00:13Z eudoxia: i downloaded slime from quicklisp, and that works for me, so idk ;c 2015-02-06T01:00:15Z eudoxia: c; 2015-02-06T01:00:25Z emaczen: linux_dream: I'm a major emacs user and plan on just using emacs for everything on top of Arch... lol 2015-02-06T01:00:37Z linux_dream: :) 2015-02-06T01:00:49Z eudoxia quit (Quit: Leaving) 2015-02-06T01:00:52Z linux_dream: anyway it seems like it's compiling/building slime now 2015-02-06T01:01:36Z sheilong quit (Quit: Konversation terminated!) 2015-02-06T01:01:52Z linux_dream: ok done, installed. now what? :D 2015-02-06T01:03:09Z kephra quit (Ping timeout: 245 seconds) 2015-02-06T01:03:11Z linux_dream: I've started Emacs, opened my file with (+ 1 1) 2015-02-06T01:03:56Z emaczen: linux_dream: You might want to head over to #emacs as wel 2015-02-06T01:04:36Z linux_dream: ok thanks 2015-02-06T01:04:36Z emaczen: Most of the packages I use come from MELPA (the built in package manager, and so you don't really have to do anything) 2015-02-06T01:05:25Z emaczen: M-x slime will start your CL and will open up a REPL in a buffer 2015-02-06T01:05:45Z emaczen: Before that, you have to tell emacs where it can find the emacs sources to run slime 2015-02-06T01:06:56Z linux_dream: M-x slime returns [No match] 2015-02-06T01:07:14Z emaczen: linux_dream: Yeah, you are going to have to tell emacs where to find the emacs sources to run slime 2015-02-06T01:07:43Z emaczen: I did something recently with slime -- I'll look in my emacs initialization file and help you out 2015-02-06T01:08:26Z stardiviner quit (Ping timeout: 245 seconds) 2015-02-06T01:08:31Z emaczen: (add-to-list 'load-path "path-to-slime-directory") 2015-02-06T01:08:33Z kephra joined #lisp 2015-02-06T01:08:43Z emaczen: ^^ put that in your .emacs file 2015-02-06T01:08:53Z cadadar quit (Quit: Leaving.) 2015-02-06T01:09:17Z emaczen: .emacs on Ubuntu is in ~/.emacs.d -- I don't know what the Arch equivalent directory would be. 2015-02-06T01:10:35Z emaczen: linux_dream: Are you doing alright? 2015-02-06T01:12:08Z emaczen: can you expand a list into arguments inside a macro? 2015-02-06T01:12:17Z camm` joined #lisp 2015-02-06T01:13:13Z linux_dream: almost all right. dunno how to make slime work but found out how to execute lisp code with emacs 2015-02-06T01:13:58Z emaczen: What I mean by expand a list into arguments inside a macro is -- If I pass '(arg1 arg2 arg3) into my macro how can I expand this into a variable number of arguments inside my macro? 2015-02-06T01:14:14Z emaczen: linux_dream: are you executing emacs-lisp? 2015-02-06T01:16:05Z pillton: The term macro is short for macro function. You can open a GUI window during macro expansion if you like. 2015-02-06T01:16:37Z emaczen: pillton: I mean, how do I do it? 2015-02-06T01:16:59Z pillton: emaczen: I mean, the same way you do it in a function. 2015-02-06T01:17:06Z emaczen: Right now, my macro fails because the function which it will eventually call takes a variable number of arguments and not a list 2015-02-06T01:17:13Z emaczen: pillton: I am newer to common lisp... 2015-02-06T01:18:12Z camm` quit (Ping timeout: 245 seconds) 2015-02-06T01:19:00Z Bike: you might want ,@ splicing. 2015-02-06T01:19:33Z pillton: http://hastebin.com/likesubotu 2015-02-06T01:20:02Z linux_dream: I don't know emacszen 2015-02-06T01:20:12Z linux_dream: apparently I didn't link slime to emacs yet 2015-02-06T01:21:02Z emaczen: pillton: what is the hastebin url for? 2015-02-06T01:21:14Z pillton: emaczen: http://paste.lisp.org/display/145669 2015-02-06T01:21:30Z kcj quit (Remote host closed the connection) 2015-02-06T01:21:54Z karswell joined #lisp 2015-02-06T01:22:07Z stardiviner joined #lisp 2015-02-06T01:22:34Z emaczen: pillton: the function which gets called has a rest parameter 2015-02-06T01:22:39Z emaczen: &rest 2015-02-06T01:23:20Z Karl_Dscc quit (Remote host closed the connection) 2015-02-06T01:23:25Z emaczen: so I can't just pass it the list 2015-02-06T01:24:11Z emaczen: maybe the terminology is "unpack a list"? 2015-02-06T01:24:32Z pillton: I'd do better if you paste what you have and what you want. 2015-02-06T01:24:36Z k-dawg quit (Quit: This computer has gone to sleep) 2015-02-06T01:24:42Z emaczen: pillton: sure, give me a second 2015-02-06T01:24:59Z kcj joined #lisp 2015-02-06T01:25:09Z linux_dream: ok installing slime from the AUR was a bad idea 2015-02-06T01:25:15Z linux_dream: it's from 2011 2015-02-06T01:25:28Z linux_dream: I should install it via the MELPA... but must install that first 2015-02-06T01:25:37Z huza joined #lisp 2015-02-06T01:25:52Z kraehe joined #lisp 2015-02-06T01:27:47Z emaczen: pillton: http://paste.lisp.org/display/145670 2015-02-06T01:27:57Z emaczen: linux_dream: I'll help you out -- the more people that use emacs the better! 2015-02-06T01:28:12Z kephra quit (Ping timeout: 244 seconds) 2015-02-06T01:28:14Z emaczen: (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") 2015-02-06T01:28:14Z emaczen: ("marmalade" . "http://marmalade-repo.org/packages/") 2015-02-06T01:28:14Z emaczen: ("melpa" . "http://melpa.milkbox.net/packages/"))) 2015-02-06T01:28:16Z Bike: `(called-by-macro ,arg3 ,@many) 2015-02-06T01:28:23Z bgs100 joined #lisp 2015-02-06T01:28:45Z emaczen: linux_dream: put what I pasted above in your .emacs file 2015-02-06T01:31:14Z innertracks quit (Quit: innertracks) 2015-02-06T01:31:20Z linux_dream: i can't find my .emacs file 2015-02-06T01:31:32Z linux_dream: locate .emacs returns emacs.d which is a folder 2015-02-06T01:31:40Z linux_dream: .emacs.d 2015-02-06T01:31:45Z emaczen: linux_dream: you have to make it 2015-02-06T01:31:50Z linux_dream: oh... 2015-02-06T01:31:57Z emaczen: Yes! create the .emacs file inside of .emacs.d 2015-02-06T01:32:27Z linux_dream: done 2015-02-06T01:32:40Z linux_dream: then I copy and paste : http://melpa.org/#/getting-started ? 2015-02-06T01:32:49Z antonv` quit (Ping timeout: 264 seconds) 2015-02-06T01:33:08Z linux_dream: apparently according to MELPA I should already have the .emacs file 2015-02-06T01:33:23Z linux_dream: I want to install/use melpa. then I'll get slime 2015-02-06T01:33:24Z emaczen: copy and paste all of what I pasted n 2015-02-06T01:33:53Z emaczen: It should start with (setq package-archives 2015-02-06T01:33:57Z linux_dream: you mean the 3 lines? 2015-02-06T01:33:59Z linux_dream: ok 2015-02-06T01:34:09Z emaczen: Yes -- show me what you have pasted in 2015-02-06T01:34:16Z linux_dream: well it's on my laptop so I have to manually write it 2015-02-06T01:34:21Z hitecnologys joined #lisp 2015-02-06T01:34:26Z hitecnologys quit (Client Quit) 2015-02-06T01:34:51Z emaczen: linux_dream: Ok, it should be fine 2015-02-06T01:36:23Z huza quit (Quit: WeeChat 0.3.8) 2015-02-06T01:37:12Z linux_dream: ok done 2015-02-06T01:37:17Z emaczen: sweet! 2015-02-06T01:38:08Z defaultxr joined #lisp 2015-02-06T01:38:09Z linux_dream: now when I start emacs , M-x slime should work? 2015-02-06T01:38:13Z emaczen: Are you running emacs right now or no? If you are, you can open the .emacs file and evaluate that form. 2015-02-06T01:38:26Z linux_dream: not right now but I can start it 2015-02-06T01:38:58Z emaczen: linux_dream: Start emacs. It will execute those forms that you wrote. 2015-02-06T01:39:12Z emaczen: Those forms just tell emacs how to download packages from MELPA 2015-02-06T01:39:16Z linux_dream: I started it 2015-02-06T01:39:22Z emaczen: no errors? 2015-02-06T01:39:29Z linux_dream: no error 2015-02-06T01:39:31Z emaczen: good 2015-02-06T01:39:40Z emaczen: Now try, M-x package-install 2015-02-06T01:39:42Z linux_dream: so I try to install slime now? 2015-02-06T01:39:49Z emaczen: correct 2015-02-06T01:40:01Z pjb: It's better to install slime using quicklisp-slime-helper, ie. to install quicklisp first. 2015-02-06T01:40:03Z zygentoma quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2015-02-06T01:40:13Z linux_dream: ...... I still get the [No match] 2015-02-06T01:40:28Z pjb: http://cliki.net/Getting+Started 2015-02-06T01:40:30Z linux_dream: looks like emacs is unaware of my .emacs file 2015-02-06T01:40:45Z emaczen: C-x C-f opens files in emacs 2015-02-06T01:40:54Z pjb: C-x C-f ~/.emacs RET 2015-02-06T01:41:07Z Xach: Please troubleshoot emacs in private or in a more appropriate channel. 2015-02-06T01:41:39Z linux_dream: ok 2015-02-06T01:41:54Z emaczen: Bike: ,@many does not do what I would expect 2015-02-06T01:42:09Z pillton: emaczen: See my previous paste as to why. 2015-02-06T01:42:22Z Bike: (let ((x '(1 2 3)) (y 4)) `(foo ,y ,@x)) => (4 1 2 3) 2015-02-06T01:42:41Z Bike: foo 4 1 2 3 2015-02-06T01:43:11Z pillton: emaczen: You are quoting '(arg1 arg2 arg3). 2015-02-06T01:43:19Z pjb: (let ((x '(1 2 3)) (y 4)) `(foo ,y ,@x)) --> (foo 4 1 2 3) 2015-02-06T01:43:24Z pjb: is what I get here. 2015-02-06T01:44:11Z linux_dream: emcszen I must go eat now. I'll be in the #emacs channel for further help. can't get slime so far 2015-02-06T01:44:58Z emaczen: linux_dream: I'll be on #emacs later tonight -- maybe I'll see you there 2015-02-06T01:45:10Z linux_dream: ok nice :) 2015-02-06T01:45:30Z emaczen: pillton: yep -- I removed the quote that I passed to the macro and I got the functionality that I wanted. 2015-02-06T01:45:35Z emaczen: Thanks! 2015-02-06T01:46:04Z emaczen: linux_dream: I'm running an IRC chat client through emacs -- I would suspect a lot of people are doing that here as well. 2015-02-06T01:46:15Z emaczen: linux_dream: emacs should open a realm of new possibilities for you! 2015-02-06T01:46:26Z emaczen quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-02-06T01:52:50Z akkad: meh 2015-02-06T02:05:31Z linux_dream quit (Quit: Leaving) 2015-02-06T02:11:07Z stepnem quit (Ping timeout: 245 seconds) 2015-02-06T02:12:54Z taspat`` joined #lisp 2015-02-06T02:15:10Z zRecursive joined #lisp 2015-02-06T02:15:53Z ninjazach left #lisp 2015-02-06T02:16:23Z Harag joined #lisp 2015-02-06T02:20:08Z huza joined #lisp 2015-02-06T02:25:31Z EvW quit (Ping timeout: 245 seconds) 2015-02-06T02:25:42Z badkins joined #lisp 2015-02-06T02:31:14Z scymtym_ quit (Ping timeout: 244 seconds) 2015-02-06T02:33:39Z theseb joined #lisp 2015-02-06T02:33:45Z Denommus joined #lisp 2015-02-06T02:33:46Z a20150205 quit (Quit: Page closed) 2015-02-06T02:33:59Z Denommus quit (Changing host) 2015-02-06T02:33:59Z Denommus joined #lisp 2015-02-06T02:43:34Z holomorph joined #lisp 2015-02-06T02:43:49Z hiyosi quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-02-06T02:45:57Z robot-beethoven joined #lisp 2015-02-06T02:48:04Z kapil__ joined #lisp 2015-02-06T02:50:23Z taspat``` joined #lisp 2015-02-06T02:50:24Z taspat`` quit (Read error: Connection reset by peer) 2015-02-06T02:52:26Z beach joined #lisp 2015-02-06T02:52:33Z beach: Good morning everyone! 2015-02-06T02:52:49Z pillton: Good morning beach. 2015-02-06T02:55:30Z pillton: beach: How is the paper on first class environments going? 2015-02-06T02:57:55Z nyef: Hello beach. 2015-02-06T02:57:56Z beach: pillton: Almost done I think. 2015-02-06T02:58:30Z pillton: Cool. I look forward to reading it. 2015-02-06T02:58:31Z beach: pillton: I need to review a few more of the existing articles I dug up. 2015-02-06T02:59:38Z beach: http://metamodular.com/environments.pdf 2015-02-06T03:00:52Z pillton: Ta. I will have a read over the weekend. 2015-02-06T03:01:09Z beach: Oh, and I claim there is "no performance penalty". That's not quite true. Functions such as FDEFINITION take the penalty of a hash-table lookup, as oppose to just a slot in the symbol. 2015-02-06T03:01:15Z holomorph left #lisp 2015-02-06T03:01:19Z zRecursive left #lisp 2015-02-06T03:01:26Z beach: I need to put that in too. 2015-02-06T03:01:40Z beach: pillton: Thanks. I would appreciate any comments that you may have. 2015-02-06T03:01:51Z Bike: i thought when i looked up how fdefinition actually works in sbcl it was more like a hash lookup 2015-02-06T03:02:04Z beach: I think it works that way, yes. 2015-02-06T03:02:11Z axion: is there an alternative of alexandria:symbolicate that will intern it into a specific package? 2015-02-06T03:02:16Z beach: But I can imagine implementations where there are 2 slots in the symbol. 2015-02-06T03:02:45Z pillton: Were there any multi-user lisp machines back in the day? 2015-02-06T03:02:55Z Bike: well, if you're going to give yourself that caveat you should at least put that caveat on the caveat 2015-02-06T03:03:00Z beach: pillton: I don't think so. 2015-02-06T03:03:14Z beach: Bike: Sure, good point. 2015-02-06T03:03:39Z Bike: axion: (let ((*package* whatever)) (symbolicate ...)) 2015-02-06T03:04:19Z axion: Bike: ah i didn't know you could do that....thats awesome :) 2015-02-06T03:07:28Z a20150204 joined #lisp 2015-02-06T03:08:36Z Harag1 joined #lisp 2015-02-06T03:08:57Z Harag quit (Ping timeout: 244 seconds) 2015-02-06T03:14:34Z MrWoohoo joined #lisp 2015-02-06T03:15:54Z oleo is now known as Guest14469 2015-02-06T03:15:59Z MrWoohoo quit (Client Quit) 2015-02-06T03:17:18Z nyef: beach: This global environments thing feels a bit weak with respect to package structure differences between environments. 2015-02-06T03:17:37Z oleo__ joined #lisp 2015-02-06T03:18:00Z smokeink quit (Remote host closed the connection) 2015-02-06T03:18:02Z beach: nyef: How so? 2015-02-06T03:19:07Z Guest14469 quit (Ping timeout: 265 seconds) 2015-02-06T03:19:28Z emaczen joined #lisp 2015-02-06T03:19:34Z beach: It used to be the case that names were properties of the package itself rather than of the environment, but then there would be no way to put them in a hash table in the environment, because then all environments would have to be informed when the names change. 2015-02-06T03:19:47Z nyef: I'm not sure I have a specific example to point to. 2015-02-06T03:20:10Z nyef: I'm more thinking of the symbols themselves. 2015-02-06T03:20:20Z nyef: Is the symbol-package also a property of the environment? 2015-02-06T03:20:25Z beach: No. 2015-02-06T03:20:56Z beach: SYMBOL-NAME and SYMBOL-PACKAGE are properties of the symbol. 2015-02-06T03:20:57Z nyef: What happens with a symbol that is accessible in a package that is accessible in the environment, but it's symbol-package is not? 2015-02-06T03:21:11Z nyef: s/it's/its/ Thwap! 2015-02-06T03:21:32Z beach: That's fine. 2015-02-06T03:21:56Z beach: Except that the package will have no name associated with it when it is printed. 2015-02-06T03:23:24Z beach: I guess the same thing happens as when someone does a DELETE-PACKAGE. 2015-02-06T03:25:52Z emaczen: So my macro eventually evaluates this function which requires some symbols 2015-02-06T03:26:20Z emaczen: Currently I am passing these as quoted symbols to the macro 2015-02-06T03:26:57Z emaczen: My goal here is to "clean up" how my macro is called -- i.e. remove quotes and extra parens 2015-02-06T03:27:50Z beach: emaczen: (defmacro mac (symbol) `(fun ',symbol)) 2015-02-06T03:27:53Z theseb quit (Quit: Leaving) 2015-02-06T03:28:31Z beach: emaczen: Terminology point: You CALL a FUNCTION and you EVALUATE a FORM. 2015-02-06T03:29:01Z nyef: Hrm. Does the reader also go via the environment? 2015-02-06T03:29:18Z beach: nyef: What part of the reader? 2015-02-06T03:29:33Z nyef: I'm still stuck on symbol and package games. 2015-02-06T03:29:35Z beach: nyef: Every function is "linked" wrt some environment. 2015-02-06T03:30:00Z beach: nyef: Yes, the reader has to do a FIND-PACKAGE and FIND-PACKAGE is an operation on the environment. 2015-02-06T03:30:31Z harish quit (Ping timeout: 245 seconds) 2015-02-06T03:31:05Z emaczen: beach: this works for part of my macro, but not some others 2015-02-06T03:31:20Z beach: emaczen: Sorry to hear that. 2015-02-06T03:31:22Z innertracks joined #lisp 2015-02-06T03:31:31Z emaczen: specifically, it does not work with a ,@args 2015-02-06T03:31:43Z innertracks quit (Client Quit) 2015-02-06T03:31:54Z Bike: not really specific enough i'm afraid 2015-02-06T03:32:13Z Bike: if you're doing ',@foo, of course that doesn't work, you'll end up with something like (quote foo bar baz) which is illegal 2015-02-06T03:34:30Z emaczen: Bike: how can I "apply" quote to each element in a list then? 2015-02-06T03:35:28Z Bike: (mapcar (lambda (sym) `',sym) syms) 2015-02-06T03:35:40Z Bike: which is just (mapcar (lambda (sym) (list 'quote sym)) syms) 2015-02-06T03:36:28Z Bike: depending on the context you might just want ',list-of-syms, though 2015-02-06T03:37:39Z Bike: the important thing to understand about macros is that they're just functions called by the compiler on forms to get other forms. 2015-02-06T03:38:09Z emaczen: Bike: Yes, it's so cool and a lot of fun :) 2015-02-06T03:38:33Z Bike: and ` is just a syntactic convenience for a bunch of list calls. nothing magic 2015-02-06T03:41:39Z zacharias_ joined #lisp 2015-02-06T03:42:12Z emaczen: Bike, can you refresh my memory to what ,@ does? 2015-02-06T03:42:33Z loke: splice 2015-02-06T03:42:50Z Bike: `(foo ,@bar baz) = (append '(foo) bar '(baz)) 2015-02-06T03:43:31Z sirangOoolongTea quit (Quit: Lost terminal) 2015-02-06T03:43:50Z loke: Now tell him what ,. does :-) 2015-02-06T03:44:49Z zacharias quit (Ping timeout: 245 seconds) 2015-02-06T03:47:38Z beach: nyef: If you have any comments to the paper, please let me have them so that I can address the issue in the paper if I feel that it is necessary. 2015-02-06T03:48:19Z nyef: beach: Nothing comes to mind right now, but I'm also fairly fried. I'll take a look at it again tomorrow. 2015-02-06T03:48:21Z emaczen: Bike: ,@ unpacks lists? 2015-02-06T03:48:46Z beach: nyef: That would be great! Thanks! No rush though. We have almost 3 weeks left. 2015-02-06T03:48:53Z Bike: i don't know how you got that out of an append, but sure if that helps 2015-02-06T03:49:44Z emaczen: Bike? 2015-02-06T03:49:48Z emaczen: I'm confused 2015-02-06T03:49:52Z emaczen: Can you give another example? 2015-02-06T03:50:18Z Bike: that's pretty much all there is to it, it's just a read syntax to avoid writing out append calls and such 2015-02-06T03:50:33Z Bike: you could read `(foo bar ,@baz) as (list* 'foo 'bar baz) too, but that's basically the same 2015-02-06T03:50:48Z emaczen: what is list*? 2015-02-06T03:51:07Z beach: clhs list* 2015-02-06T03:51:07Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_list_.htm 2015-02-06T03:51:26Z Bike: (list* a b c) = (cons a (cons b c)) 2015-02-06T03:51:43Z pjb quit (Ping timeout: 256 seconds) 2015-02-06T03:51:47Z Bike: as opposed to (list a b c), which is (cons a (cons b (cons c nil))) 2015-02-06T03:52:41Z emaczen: cool 2015-02-06T03:55:22Z dpb9cpu quit (Ping timeout: 265 seconds) 2015-02-06T03:57:22Z beach: emaczen: Common Lisp is unique in that you have a REPL that lets you conduct experiments without much effort. You could play around with ,@ and see what it does. That will give you a better mental model of it. 2015-02-06T03:57:42Z emaczen: beach: That's what I am trying 2015-02-06T03:58:01Z jgrant quit (Ping timeout: 245 seconds) 2015-02-06T03:58:06Z marko-v quit (Remote host closed the connection) 2015-02-06T03:59:50Z beach: emaczen: The usual way of thinking about ,@ is that it "splices" a list into another list, that is in `(a b ,@
c d), is a form that evaluates to a list, and the ELEMENTS of the resulting list are inserted between b and c as opposed to the LIST being inserted when you use `(a b , c d). 2015-02-06T04:00:08Z viaken: beach: Not that unique anymore, I would think? Most of the "modern" interpreted languages have a REPL. 2015-02-06T04:00:28Z beach: viaken: Yeah, OK. 2015-02-06T04:00:32Z work_op: seems to be several LLVM lisps out there, which one should I be using. 2015-02-06T04:01:28Z beach: viaken: For what it's worth, I dislike the term "interpreted language" since interpreted/compiled is a property of the implementation and not the langauge. 2015-02-06T04:01:30Z beach: language 2015-02-06T04:01:38Z beach: work_op: Name two. 2015-02-06T04:02:05Z viaken: I've only heard about clasp. 2015-02-06T04:02:12Z work_op: clasp, corvus, rhine 2015-02-06T04:02:16Z work_op: only clasp is ansi cl 2015-02-06T04:02:31Z work_op: the others are non standard 2015-02-06T04:02:39Z beach: work_op: Why would you pick a Lisp system based on its using LLVM? 2015-02-06T04:03:12Z work_op: i was actually just curious 2015-02-06T04:03:16Z beach: work_op: I think of Clasp as being a Common Lisp that lets you integrate C++ code easily, not as a Common Lisp that uses LLVM. 2015-02-06T04:03:22Z pjb joined #lisp 2015-02-06T04:03:50Z viaken: emaczen: (let ((form '(a b c))) `(1 2 ,@form 3)) --> (1 2 a b c 3) 2015-02-06T04:04:11Z Pyridrym quit (Quit: leaving) 2015-02-06T04:04:18Z beach: work_op: Furthermore, this channel is dedicated to Common Lisp, so we are not going to recommend any Lisp that is not Common Lisp. :) 2015-02-06T04:04:28Z Pyridrym joined #lisp 2015-02-06T04:04:36Z emaczen: viaken: Thanks -- I'm having a real blast with this so far! 2015-02-06T04:04:39Z djinni` quit (Ping timeout: 252 seconds) 2015-02-06T04:05:01Z emaczen: macroexpand-1 is also very helpful 2015-02-06T04:05:03Z work_op: i realize, ive been on and off following this channel for several years, but llvm isnt something im familiar with. like i said, i was only curious 2015-02-06T04:05:05Z viaken: Good! Always happy to see more Lispers in the world. 2015-02-06T04:06:02Z emaczen: viaken: once I figure out the problem I am trying to solve, my next questions is if people are having success with ABCL -- or just some advice using it. 2015-02-06T04:06:24Z viaken: ABCL or SBCL? 2015-02-06T04:06:26Z emaczen: Slime doesn't seem to use the 'fancy' package I import by default with emacs 2015-02-06T04:06:33Z emaczen: armed-bear cL 2015-02-06T04:06:55Z viaken: I've not tried it yet. 2015-02-06T04:07:03Z beach: emaczen: Speaking of SLIME, did I understand the logs correctly that you recommended to someone to install SLIME in some way other than using Quicklisp? 2015-02-06T04:07:11Z burtons joined #lisp 2015-02-06T04:07:16Z viaken: o.O 2015-02-06T04:07:23Z emaczen: beach: Yep -- that's how I have done it 2015-02-06T04:07:33Z beach: emaczen: That is a bad idea. 2015-02-06T04:07:40Z work_op: melpa? 2015-02-06T04:07:41Z emaczen: beach: why? 2015-02-06T04:07:48Z emaczen: work_op: yeah that's what I told him to do 2015-02-06T04:07:53Z ivan\ quit (Ping timeout: 240 seconds) 2015-02-06T04:07:54Z emaczen: he's on #emacs right now getting help 2015-02-06T04:08:21Z enitiz quit (Ping timeout: 250 seconds) 2015-02-06T04:08:51Z viaken: work_op: melpa has slime.el, not slime. 2015-02-06T04:09:03Z egp__ joined #lisp 2015-02-06T04:09:10Z beach: emaczen: Because you can never be sure what version you get when you use a method other than what most other Lisp people use. 2015-02-06T04:09:24Z viaken: beach: I should've put "interpreted" in quotes, too, Isuppose. 2015-02-06T04:10:10Z beach: viaken: Or use better terminology. Try "dynamic". 2015-02-06T04:10:32Z beach: Alternatively "interactive". 2015-02-06T04:10:37Z nyef: Let's consider an "interpreted" language to be a language for which someone has written an interpreter. This would make C an interpreted language. 2015-02-06T04:10:48Z djinni` joined #lisp 2015-02-06T04:11:46Z beach: nyef: My typical example is to defined "interpreted language" as a language that CAN be implemented as an interpreter. 2015-02-06T04:12:00Z beach: ... which makes all languages interpreted. 2015-02-06T04:12:29Z beach: Then I propose an alternative definition that it is a language that MUST be implemented as an interpreter. Then no language is interpreted. 2015-02-06T04:13:22Z ivan\ joined #lisp 2015-02-06T04:13:37Z nyef: Mmm. Even machine language these days can be interpreted or compiled. 2015-02-06T04:13:58Z viaken: beach: "Dynamic" usually implies the typing. I could get behind "interactive", I suppose. 2015-02-06T04:14:23Z beach: viaken: I distinguish between "dynamic" and "dynamically typed". 2015-02-06T04:14:45Z viaken: But that's not the common usage, in my experience. 2015-02-06T04:15:10Z beach: Sometimes we have to make an effort to clean up the terminology. 2015-02-06T04:15:28Z emaczen: inferred typing can be pretty interactive 2015-02-06T04:15:41Z beach: viaken: http://en.wikipedia.org/wiki/Dynamic_programming_language 2015-02-06T04:15:53Z ynniv joined #lisp 2015-02-06T04:16:07Z beach: viaken: Pretty common usage it seems. 2015-02-06T04:16:28Z Zhivago: You're confusing languages and implementation strategies. 2015-02-06T04:18:20Z emaczen: How can you quote each element of a ,@ in a macro 2015-02-06T04:18:34Z emaczen: Bike: I believe the solution you posted earlier returns a list since you were using mapcar right? 2015-02-06T04:18:39Z beach: emaczen: You were just told how to do that. 2015-02-06T04:18:40Z bgs100 quit (Quit: bgs100) 2015-02-06T04:18:56Z beach: emaczen: ,@(mapcar ...) 2015-02-06T04:18:57Z axion: when is it a good idea to inline functions? i have a math library with a bunch of (mostly short/simple) functions i'd like to optimize. i also have wrapper functions that are simply shorter name variants that pass arguments to the real function. should i inline everything, or just the wrappers? 2015-02-06T04:19:43Z emaczen: beach: Thanks! 2015-02-06T04:21:21Z beach: emaczen: You are welcome. Now I have a favor to ask of you: When people ask about installing SLIME, tell them to use Quicklisp, please. 2015-02-06T04:21:49Z beach: The name of the system is quicklisp-slime-helper as I recall. 2015-02-06T04:22:08Z emaczen: beach: Sure! Is there a particular reason -- or is it just to get more people using quicklisp? 2015-02-06T04:22:16Z loke: Is there a way to explicitly specify a unicode codepoint using cl-ppcre? 2015-02-06T04:22:37Z djinni` quit (Ping timeout: 252 seconds) 2015-02-06T04:22:44Z loke: It generally uses perl regexes, but Perl uses the \x{1234} format, which doesn't work in cl-ppcre 2015-02-06T04:22:47Z beach: emaczen: It is to avoid people coming here with problems due to their not having used Quicklisp. 2015-02-06T04:23:08Z emaczen: ahhh gotchya 2015-02-06T04:23:09Z Denommus quit (Quit: Bye) 2015-02-06T04:23:17Z vdamewood joined #lisp 2015-02-06T04:23:40Z pjb: quicklisp-slime-helper has been mentionned to emaczen at 2:30. 2015-02-06T04:24:07Z ynniv: axion: In general performance optimizations should only be made when they are demonstrably faster. If you’re not performance testing, don’t start optimizing yet. If you are performance testing, the numbers should tell you what to optimize. 2015-02-06T04:25:08Z beach: pjb: emaczen means well. He just needs some support from time to time. 2015-02-06T04:25:41Z axion: ynniv: ok thanks 2015-02-06T04:25:55Z Harag1 quit (Quit: Harag1) 2015-02-06T04:26:54Z Denommus joined #lisp 2015-02-06T04:26:54Z Denommus quit (Changing host) 2015-02-06T04:26:54Z Denommus joined #lisp 2015-02-06T04:27:47Z ynniv: axion: That probably sounds pedantic, but every tweak makes your code more complicated, and not every tweak makes it faster. And it has nothing to do with the language being used! 2015-02-06T04:28:59Z nyef quit (Quit: G'night all) 2015-02-06T04:29:14Z axion: i have been performance testing. inlining the real function shaves off about 50%. i have not tested whether i should inline the wrappers yet 2015-02-06T04:29:39Z axion: indeed, which is why i was asking if there was a methodology. thanks 2015-02-06T04:30:35Z HoloIRCUser2 joined #lisp 2015-02-06T04:32:42Z emaczen: pjb: Sorry, I didn't know the reason behind it and I wanted to help that person setup slime 2015-02-06T04:32:43Z HoloIRCUser2 is now known as eadmund 2015-02-06T04:33:37Z badkins quit 2015-02-06T04:33:42Z eadmund: Man, I love SLIME. Those guys deserve a donation 2015-02-06T04:34:13Z emaczen: eadmund: I'm still new to a lot of features in SLIME -- care to give any pointers? 2015-02-06T04:34:39Z enitiz joined #lisp 2015-02-06T04:37:27Z eadmund: Oh man, that's tough. Definitely start with all the contribs 2015-02-06T04:38:03Z eadmund: And I _think_ that I like paredit 2015-02-06T04:38:12Z emaczen: eadmund: I use fancy and paredit 2015-02-06T04:38:19Z loke: eadmund: After a while, going back from paredit in painful 2015-02-06T04:38:29Z emaczen: paredit is kind of annoying when the parens don't match at all times though 2015-02-06T04:38:40Z loke: emaczen: That is very rare 2015-02-06T04:39:13Z emaczen: loke: I must be doing something wrong then. 2015-02-06T04:39:26Z eadmund: Yeah, I need to learn all the bindings. So far I feel like it wants the mouse more than I like. But that may be due to other sins 2015-02-06T04:39:45Z loke: emaczen: Probably. My guess is that you use mark blocks willy-nilly and use C-w to delete them 2015-02-06T04:40:17Z emaczen: loke: Actually, it is when I want to edit an existing s-expr and it won't let me delete parens 2015-02-06T04:40:30Z eadmund: And I tend to edit my code as characters, so it's common to have improperly-terminated parens 2015-02-06T04:40:45Z loke: emaczen: Have you learnt to use M-s and M-S? 2015-02-06T04:40:54Z loke: And M-j 2015-02-06T04:41:05Z emaczen: nope -- I'm glad I asked about this today! 2015-02-06T04:41:08Z loke: I mean M-J 2015-02-06T04:41:25Z loke: Also M-right and M-left 2015-02-06T04:41:31Z loke: and M-( 2015-02-06T04:41:45Z loke: Once you are comfortable with those, it's not a problem anymore 2015-02-06T04:41:45Z jleija joined #lisp 2015-02-06T04:42:10Z theseb joined #lisp 2015-02-06T04:43:42Z viaken: C-bksp is the one that always gets me in trouble with paredit. 2015-02-06T04:44:08Z viaken: I'm usedgenerally to using it in basically everything else. 2015-02-06T04:44:13Z loke: viaken: Don't use that. Use M-BSP instead 2015-02-06T04:44:24Z loke: viaken: It does the same thing, but doesn't break the structure 2015-02-06T04:44:53Z loke: You can rebind it if muscle-memory prevents you from changing 2015-02-06T04:45:05Z viaken: That may be a good idea. 2015-02-06T04:45:12Z loke: That's paredit-backward-kill-word 2015-02-06T04:48:18Z emaczen: loke what does M-right do for you 2015-02-06T04:50:14Z loke: Sorry, I meant C-right and C-left 2015-02-06T04:51:39Z BitPuffin quit (Ping timeout: 264 seconds) 2015-02-06T04:51:58Z pegu` joined #lisp 2015-02-06T04:53:51Z pegu quit (Ping timeout: 265 seconds) 2015-02-06T04:56:01Z BlueRavenGT quit (Read error: Connection reset by peer) 2015-02-06T04:59:45Z egp__ quit (Quit: Ухожу я от вас (xchat 2.4.5 или старше)) 2015-02-06T04:59:57Z egp__ joined #lisp 2015-02-06T05:01:47Z ynniv quit (Quit: ynniv) 2015-02-06T05:03:58Z kobain quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2015-02-06T05:04:02Z eadmund quit (Ping timeout: 245 seconds) 2015-02-06T05:05:27Z footer joined #lisp 2015-02-06T05:05:42Z burtons wishes he had allocated more heap for sbcl for his render... 2015-02-06T05:06:55Z burtons: that's a couple of hours wasted 2015-02-06T05:07:10Z footer: Hi. Can a recursive procedure has iterative process? 2015-02-06T05:07:50Z burtons: if i understand what you mean, a tail recursive procedure is equivalent to an iterative process 2015-02-06T05:08:08Z footer: burtons: tail recursive procedure? 2015-02-06T05:08:10Z spacebat` joined #lisp 2015-02-06T05:08:27Z footer: I am not sure what that is, I was going through sicp and I still sort of confusing 2015-02-06T05:10:40Z burtons: you'll get to it in sicp 2015-02-06T05:10:59Z burtons: it's when a recursive call is the last call in a function 2015-02-06T05:11:11Z vdamewood quit (Read error: Connection reset by peer) 2015-02-06T05:11:14Z burtons: it takes a little while to understand 2015-02-06T05:11:20Z footer: the thing I got is that when there is only one state 2015-02-06T05:11:34Z footer: and it doesn't have space complexity variying it's iterative process 2015-02-06T05:11:40Z vdamewood joined #lisp 2015-02-06T05:12:01Z footer: and I could write something like that in which the function calls itself but without changing the space complexity 2015-02-06T05:12:13Z burtons: well tail recursion and iteration are equivalent, just different ways of doing the same thing, especially in scheme which is guaranteed to handle tail recursive calls correctly 2015-02-06T05:12:22Z footer: so looks like recursive procedure could have a iterative process 2015-02-06T05:12:36Z footer: burtons: I see 2015-02-06T05:12:40Z burtons: yes, they can be thought of as equivalent 2015-02-06T05:12:52Z burtons: certain recursive procedures 2015-02-06T05:13:24Z footer: so any procedure which calls itself would be called recursive procedure? 2015-02-06T05:13:41Z footer: but it may not evaluate recursive process, am I right? 2015-02-06T05:14:09Z |3b|: depends on how you want to define "recursive" 2015-02-06T05:14:44Z |3b| would say it is recursive, even if it isn't using more stack for each call so is equivalent to an iteration 2015-02-06T05:14:51Z zRecursive joined #lisp 2015-02-06T05:15:23Z footer: hm 2015-02-06T05:15:34Z egp__ quit (Read error: Connection timed out) 2015-02-06T05:15:37Z |3b|: same way i would still call it "iterative" when an iterative procedure that pushes state on a stack every iteration 2015-02-06T05:16:09Z footer: I see 2015-02-06T05:16:10Z beach: footer: SICP uses Scheme, and a big thing with Scheme is to avoid iteration as a separate concept by using tail recursion instead, so that the semantics of iterations can be explained by (say) denotational semantics. However #lisp is dedicated to Common Lisp, and Common Lisp doesn't have such objectives. 2015-02-06T05:16:20Z egp__ joined #lisp 2015-02-06T05:18:39Z footer: beach: I don't know lisp yet :( 2015-02-06T05:18:43Z Quadrescence joined #lisp 2015-02-06T05:18:58Z Quadrescence quit (Changing host) 2015-02-06T05:18:58Z Quadrescence joined #lisp 2015-02-06T05:19:26Z beach: footer: You will, if you take the time to learn. 2015-02-06T05:19:42Z footer: Hmm 2015-02-06T05:20:36Z MrWoohoo joined #lisp 2015-02-06T05:21:03Z pysnow530 joined #lisp 2015-02-06T05:24:25Z urandom__ quit (Quit: Konversation terminated!) 2015-02-06T05:25:37Z enitiz quit (Ping timeout: 250 seconds) 2015-02-06T05:26:04Z zRecursive left #lisp 2015-02-06T05:26:23Z J_4096 joined #lisp 2015-02-06T05:27:11Z ryankarason quit (Ping timeout: 245 seconds) 2015-02-06T05:27:55Z cluck quit (Remote host closed the connection) 2015-02-06T05:27:58Z jleija quit (Quit: leaving) 2015-02-06T05:28:17Z footer quit (Quit: Page closed) 2015-02-06T05:28:28Z Quadrescence quit (Quit: Leaving) 2015-02-06T05:34:45Z joga joined #lisp 2015-02-06T05:35:38Z Quadrescence joined #lisp 2015-02-06T05:37:57Z djinni` joined #lisp 2015-02-06T05:40:35Z burtons quit (Remote host closed the connection) 2015-02-06T05:41:32Z emaczen quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-02-06T05:49:01Z djinni` quit (Ping timeout: 264 seconds) 2015-02-06T06:04:38Z gingerale joined #lisp 2015-02-06T06:05:16Z Harag joined #lisp 2015-02-06T06:06:00Z jgrant joined #lisp 2015-02-06T06:09:55Z bcoburn quit (Ping timeout: 272 seconds) 2015-02-06T06:12:10Z a20150204 quit (Quit: Page closed) 2015-02-06T06:12:51Z gingerale quit (Ping timeout: 250 seconds) 2015-02-06T06:14:22Z jackdaniel: it's a strange journey you start, may the source be with you ;-] 2015-02-06T06:17:17Z huza quit (Quit: WeeChat 0.3.8) 2015-02-06T06:25:51Z jlongster quit (Ping timeout: 256 seconds) 2015-02-06T06:27:37Z pranavrc joined #lisp 2015-02-06T06:29:10Z vdamewood quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-02-06T06:29:29Z t4nk904 joined #lisp 2015-02-06T06:29:35Z t4nk904: Hey everyone 2015-02-06T06:29:46Z beach: Hello t4nk904. 2015-02-06T06:29:56Z t4nk904: How's it going? 2015-02-06T06:30:27Z beach: Very well as usual. 2015-02-06T06:30:34Z oleo__ quit (Quit: Verlassend) 2015-02-06T06:31:00Z munksgaard joined #lisp 2015-02-06T06:31:15Z t4nk904: Good to hear. Would this be a good place to ask what people are working on or should I go to lispcage? 2015-02-06T06:31:52Z beach: This is a good place. 2015-02-06T06:32:07Z beach: minion: Please tell t4nk904 about SICL. 2015-02-06T06:32:08Z t4nk904: So, what are you all working on? 2015-02-06T06:32:20Z beach: No minion? 2015-02-06T06:32:22Z minion: t4nk904: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL 2015-02-06T06:32:28Z beach: Ah! 2015-02-06T06:32:49Z beach: minion: Please tell t4nk904 about Cleavir. 2015-02-06T06:32:49Z minion: t4nk904: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future 2015-02-06T06:32:55Z t4nk904: That is a pretty cool IRC feature 2015-02-06T06:33:03Z jlongster joined #lisp 2015-02-06T06:33:38Z t4nk904: Those sound like fun projects beach 2015-02-06T06:33:48Z beach: Thanks. 2015-02-06T06:34:23Z beach: The most recent exciting project here, though, is Mezzano; a Lisp operating system that runs on x86-64. 2015-02-06T06:34:33Z t4nk904: I think I'm mainly looking for projects that use lisp instead of adding to the lisp ecosystem 2015-02-06T06:34:36Z theseb quit (Quit: Leaving) 2015-02-06T06:34:42Z t4nk904: That is either amazing or horrifying 2015-02-06T06:35:20Z Bike: or both! 2015-02-06T06:35:25Z beach: What kinds of projects are you looking for? 2015-02-06T06:35:37Z t4nk904: Good point. I heard a group a while back was implementing Linux in C++ 2015-02-06T06:36:11Z beach: That is a very scary thought indeed. 2015-02-06T06:36:21Z chintak joined #lisp 2015-02-06T06:36:56Z t4nk904: All of my OS knowledge is C based so I can't even fathom using lisp 2015-02-06T06:37:25Z beach: Lisp is much better adapted to writing operating systems than C is. 2015-02-06T06:37:37Z Mon_Ouie quit (Ping timeout: 264 seconds) 2015-02-06T06:37:58Z t4nk904: How so? 2015-02-06T06:38:10Z t4nk904: I can see how it might but it isn't the best for saving state 2015-02-06T06:38:26Z beach: Why do you think that? 2015-02-06T06:38:44Z jlongster quit (Remote host closed the connection) 2015-02-06T06:39:02Z t4nk904: It is a functional language. They don't usually save state well 2015-02-06T06:39:06Z beach: Common Lisp is not a functional programming language and this channel is dedicated to Common Lisp. 2015-02-06T06:39:11Z pt1 joined #lisp 2015-02-06T06:39:24Z beach: Common Lisp is just a very powerful general-purpose programming language. 2015-02-06T06:40:03Z t4nk904: I guess I haven't used it enough to really say. I've only used Racket and Scheme 2015-02-06T06:40:07Z beach: In fact, modern Common Lisp programs use the style of object-oriented programming that is made easy by CLOS. 2015-02-06T06:40:22Z bcoburn joined #lisp 2015-02-06T06:40:29Z Bike: state isn't hard in either of those either :p 2015-02-06T06:40:59Z t4nk904: I suppose. I guess I have the wrong misconceptions about it. Would it be as fast and efficient as C? 2015-02-06T06:41:07Z t4nk904: Would it compile to assembly like C? 2015-02-06T06:41:12Z pt1 quit (Remote host closed the connection) 2015-02-06T06:41:39Z beach: t4nk904: Most modern Common Lisp implementations compile to native code. 2015-02-06T06:41:53Z beach: Not necessarily using a traditional assembler, though. 2015-02-06T06:42:07Z Bike: "as fast and efficient as C" is the kind of thing you say when you haven't tried writing some assembly (which you should, it's fun) 2015-02-06T06:42:19Z Bike: or rather, written some, and then looked at how your C compiles. 2015-02-06T06:43:15Z taspat``` is now known as taspat 2015-02-06T06:43:16Z t4nk904: I've tried modifying assembly but never writing it myself. It was a bit too painful. 2015-02-06T06:43:17Z beach: t4nk904: Don't worry, you are not alone in having it all wrong. :) 2015-02-06T06:43:25Z hvxgr quit (Ping timeout: 252 seconds) 2015-02-06T06:43:48Z t4nk904: What do you mean by that? 2015-02-06T06:44:04Z Pyridrym quit (Quit: leaving) 2015-02-06T06:44:04Z t4nk904: I know they're different but shouldn't a good lisp compiler do the same? 2015-02-06T06:44:09Z beach: t4nk904: Functional programming, interpreted, yadda yadda 2015-02-06T06:44:25Z Bike: basically that like 40% of this channel is people saying what you just said and people in here trying to be nice about explaining otherwise 2015-02-06T06:45:11Z t4nk904: Bike: Makes sense. Like I said, I'm still pretty new to common lisp. 2015-02-06T06:45:30Z t4nk904: beach: For some reason, I thought CL was compiled and not interperted 2015-02-06T06:45:40Z Bike: 's both 2015-02-06T06:45:53Z Bike: lots of people come in and saying "isn't lisp interpreted and therefore slow", is what beach is referring to in part 2015-02-06T06:45:58Z beach: t4nk904: Since Common Lisp is dynamically typed, when you write Common Lisp without type declarations (yes, you can declare types in Common Lisp) it is hard for the compiler to generate fast code. If you take the same time to declare types as you HAVE TO do in C, then you can get similar performance of the resulting code. 2015-02-06T06:46:53Z beach: t4nk904: As Bike said, I wasn't talking about you, but of most people coming here with preconceived ideas about Lisp. 2015-02-06T06:46:55Z t4nk904: beach: That makes a lot more sense. I just figured everyone would declare types 2015-02-06T06:47:10Z beach: Why would they do that if they don't have to? 2015-02-06T06:47:17Z t4nk904: beach: Yeah, I know. Same conversation every day. 2015-02-06T06:47:44Z t4nk904: beach: Wouldn't that generate a lot of compile time errors you'll want to know about? 2015-02-06T06:47:57Z jgrant quit (Ping timeout: 256 seconds) 2015-02-06T06:48:15Z Bike: plus C's type system is really fucking bizarre. so's CL's, but less so, and not in a "can't write out INT_MIN as a literal" way 2015-02-06T06:49:37Z t4nk904: Bike: I mainly have that opinion from writing python and having so many errors that could have been solved by declaring input types 2015-02-06T06:50:52Z Bike: yeah, it's a good way to catch some errors. cl implementations can do lotsa compile time complaints in the same way 2015-02-06T06:51:18Z Bike: but when you're writing things out for the first time it's extraordinarily tedious to declare types for everything 2015-02-06T06:51:34Z beach: t4nk904: What Bike says. 2015-02-06T06:51:51Z pillton wonders if there is a stronger word than 'extraordinarily'. 2015-02-06T06:52:03Z Bike: superfantasticinaciously 2015-02-06T06:52:06Z pillton: Plus the time you waste coming up with nouns. 2015-02-06T06:52:15Z t4nk904: I suppose so but I'm so used to typing them out every time it is second nature at this point 2015-02-06T06:52:48Z Bike: also, other people's code can use types even if you don't, so when you do (let ((x (+ 4 (foo)))) (concatenate 'string x "hello")) it might get caught without doing any declarations 2015-02-06T06:53:25Z Bike: inference and all. like haskell until you start using nth order whatever 2015-02-06T06:54:20Z t4nk904: Might? I think that might bug me too much. What do you mean by nth order? 2015-02-06T06:54:40Z Bike: that's just me being snide about unrelated things, sorry 2015-02-06T06:55:07Z Bike: "might" as in the language standard does not require an error to be signaled at compile time, but an enterprising implementation can do so if it wants to go through the effort 2015-02-06T06:55:10Z Bike: as several implementations do 2015-02-06T06:55:38Z t4nk904: Ah. I generally assume there aren't any errors if it doesn't say there are 2015-02-06T06:56:08Z Bike: um, and how well does that work out for you...? 2015-02-06T06:56:08Z Quadrescence: that is a very bad assumption 2015-02-06T06:56:26Z Bike: i've written many, many programs that type check and still don't work, you know? 2015-02-06T06:56:57Z t4nk904: I should clarify. I meant that certain classes of errors won't happen like something being of the wrong type 2015-02-06T06:57:18Z t4nk904: I naturally have a test suite I run before every commit 2015-02-06T06:57:32Z pillton: tknk904: int8_t multiply(int8_t a, int8_t b) { return a*b; } 2015-02-06T06:57:41Z pillton: multiply(255,255) = 1 2015-02-06T06:57:47Z Bike: is that defined? i forget how defined that is. 2015-02-06T06:57:53Z Quadrescence: Bike, maybe it would be less tedious to write types if it was possible to write properly typed polymorphic code in LISP (TM) (R) COPYRIGHT (C) 2015 US. GOV. PAT. PEND. 2015-02-06T06:58:04Z Bike: no doubt 2015-02-06T06:58:35Z Bike: well, what i meant was just putting a bunch of (declare (type integer x)) around 2015-02-06T06:59:36Z Bike: also, since when can the US government copyright things? you're blowing my mind, man 2015-02-06T07:01:24Z salv0 joined #lisp 2015-02-06T07:01:38Z salv0 left #lisp 2015-02-06T07:01:43Z Quadrescence: ;) 2015-02-06T07:02:38Z Quadrescence: Bike, was it you who was working on improving the State of the Union regarding compiler macros? 2015-02-06T07:02:49Z zacharias_ quit (Ping timeout: 264 seconds) 2015-02-06T07:04:09Z beach: t4nk904: You never answered my question regarding what kind of project you are looking for. 2015-02-06T07:05:35Z beach: t4nk904: Here is a list of possible projects, in case you are thinking of working on some: http://metamodular.com/Common-Lisp/suggested-projects.html 2015-02-06T07:05:53Z t4nk904: beach: I didn't have anything in particular in mind. Just seemed like a cool language that I wanted to play with 2015-02-06T07:06:05Z beach: Fair enough. 2015-02-06T07:06:40Z t4nk904: Mainly trying to become the best programmer I can be and that is only going to happened by learning something like CL or Haskell 2015-02-06T07:06:54Z Bike: Quadrescence: at times, yeah. 2015-02-06T07:07:03Z beach: t4nk904: Good plan. 2015-02-06T07:08:59Z Quadrescence: Bike, i really have been wanting to be able to define several transformations as separate macros 2015-02-06T07:09:11Z Quadrescence: Bike, and my ultimate wishlist is to have type information :( 2015-02-06T07:10:02Z pillton: Quadrescence: What do you want done? 2015-02-06T07:10:43Z Quadrescence: pillton, do you mean: what do I want to do with this stuff? or what exactly do i mean by this stuff? 2015-02-06T07:10:47Z Bike: Quadrescence: i have some stuff at e.g. https://github.com/Bike/compiler-macro/blob/master/test/tabasco-sort.lisp. i haven't stretched it much since i don't actually need to write efficient code very much 2015-02-06T07:11:02Z pillton: Quadrescence: The latter. 2015-02-06T07:11:55Z beach: Time to get to work! 2015-02-06T07:11:58Z beach left #lisp 2015-02-06T07:11:58Z Quadrescence: pillton, well i'd like to define several compiler macros for a single function, which are tried until one works. there's a bit of an art in figuring out the order to try them, but the general concept of trying many of them is not too hard to implement (no more than 30 minutes of work) 2015-02-06T07:12:18Z Bike: oh, yeah that's in there. 2015-02-06T07:12:24Z Quadrescence: I call them "compiler methods" even though that is an awful name since it has nothing to do with methods 2015-02-06T07:12:31Z Bike: "compiler hints". also terrible. 2015-02-06T07:12:47Z Bike: the stuff that takes time is operations on types. i think i eventually concluded i need to reify types in CLOS but it's huge and complicated 2015-02-06T07:13:01Z Quadrescence: pillton, the second thing is to be able to use declared or inferred type information about the arguments within the compiler macro 2015-02-06T07:13:13Z Aerathis joined #lisp 2015-02-06T07:13:17Z Quadrescence: pillton, that is a hugely vastly more difficult project 2015-02-06T07:13:25Z Aerathis left #lisp 2015-02-06T07:13:32Z Bike: well, declared i did with "introspect-environment", which is even in quicklisp now. 2015-02-06T07:13:44Z Bike: inferred seems more or less impossible with CL as exists 2015-02-06T07:13:57Z Quadrescence: yes 2015-02-06T07:14:02Z Quadrescence: (i agree) 2015-02-06T07:14:08Z pillton: Hmm.. Interesting. This is what I am working on now: http://paste.lisp.org/display/145673 2015-02-06T07:14:10Z Quadrescence: it would definitely need implementation support 2015-02-06T07:14:16Z hvxgr joined #lisp 2015-02-06T07:14:29Z pillton: It manages the function and compiler macros by itself. 2015-02-06T07:14:44Z wasamasa left #lisp 2015-02-06T07:14:44Z Quadrescence: pillton, what am i looking at? 2015-02-06T07:15:04Z pillton: Well, you can specify different implementations of the function for certain arguments. 2015-02-06T07:15:25Z Quadrescence: will it determine the function to call statically at compile time? 2015-02-06T07:15:30Z pillton: Yes. 2015-02-06T07:15:49Z Quadrescence: that sounds good 2015-02-06T07:15:52Z pillton: Or you can tell it to inline the code. 2015-02-06T07:17:04Z Quadrescence: pillton, where's the source? 2015-02-06T07:17:18Z pillton: I haven't finished it yet. 2015-02-06T07:17:25Z pillton: I am working on it at present. 2015-02-06T07:18:12Z gingerale joined #lisp 2015-02-06T07:18:26Z mrSpec joined #lisp 2015-02-06T07:19:58Z zadock joined #lisp 2015-02-06T07:20:09Z Quadrescence: pillton, did you write TRIVIAL-QUIT? 2015-02-06T07:20:35Z pillton: No. :) 2015-02-06T07:20:36Z chintak quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2015-02-06T07:21:09Z pillton: Just found UIOP:QUIT. 2015-02-06T07:21:22Z Quadrescence: ah 2015-02-06T07:22:40Z pillton: Cya people. Have a good weekend. 2015-02-06T07:22:46Z Quadrescence: you too 2015-02-06T07:24:51Z mishoo_ joined #lisp 2015-02-06T07:29:02Z munksgaard quit (Read error: Connection reset by peer) 2015-02-06T07:30:01Z loke: trivial-quit is silly. I implemented that thing years ago as part of TRIVIAL-SHELL 2015-02-06T07:30:06Z loke: seems like people didn't know about it 2015-02-06T07:30:19Z Quadrescence: is it really that silly 2015-02-06T07:30:38Z loke: it's silly that _at_least_ 3 different libraries provide the same thing 2015-02-06T07:31:00Z loke: trivial-quit is the newest, and hence it's the most silly :-) 2015-02-06T07:31:39Z Quadrescence: trivial-quit does one and only one thing, not 100 things 2015-02-06T07:31:51Z Quadrescence: I googled trivial shell. first page, blank. second page, "don't use it" 2015-02-06T07:33:44Z loke: Well, QUIOP seems to have taken over that stuff, which still doesn't change my opinion on trivial-quit 2015-02-06T07:34:20Z Quadrescence: yes UIOP, a giant utility library 2015-02-06T07:35:21Z vaporatorius joined #lisp 2015-02-06T07:37:17Z harish joined #lisp 2015-02-06T07:38:19Z zacharias joined #lisp 2015-02-06T07:38:59Z pt1 joined #lisp 2015-02-06T07:40:30Z vaporatorius quit (Quit: Leaving) 2015-02-06T07:41:33Z profess quit (Ping timeout: 264 seconds) 2015-02-06T07:42:13Z ehu joined #lisp 2015-02-06T07:42:34Z vdamewood joined #lisp 2015-02-06T07:44:42Z hellofun` joined #lisp 2015-02-06T07:44:44Z mega1 joined #lisp 2015-02-06T07:49:13Z psy_ quit (Remote host closed the connection) 2015-02-06T07:51:38Z Ragnaroek joined #lisp 2015-02-06T07:52:51Z isoraqathedh: The thing about those libraries is that it's hard to make a balance between the size of the library and its usefulness. 2015-02-06T07:53:28Z isoraqathedh: I think you can import specific symbols from a large package but I'm not sure what the effect is. 2015-02-06T07:53:56Z jackdaniel wrote his first stack overflow answer \o/ 2015-02-06T07:55:48Z angavrilov joined #lisp 2015-02-06T07:59:10Z gko__ joined #lisp 2015-02-06T08:01:35Z d4ryus___ joined #lisp 2015-02-06T08:01:49Z Shinmera joined #lisp 2015-02-06T08:04:33Z d4ryus_ quit (Ping timeout: 246 seconds) 2015-02-06T08:05:56Z J_4096 quit (Quit: leaving) 2015-02-06T08:06:40Z zadock quit (Quit: Leaving) 2015-02-06T08:08:09Z pt1 quit (Read error: Connection reset by peer) 2015-02-06T08:08:37Z pt1 joined #lisp 2015-02-06T08:17:36Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-02-06T08:18:34Z harish quit (Ping timeout: 245 seconds) 2015-02-06T08:19:45Z keen__________54 joined #lisp 2015-02-06T08:19:53Z zadock joined #lisp 2015-02-06T08:20:31Z keen__________53 quit (Ping timeout: 255 seconds) 2015-02-06T08:22:31Z arenz joined #lisp 2015-02-06T08:23:38Z munksgaard joined #lisp 2015-02-06T08:33:56Z Beetny joined #lisp 2015-02-06T08:34:07Z t4nk904 quit (Ping timeout: 246 seconds) 2015-02-06T08:35:22Z moore33 joined #lisp 2015-02-06T08:43:52Z scymtym_ joined #lisp 2015-02-06T08:44:07Z kcj quit (Remote host closed the connection) 2015-02-06T08:48:34Z zacharias quit (Ping timeout: 245 seconds) 2015-02-06T08:49:26Z sword joined #lisp 2015-02-06T08:51:16Z vdamewood quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-02-06T08:56:56Z jgrant joined #lisp 2015-02-06T08:59:07Z psy_ joined #lisp 2015-02-06T08:59:38Z psy_ quit (Max SendQ exceeded) 2015-02-06T09:00:25Z psy_ joined #lisp 2015-02-06T09:01:17Z frkout_ quit (Remote host closed the connection) 2015-02-06T09:01:43Z frkout joined #lisp 2015-02-06T09:01:55Z mishoo_ quit (Ping timeout: 255 seconds) 2015-02-06T09:02:32Z cadadar joined #lisp 2015-02-06T09:03:08Z ggole joined #lisp 2015-02-06T09:08:42Z easye joined #lisp 2015-02-06T09:12:37Z mishoo joined #lisp 2015-02-06T09:13:38Z resttime_ quit (Quit: resttime_) 2015-02-06T09:14:09Z Lokathor quit (Ping timeout: 256 seconds) 2015-02-06T09:14:43Z Lokathor_ quit (Ping timeout: 256 seconds) 2015-02-06T09:21:07Z luis- pats jackdaniel on the back 2015-02-06T09:21:14Z luis- is now known as luis1 2015-02-06T09:21:42Z luis1 is now known as luis 2015-02-06T09:21:50Z jackdaniel: :-) 2015-02-06T09:22:58Z egp__ quit (Quit: Ухожу я от вас (xchat 2.4.5 или старше)) 2015-02-06T09:23:01Z zacharias joined #lisp 2015-02-06T09:23:05Z mishoo_ joined #lisp 2015-02-06T09:23:10Z egp__ joined #lisp 2015-02-06T09:25:36Z mishoo quit (Ping timeout: 244 seconds) 2015-02-06T09:28:34Z radioninja quit (Ping timeout: 252 seconds) 2015-02-06T09:29:29Z kuzy000_ joined #lisp 2015-02-06T09:33:21Z jgrant quit (Ping timeout: 244 seconds) 2015-02-06T09:38:48Z antonv joined #lisp 2015-02-06T09:39:02Z specbot quit (Remote host closed the connection) 2015-02-06T09:39:02Z minion quit (Remote host closed the connection) 2015-02-06T09:39:02Z easye quit (Read error: Connection reset by peer) 2015-02-06T09:39:28Z antonv is now known as Guest69221 2015-02-06T09:39:58Z minion joined #lisp 2015-02-06T09:40:37Z specbot joined #lisp 2015-02-06T09:41:31Z BitPuffin joined #lisp 2015-02-06T09:42:36Z specbot quit (Remote host closed the connection) 2015-02-06T09:42:36Z minion quit (Remote host closed the connection) 2015-02-06T09:43:28Z minion joined #lisp 2015-02-06T09:44:07Z specbot joined #lisp 2015-02-06T09:46:45Z yenda: How to you make a simple-array ? I am trying to make one of complex double-float from a list of float, because I want to use bordeau-fft but all I can get is a vector of complex double-float 2015-02-06T09:47:14Z mvilleneuve joined #lisp