freenode/#lisp - IRC Chatlog
Search
19:51:38
verisimilitude
The only really major and perhaps ``breaking'' change I've been considering is slightly changing how CURSOR behaves, by adding a CURSOR-NO-HANG and changing CURSOR to perhaps wait forever if the STREAM doesn't correspond to a terminal.
19:53:25
verisimilitude
If you'd want some additional feature, describe it to me and I'll mull it over.
19:55:19
_death
I guess fixing the mouse issues is the next thing to do there, and given your changes I may work on it ;)
20:02:00
_death
yes, the issue was with the read-event return values if I remember correctly.. maybe this was fixed
20:09:15
verisimilitude
Also, SET-MODE takes this as a list, for good reason, but that's obvious or would quickly be obvious.
1:23:42
onceagain
Just wanted to see if anyone's dealt with this, when I compile my file on vlime I get a package not found error even the package is recognized when I run the program line by line from the SBCL repl. I'm thinking it has something to do with my swank setup, any ideas what might be going on?
1:30:51
didi
So I finally used `macrolet' for the first time. This must be a milestone of some sort.
2:02:56
Bike
onceagain: compile-file doesn't execute as it goes, so e.g. the quickload is only compiled, not executed, when the later forms using :croatoan packages are compiled
2:05:26
onceagain
@Bike Interesting, I guess I don't really understand why it would throw an error though if that's the case?
2:05:49
Bike
onceagain: the package hasn't been defined, so it doesn't exist, so the reader can't read your code
2:07:11
onceagain
Hmm well the next line after the quickload is (in-package :croatoan), does that not define the package?
2:10:01
onceagain
Would you happen to have a good linke or reference to start reading about this kind of thing? I don't think I have enough understanding of compile-file to get this working yet
2:10:49
onceagain
I guess I could start with the documentation on compile-file, it helps to know that this isn't some kind of swank issue
2:12:42
White_Flame
the proper fix is not to have quickloads inline in your source code, or really anything that defines packages in the same source that uses them syntactically
2:13:10
White_Flame
put them in a separate file that's loaded beforehand, or preferably set up an .asd file for your project which can declare its dependencies
2:14:01
White_Flame
either that, or when you're working interactively just ensure you bring up your dependencies manually before using the file
2:16:43
White_Flame
If you haven't read PCL, it's a good programmer's interoduction to lisp which also covers packages & symbols: http://www.gigamonkeys.com/book/
2:18:58
onceagain
White_Flame it looks like I have a lot to learn! Thanks for the advice, I'm pretty new to all this. I've been reading through CL: a gentle introduction, but sometimes I get antsy and want to figure out my workflow more quickly. I was originally sending things line by line through Tslime to a tmux pane running SBCL, but the output there is kinda
2:19:35
onceagain
I'll make sure to check out that chapter and some more resources on the full setup needed for compiling files
2:19:35
White_Flame
yeah, symbols & packages are definitely something that isn't obvious at first glance, but are actually pretty simple
2:20:34
White_Flame
and thus doesn't actually have the dependency loaded when your next lines are read for compilation
2:21:33
onceagain
I remember reading that SBCL can be run either as a compiled language or a scripting language, but does this all mean you can't really run an uncompiled script that uses an outside package? Or is scripting in lisp just not the way to go in general
2:22:09
White_Flame
Lisp's history involved a lot of Lisp OSes, so it tends to own its own environment moreso than being involved in scripts. But scripts are doable
4:47:32
madrik
Before Common Lisp's condition system, how did earlier Lisp such as Maclisp and Interlisp handle errors and exceptions? Was it something like CATCH and THROW only?
4:52:10
beach
Interesting relate fact: The condition system was inspired by that of Multics PL/I, and PL/I on Multics was an excellent development environment, especially considering when it existed.
4:53:16
edgar-rft
madrik: http://www.softwarepreservation.org/projects/LISP/ has most of the the old Lisp manuals back to 1958
5:32:05
beach
They were replaced by macros for reasons of performance. Macros are handled at compile time.
5:38:53
beach
madrik: Initially, Emacs Lisp had only dynamic bindings, whereas Maclisp had dynamic bindings in the interpreter and lexical bindings in the compiler.
5:40:45
beach
It was less of a problem than you might think. Most people wrote programs that were intended to behave as if bindings were lexical anyway. Taking advantage of dynamic bindings was exceptional.
5:41:07
beach
So whether such a program ran in the interpreter or in the compiler did not make a difference.
5:44:52
beach
Interestingly, Franz Lisp (a predecessor of Allegro Common Lisp in a way) went to a lot of trouble to make compiled code use dynamic bindings. At the time, dynamic bindings were thought to be the norm. I think this is where Scheme showed the way, and inspired Common Lisp to use lexical bindings everywhere.
5:47:37
edgar-rft
madrik: https://en.wikipedia.org/wiki/Macro_(computer_science)#Early_Lisp_macros says "In 1963, Timothy Hart proposed adding macros to Lisp 1.5 in AI Memo 57: MACRO Definitions for LISP." with link to the original document. I have no idea if that is true bcause I wasn't even born at that time :-)
5:51:00
madrik
Out of curiosity, I know that popular Lisp systems currently feature a compiler as given, with an optional interpreter. Are there any systems with _only_ a Common Lisp interpreter?
5:53:57
edgar-rft
madrik: https://almy.us/xlisp.html is the only one I know, but it's not a full implementation of Common Lisp