freenode/#lisp - IRC Chatlog
Search
16:01:46
White_Flame
if you absolutely need dynamic runtime "pointers" to modify, then the term to look for is a "locative", as was used in older Lisps
16:02:06
White_Flame
but generally, there's going to be a different better solution than just relying on C-style coding :)
16:02:54
White_Flame
are you parsing a string? then pass around the offset. are you parsing through a list? then pass the current cons cell
16:03:21
godratio
yeah i understand that but like i said im a bit of a noob long time c programmer i have not got those advanced lisp things down just taking baby steps learning syntax lingo and how to build basic programs
16:05:02
godratio
i guess i have the choice of parsing a string or a char write now i read in teh file as a char list as that seemed the way to do it and yeah going with the offset was my first intution but i though maybe there was a way to pass around thre cons cell around like a reference or pointer
16:05:32
godratio
good to learn these things. I also seen there was a way to recure through the cdr concept hehe
16:06:02
White_Flame
if you're parsing "abcde" then there are no cons cells, but a string which is a type of vector. If you're parsing ("a" "b" "c" "d" "e") [which is strings] or (#\a #\b #\c #\d #\d) [which is chars] then you do have cons cells as part of a list.
16:06:22
godratio
let me cout the ways i can parse this file haha I will be wanting effecience in my lisp programs so good to know how its working underneath the hood.
16:09:37
godratio
what i was surprised was there was no easy way to read in teh file as string which in a higher level language i thought there would be a one liner for that.
16:10:16
godratio
It seems that string in lisp are always unicode no ascii…. which is why i read them in as chars rather than a list of strings …
16:11:07
beach
godratio: When I said "a reference to a CONS cell", I was merely pointing out that Common Lisp uses what I call "uniform reference semantics", which means that, semantically, every object is manipulated through a reference. Places are still not first-class objects in Common Lisp.
16:11:07
jack_rip_vim
I think I need to take a little bit time to read all the old document, so that I can know more about the earlier lisp machine.
16:11:57
beach
jack_rip_vim: Common Lisp is a language, so it can't load anything. Some Common Lisp implementation (most, probably) can load C libraries, though.
16:13:26
beach
jack_rip_vim: Common Lisp being a language is also neither interpreted nor compiled, which is another characteristic of the particular implementation.
16:13:27
godratio
I never use &variable in C it causes more bugs than anything for me. I always just use raw pointers.
16:13:44
beach
jack_rip_vim: Similarly, Common Lisp is neither fast nor slow, another implementation characteristic.
16:14:37
godratio
it all depends. on the context but it is good that lisp has the potential for good enough performance.
16:15:05
beach
godratio: Strings in Common Lisp are neither Unicode nor ASCII. They are vectors of characters.
16:15:15
godratio
Anyways my main reason for picking it up is i want a tools language and wiould like to write an interpreter in it to use it as a scripting language for my in progress engine.
16:16:27
phoe
I know - #lispgames is just a community of people who utilize Lisp in some form in their games
16:16:47
beach
godratio: There have been many projects in the past to do that, and there are many existing Common Lisp implementations suitable as a scripting language. However, why on earth would you write software in a static language and then use a slow interpreter for scripting?
16:18:05
beach
godratio: The combination will be slow, and impossible to debug. I strongly recommend you write the entire program in Common Lisp. Then you need no particular implementation for scripting purposes.
16:18:58
beach
Because people will write more code in the scripting language, simply because they can't modify the static code base.
16:19:27
beach
godratio: What makes you think that using a static language would make your software faster?
16:19:35
godratio
I will write my own custom interpreter im thinking which will compile down to machine code
16:20:12
godratio
hopefully that will work out if not at the least i will be using lisp for offline processign meta programming tools to output c code.
16:20:25
beach
Alternatively, you can use a good existing Common Lisp implementation for the entire thing. See for instance: https://hal.archives-ouvertes.fr/hal-01544135/document
16:21:18
godratio
I will use them if they are good enough if not its my own sub version of lisp of my own design obviously i would not implmenet common-lisp all of it jsut like a lisp like language that has access to the c-api of my game.
16:22:05
jack_rip_vim
I mean if I try to load all the exist modules, will that take too much memories?
16:22:12
godratio
Yes but you cant embed SBCL inside a c-program how is the interfacing and marshalling can i get it to work with my memory allocators?/ etc…
16:23:05
godratio
ok yes i was thinking just a subset of small lisp .. anyways before all that i just need to learn regular lisp like i said i need to be an expert for comomn lisp to write my offline tools and webservers etc…
16:24:57
godratio
Yes i have heard of that… I will check it out someday when its time right now first i want to do some text processing for outputting some c code maybe play around with it helping to generate some shader variants and some fun stuff like webservers etc… its my personal project i can do whatever i want
16:25:00
beach
godratio: That said, most Common Lisp implementations, including SBCL supports some foreign-function interface, typically CFFI.
16:25:31
godratio
beach: Cool i actually really like SBCL so far so would be cool to interface witht that somehow.
16:28:33
godratio
I really enjoying lisp I like it how it came to be and the fundamental nature of it and the building block nature of it its history and its future. I look foward to talking with you gentleman more but for now its late here in Japan I must go to bed.
16:30:24
jack_rip_vim
I mean if I try to load all the exist modules, will that take too much memories?
16:35:15
beach
jack_rip_vim: Yes, very likely too much memory. There are probably hundreds of thousands of modules out there. We only know of a few thousand, so you will have a hard time finding all that exists, but if you do, and then try to load them, you are very likely going to go beyond the amount of main memory a process on your OS will allow.
16:36:39
whoman
loading lisp files is nothing to worry about until you dont have to ask that question
16:36:41
beach
jack_rip_vim: How will you find every person on the planet who ever wrote a Lisp module?
16:37:11
beach
jack_rip_vim: My nephew has written a few too, but I don't think he gives them away. How are you planning to load those?
16:37:54
beach
jack_rip_vim: Whatever ckili is, it is nowhere near "all existing Lisp modules" and probably loading all the ones you find in a particular directory is going to be safe.
16:38:09
jack_rip_vim
i may chnage some of clisp's source code , so that it can support to load all of it
16:39:46
jack_rip_vim
:) , I may try it, but I am not sure if it will burn out my computer's memory or not
16:39:48
whoman
how do you use everything anyway. a fully complete kitchen, but can only make one or two things at a time
16:42:55
whoman
well. storing it on your hard disk for loading when you need it is a similar situation
16:43:22
whoman
if you can save all the lisp on your computer, then you can get a more clear understanding of the task
16:50:16
pjb
Not angry. You already have been told about the difference between a language and an implementation. It has to be drilled into your head.
16:51:53
pjb
jack_rip_vim: read the sources of clisp! https://sourceforge.net/projects/clisp/files/clisp/2.49/clisp-2.49.tar.gz/download
16:52:24
Ober
jack_rip_vim: welcome to #lisp. The same mentally unstable people that rush to a UFO landing, as if they are the ones we want to make first contact...
16:55:30
pjb
jack_rip_vim: the point here is that you should not care about that: eventually your OS will crash, and you will have to reboot all your lisp images, so it will be cleared automatically.
17:08:55
borodust
i desperately need a person who uses windows and lisp (sbcl/ccl) together to see if piece of software works on that platfrom
17:10:11
borodust
it actually works on my win machine, but i have polluted dev environment there (i'm developing on linux myself), so not sure if it will work on other machines
17:11:12
borodust
i actually did want to do that a long time ago, but apparently, i can't use my copy of windows to install into vm and use on the machine at the same time
18:20:25
borodust
it confirmed to work on linux and macos, but it is quite hard to find win-running common lisper :)
18:34:26
borodust
cryptopsy: was there any particular reason to use clisp? would sbcl will work for your case?
18:35:19
cryptopsy
borodust: i am just taking it for stumpwm, i think that will work with sbcl too, but i wasnt able to get sbcl to compile either
18:35:44
cryptopsy
i've been told that stump is only using sbcl nowadays, what happende to clisp is it deprecated?
18:48:16
cryptopsy
i dont understand the sbcl or stumpwm debugging prompt where i have to press a number for [RETRY] [CONTINUE] etc. are those just warnings?
18:51:26
_death
cryptopsy: there was also this recent post.. https://lists.nongnu.org/archive/html/stumpwm-devel/2017-07/msg00002.html
18:55:15
_death
cryptopsy: these options are restarts.. some error has occurred and the debugger was invoked.. you can retry the failed operation or try to ignore it and continue..
18:55:49
cryptopsy
if i leave it alone i see the Load averge fluctuating suggesting maybe its still working?
19:03:49
_death
I suggest trying to manually build it without something that obscures part of the output
19:04:53
cryptopsy
the pkg manager has to build it so i can file a bug if it fails, so it can keep it up to date, etc
19:09:28
cryptopsy
so you can have a mismatch of dep version to the latest stumpwm or sbcl or whatever
19:09:56
cryptopsy
everyone's mindset is fixing bugs because bugs stop them from performing their desired function
19:12:50
cryptopsy
it should fail on its own i presure, if the debugger output are errors and not warnings
19:36:21
phoe
Using fast-io's functions for writing little/big endian unsigned/signed 8/16/32/64bit bytes.
19:44:32
pjb
cryptopsy: unfortunately, I don't remember how well clisp could be emerged, I've not used gentoo for several years. But in any case, I compile my CL implementations myself…
19:44:52
pjb
cryptopsy: I would advise you to download the sources and configure and built it yourself.
19:48:26
pjb
cryptopsy: now, the problem certainly comes from the fact that you're using lisp stuff installed by your linux distribution. This never works well…
19:49:02
pjb
cryptopsy: uninstall all lisp related things with your package manager, and then reinstall stuff manually, following instructions at http://cliki.net/Getting+Started
19:49:56
pjb
cryptopsy: alternatively, you may perhaps go by by removing all reference to gentoo stuff from your rc files.
19:54:05
phoe
What is the simplest way to get a list of all bound class-direct-slots and their values of an instance?
19:55:53
Shinmera
(loop for s in (c2mop:class-direct-slots (class-of o)) for n = (c2mop:slot-definition-name s) when (slot-boundp o n) collect (slot-value o n))
22:46:00
Colleen
Clhs: standard generic function class-name http://www.lispworks.com/documentation/HyperSpec/Body/f_class_.htm
23:48:27
jmercouris
let's say I have a list of structs and I want to make a new list composed of one of the struct fields. e.g. given a struct list of cars, with attr color, I'd like a list of all of the colors that appear in that list
3:16:56
jmercouris
stylewarning: here is where the struct is defined: https://github.com/nEXT-Browser/nEXT/blob/minibuffer-completion/next/lisp/buffer.lisp
3:17:27
jmercouris
stylewarning: here is where the setf is called in set-url-buffer: https://github.com/nEXT-Browser/nEXT/blob/minibuffer-completion/next/lisp/document-mode.lisp
3:20:44
jmercouris
the reason I'm trying to fix this bug is so i can have an example of fuzzy buffer completion
3:21:47
stylewarning
jmercouris: from these files, SETF BUFFER-NAME looks fine. Is buffer.lisp being compiled and loaded?
3:24:13
mfiano
stylewarning: Did you have a video you did a few years ago about lisp math? Maybe I am confusing you with someone else
3:25:16
mfiano
Oh I just started watching excursions :) I didn't know that was yours, so must be the other one then...where is that?
3:26:20
jmercouris
I just dont understand why I'm getting "The function (SETF NEXT::BUFFER-NAME) is undefined."
3:27:00
jmercouris
especially when a (print buffer-name buffer) statement in that exact spot also works
3:31:30
jmercouris
how can it be that (print (buffer-name buffer)) ;; works (setf (buffer-name new-buffer) "new-name") ;; breaks
3:31:32
stylewarning
jmercouris: I don't have any ideas. It looks like it should work very straightforwardly. Does #'(setf buffer-name) in the REPL give you anything
3:40:30
jmercouris
I'm thinking about starting a screen cast so you can just easily see what's on my screen
3:45:21
stylewarning
jmercouris: can you start with a fresh REPL and just paste everything from start to finish?
3:52:10
jmercouris
I load the file using two things, an asdf, and then I push to the central registry
3:52:41
jmercouris
which loads this definition: https://github.com/nEXT-Browser/nEXT/blob/master/next/next.asd
3:56:30
stylewarning
If it errors, then it's probably a macro. You can be extra sure by checking the SETF expansion, which I don't recall how to do off the top of my head.
3:57:37
stylewarning
Anyway, it seems ECL uses SETF expansions for DEFSTRUCT accessors, not functions named (SETF BUFFER-*)