freenode/#lisp - IRC Chatlog
Search
20:26:40
phoe
https://www.reddit.com/r/lisp/comments/k1tnl/where_does_the_special_form_labels_come_from/
20:47:44
alanz
phoe, is that related to https://en.wikipedia.org/wiki/Anaphoric_macro#Defining_anaphoric_macros (which I happened to come across today)
20:49:41
alanz
just happen to be doing something vaguely similar, in refering to a self-referential function. The second example. Many ways to skin a cat, I suppose
22:16:41
borodust
Xach: that's the whole _I_ don't want to go onto.. what happend? something was depending on those? examples, o guess
22:23:42
phoe
we are quicklisp. the cl-bodge dist will be assimilated. resistance is futile, and it conses a lot anyway.
22:28:44
phoe
but, I guess, if you make a git repository with a *ton* of submodules and slap a trivial-bodge.asd on top...
22:29:00
aeth
phoe: ASDF works on systems, QL works on projects, and they're not the same... annoying projects like CL-SDL2 that use systems like SDL2 break that assumption. (And even if that assumption held, there are lots of secondary systems)
22:31:20
aeth
The goal of trivial-bodge would be to load every bodge project, but not necessarily every bodge system (since e.g. some might just be for tests... although at the moment every bodge-* project in Quicklisp has one system, of the same name)
22:32:35
aeth
OK, good, that can be what makes trivial-bodge so trivial, then. It can just depend on cl-bodge
22:34:27
aeth
borodust: libecl.so is just another .so file, so you might as well make bodge-trivial-cl
23:10:47
borodust
i know i know, i should have abandoned all those, ripped them out of quicklisp body, but.. i couldn't
2:43:43
drmeister
I got on my hobby horse about the wonders of Common Lisp and the relative efficiency of languages on Hacker News... https://news.ycombinator.com/item?id=24642134#24644983
2:44:49
drmeister
“For what do we live, but to make sport for our neighbors, and laugh at them in our turn?” - Jane Austen
2:56:38
bhartrihari
In Table 2 of he linked article, it's interesting that they put Rust in Object Oriented paradigm, but not Lisp.
3:00:05
no-defun-allowed
Lisp is in the "VM" category of implementations, which is utter bullshit as well.
3:01:22
no-defun-allowed
I couldn't find what implementations were used for any of the tests, but maybe I'm not looking hard enough.
3:05:01
no-defun-allowed
The implementation list is at the bottom of https://sites.google.com/view/energy-efficiency-languages/setup.
3:05:33
no-defun-allowed
bhartrihari: Sure, but AFAICT the authors of that paper did their own experiments with their own software.
3:08:55
kreyren
meaning i have a hello world file with .cl extension that i want to invoke through ecl
3:13:10
no-defun-allowed
Try (print "Hello") -- LOAD won't print the results of what it evaluates. Also what's cargo-make?
3:13:38
borei
working on the logging library, file logging pretty much completed, was trying to log to local syslog, but found that i can't write to "/dev/log" socket.
3:14:11
drmeister
kreyren: My instructions assumed that you had already started ecl using: ecl and you have the > prompt.
3:17:29
kreyren
using the `(print "Hello")` works, but i need ecl to run it and exit true unless specified otherwise where using `ecl --load file` starts an interactive session
3:17:48
no-defun-allowed
borei: /dev/log is a Unix socket and not a file. I can't remember if there are libraries for working with Unix sockets though.
3:19:29
no-defun-allowed
kreyren: You can add (sys:quit) at the end of the file to make ECL quit after evaluating the rest.
3:20:44
kreyren
which is unwanted as i want to use it as a part of a backend to compile the software cross-platform
3:23:29
no-defun-allowed
Well, do you want the quotes as well? If not, (write-line "...") will just write a line.
4:27:05
kreyren
How can i execute `(write-line "...")` through ecl subshell? where the usage is http://ix.io/2zl4 trying to adapt the code base to work on as many turing complete systems as possible
4:29:10
akoana
borei: example: (sb-posix:syslog 1 "test message ~d from sbcl" 42) ;; 1 is the priority
4:29:20
no-defun-allowed
Why are you using ECL...to script...um...something to do with Makefiles and Rust?
4:29:50
no-defun-allowed
(And, what makes you think it's more portable than CPython or the POSIX shell?)
4:32:53
kreyren
no-defun-allowed, because i want to use rust to mess with it's embedding project for my weird implementation of bedrock linux-inspired project in something more production ready where the Makefile and cargo-make are using shell for scripting of repository management
4:33:26
no-defun-allowed
I thought in Rust they used one too many commas to delimit things, but here you are with none.
4:33:37
kreyren
no-defun-allowed, > or the POSIX shell? < -- Because systems from 1971 usually only have bourne shell (bsh) without a good way to get POSIX sh
4:35:52
no-defun-allowed
It seems very, very unlikely that you are going to run Common Lisp (via ECL) or Rust code on systems from 1971.
4:36:37
kreyren
from my point of view i don't see why ECL is a problem there and Rust is the challenging part as it's embedding could use some work
4:38:20
no-defun-allowed
ECL uses C99, which probably wouldn't have any compilers targeting or running on a 70s machine. (Well, someone with too much free time probably did write one, but I haven't heard of it.)
4:49:24
kreyren
no-defun-allowed, i though that lisp is that language O.o apparently people who use legacy systems are using lisp on them
4:55:02
no-defun-allowed
I can't think of any implementation that would support an older C compiler, or would fit in memory on an old machine.
4:57:02
kreyren
no-defun-allowed, yes #emacs keeps telling me that when i am researching for emacs contribution that there are grandmas and grandpas capable of hiring a hitman that if i broke GNU Emacs on their system
4:58:01
no-defun-allowed
I must really have a bad grip on time; GNU Emacs was released 14 years after the machine you have in mind.
4:58:03
kreyren
which is why GNU Emacs is using bsh for the repository management and compilation as i was told
4:58:28
kreyren
no-defun-allowed, i was told that these people contributed to it to make it work on their systems
5:00:32
loke
The first VAX came out in 1977. GNU Emacs was released in 1985. However, there were earlier emacses, and there definitely was one for VMS on VAX.
5:00:58
no-defun-allowed
A more on-topic question: with CFFI, how should I get at a slot of a struct in an array?
5:03:10
no-defun-allowed
Does it look like it could possibly mean "This is an Emacs that runs on a VAX machine"?
5:03:37
kreyren
https://en.wikipedia.org/wiki/Vax_Common_Lisp -- > dumb-terminal IDE with Emacs-like editor (programming in Common Lisp)
5:04:40
loke
no-defun-allowed: It's been a while, but something like (cffi:foreign-slot-value (cffi:mem-aref ARRAY (:struct foo) N) '(:struct foo) NAME)
5:42:53
kreyren
beach, nope but i will implement a CI to run it on VAX machine if everything goes as planned
5:44:45
no-defun-allowed
A continuous integration script, which runs when you push code to an online repository. Hopefully it uses an emulator.
6:16:34
jackdaniel
no-defun-allowed: indeed ecl formally requires c99 compiler, but factually it works with the earlier standard
6:17:26
no-defun-allowed
What was before C99? C89? I think that is still some time after the age of VAXen.
6:17:37
jackdaniel
in fact it was originally written to work (among other things) on a vax machine, however that would be a surprise if it had worked there /now/ :)
6:18:45
jackdaniel
C89, yes. And it was like this from the beginning (and it still worked on VAX), so there you have it. But I don't know much about vax myself except for the name ;)
6:21:48
jackdaniel
alternatively I could create a hash table with keys and some dummy values, but that sounds yuck
6:21:59
no-defun-allowed
If you are okay with insertion having side effects, a hash table with elements as keys. If not, fset or cl-hamt or something.
6:25:23
jackdaniel
right, but objects doesn't have any applicable order (basically they are standard object instances)
6:28:38
jackdaniel
you have three opaque instances #<a> #<b> #<c>, by what means do you compare them?
6:29:56
_death
right, if they are opaque then you may not be able to order them.. this would also rule out fset btw
6:33:13
phoe
_death: yes, sorry, EQ is the best for standard objects; please adjust your test accordingly depending on the type of your objects
6:47:38
iissaacc
Could anyone familiar with Parenscript tell me why (new (-Person age shoe-size)) is giving me new(Person(age, shoeSize); instead of new Person(age, shoeSize); ?
6:47:59
iissaacc
The example is from the manual, so it should work but maybe I'm doing something wrong
6:57:05
iissaacc
hmm ok i tried it within the parenscript package and it worked so something is going on...
6:57:24
kreyren
peer-review to the implementation of common lisp in cargo-make is appreciated https://github.com/sagiegurari/cargo-make/issues/461
7:01:21
no-defun-allowed
"but are not designed to be compatible with each other (even though some are mostly compatible)" They are compatible! It wouldn't be a very Common Lisp otherwise.
7:01:51
no-defun-allowed
And by the sounds of things, you're only parameterizing the line to write, which would best be left to echo.
7:02:04
kreyren
no-defun-allowed, i meant in lisp overview not in just common lisp if that makes sense
7:02:58
iissaacc
i realised you need to :use #:parenscript rather than only :import-from #:parenscript #:ps
7:03:26
no-defun-allowed
Implementations of Common Lisp implement the same language. An implementation of Emacs implements a different language...
7:09:02
iissaacc
yes thats what I was trying to avoid, but I don't want to have to write a prefix in front of every parenscript symbol
7:09:40
no-defun-allowed
kreyren: So even if that implementation did work, it wouldn't do very much that you couldn't do before. (And there is an edit button somewhere on a comment.)
7:11:09
no-defun-allowed
ACTION uploaded an image: Screenshot_2020-10-01_17-17-20.png (36KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/bOBHWxGpLNZrABciMpMEaVaO/Screenshot_2020-10-01_17-17-20.png >
7:11:14
beach
iissaacc: That is a tiny inconvenience compared to the conflicts you will have to resolve when you :USE more than one package like that, and compared to the breakage you will have to fix when the parenscript package exports a new symbol that will conflict with yours.
7:11:29
iissaacc
i wrote this a while ago when i was still :use ing everything https://controlc.com/4fe05edf
7:14:25
beach
iissaacc: For a person reading your code, the package prefix contains valuable information. And if you have two different packages with symbols with the same name, the package prefix immediately says where it is from.
7:14:33
_death
yes, it has all the issues of :use and more, for example it will also substitute your symbols for internal symbols
7:16:32
beach
iissaacc: And, though you are not likely to use any of the packages I am the author of, if you tried, you would have a hard time resolving all the conflicts if you were to :USE it.
7:17:34
beach
And, I maintain that the fact that parenscript uses a general nickname of PS is really really bad.
7:18:11
kreyren
no-defun-allowed, where the current implementation is using the cargo-make backend to execute ecl with arguments and parses a script that is saved as a temporary file to be executed
7:19:03
schweers
It seems like a way to use up two names in a global namespace, instead of just one.
7:20:52
schweers
Do package local nicknames shadow regular nickames? I.e. can I load parenscript and still have a package local nickname of ps pointing to something else?