freenode/lisp - IRC Chatlog
Search
1:02:28
DrDuck
Can I expect Winston and Horn's code from their 'Lisp' book to compile even though the book was published in '89?
1:09:00
Bike
no, the garbage collector is not standard. also, if you can refer to an object and pass it to such a function, it's not garbage
1:09:02
no-defun-allowed
Well, if there was some function for it, calling it would create a reference to that object, so no.
1:09:31
no-defun-allowed
But (trivial-garbage:gc :full t) will do a full garbage collection (if you load the trivial-garbage system).
1:12:41
no-defun-allowed
It would be terribly inefficient to garbage collect only one object, when a significant proportion of the heap is scanned.
1:14:39
DrDuck
i want to force the garbage collector to clear up some memory explicitly when i tell it to
1:15:14
Bike
well, as ddefun said, the implementation usually has a hook to run the collector manually
1:16:27
Bike
in a garbage collected system memory is not really a concern directly, so you should only need to worry about it if you need to tune performance or the like
1:16:59
Bike
especially, you can't do something like (free x) (print x) like you can in C (i mean, it's invalid, but you can write it)
1:51:35
p_l
DrDuck: with automatic memory management, usually the only thing you can do is to explicitly trigger the GC, but not tell it to collect something. There are ways to handle that, though, like object caches and sometimes there are ways to get manual memory control
1:53:20
p_l
yeah, dynamic-extent hints to compiler that the specified binding will have values that live only within scope
1:54:23
p_l
analogue: "industry" is notoriously bad guideline in Lisp case. Most visible popular stuff? Clojure and Racket. Hidden in weird places doing important work? Common Lisp and helluva lot of Scheme. With occassional throwback to pre-ZetaLisp days
1:55:39
p_l
and by helluva lot of scheme I mean "significant portion of PS3 and PS4 consoles got to run a heavily Scheme-d software"
1:56:24
no-defun-allowed
Did you know...tinyscheme is used in macOS access control of some sort I forgot the name of?
1:56:46
p_l
analogue: the general guideline is that if you want to use Lisp (any lisp), take a task where nobody except you cares about language choice
1:57:24
p_l
that's surprisingly common in enterprise software, where they pay you to solve a problem, and language is last thing they are going to inquire on so long as it works on their systems
1:58:18
p_l
analogue: drew doesn't show up here much anymore, but he talked about earning money mainly by making intranet web apps for various companies
1:58:36
p_l
the companies didn't ask him to program in specific language, they asked him to solve a problem
1:59:03
p_l
and sometimes you might even end up building a new language to fit their requirements, where Lisp makes a lot of things easier :)
2:00:20
p_l
analogue: one use case you might have is to introduce dynamic programming by end user to such a codebase
2:01:30
p_l
the aforementioned blockly use case? we pitched to client that they would be able to change processing equations/rules without having a java & PL/SQL expert come and recompile the program
2:05:03
p_l
well, with exception of Allegro's "modern mode" (lowercase, case-preserving), all important implementations comply with ANSI CL standard
2:05:09
no-defun-allowed
The differences between those implementations include compilers and extensions (like exposing GC functions, FFI, threads, etc)
2:05:46
p_l
LW for example has pretty nice GUI library and AFAIK splendid delivery options (plus stuff like WHO-CALLS)
2:06:24
analogue
Scheme appeals to me the most I think, would you say it is much to transition between the languages?
2:07:27
p_l
analogue: significant differences, IMO. CL has non-hygienic macros and doesn't care that much about text representation of code. ANSI CL is also much bigger standard by itself and thus a lot of things that are "every implementation is different" in Scheme are boringly standard in CL
2:07:51
p_l
ck_: iirc, SLIME's doesn't support querying who call's function at point on all implementations
2:08:52
minion
analogue: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
2:08:56
ck_
p_l: sure. I just wondered why you singled out the lispworks functionality -- perhaps because it works slightly differently or better.
2:09:01
minion
analogue: paip: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
2:09:24
p_l
analogue: I don't have much on scheme, but "How to Design Programs" might be of interest
2:09:50
p_l
and of course the classic (light on Scheme, heavy on Computer Science) "Structure and Interpretation of Computer Programs"
9:30:40
momozor
Hi, can I get some feedback of the code in https://github.com/momozor/Saurna/blob/master/src/main.lisp.
11:37:16
puchacz
for example, for exponential decay I can write in Mathematica: FindFit[points, a Exp[-x b], {a, b}, x]
11:59:50
thijso
Shinmera: what implementations have you tested verbose on? On SBCL my code runs without errors, but on ECL it looks like verbose is messing with other threads, namely a thread running a usocket UDP server. After a few seconds that thread dies with an unknown error...
12:00:28
thijso
And this is only when adding in verbose for logging. Without it, the code works on ECL as expected.
12:02:43
thijso
Well, the error I get is kinda weird as well: "The condition Not a condition type: NIL occurred with errno: 0." and " [Condition of type USOCKET:UNKNOWN-ERROR]"
12:02:46
Shinmera
Verbose does use a background thread to do the logging in. ECL might not like it if it's printing from there and from another thread at the same time.