freenode/#lisp - IRC Chatlog
Search
5:50:53
asarch
(loop for i in (list 1 2 3 4 5) and b = 0 do (format t "Valor: ~d " b) (incf b) (format t "Hello paisanos~%")) <- Why b is not incremented?
5:59:15
minion
seok: look at Universal Greeting Time: It is always morning when a person enters a channel, and late night when they leave. You may want to read http://www.total-knowledge.com/~ilya/mips/ugt.html for further information
6:02:22
no-defun-allowed
https://common-lisp.net/project/mcclim/1.html could be it, but that really only has releases.
6:07:30
holycow
you are accessing irc through something on the google app engine? something perhaps writting in lisp?
7:45:01
LdBeth
is it good idea to store the instruction database :allocation :class into a mixin class so the database can be isolated for different machine
8:28:13
g0d_shatter
LdBeth: I'm sorry I can't help you, but I'm super curious what the application is if you can talk about it!
8:30:23
LdBeth
g0d_shatter: it an assembler modeled after the one used for Symbolics Virtual Lisp Machine https://github.com/hanshuebner/vlm
9:00:12
lieven
yeah the ANSI committee is going to reconvene and bring out a new version of the standard with the deprecated functions removed any day now
9:03:07
heisig
There is none. I think at some point in time, people were too hyped about cl:complement and made some funny choices.
9:05:40
jackdaniel
orthogonal features like complement make a lot of sense from a learning perspective, but deprecated in case of CL means: it will be around for another three standard revisions
9:22:06
aeth
You all covered pretty much every point in one of the strangest CL flamewar topics except also... remove-if-not is faster unless the compiler optimizes remove-if complement, which the compiler authors are less incentivized to do because remove-if-not exists, even though remove-if-not is deprecated
9:31:50
aeth
lieven: Last time it was brought up (although for all I know it was implemented 15 SBCLs ago) it wasn't quite as trivial as it sounds, but imo the key thing it shows is that it wasn't seen as particularly idiomatic or else it would have been optimized already.
9:32:32
heisig
lieven: Heh, 'easily'. Have you ever tried parsing keyword arguments in a compiler macro :)
9:34:01
heisig
And there is the problem that you couldn't optimize (let ((g (complement f))) (remove-if g x)), because the compiler macro only sees 'g'.
9:34:48
aeth
heisig: re keywords, is there a way to get to the point where you can use destructuring-bind? I've never written a compiler macro
9:36:03
lieven
heisig: sure. the whole point of optimizing is to get the low hanging fruit. if people are deliberately obfuscating their code, they can live with the default speed
9:37:44
heisig
aeth: Hmm, one could check that every second argument is a valid keyword, and then use destructuring-bind. Then one would still have to make sure that the order of evaluation is preserved.
11:25:32
heisig
phoe: Issue TEST-NOT-IF-NOT Writeup: "Several alternative names for REMOVE-IF-NOT were suggested: KEEP-IF, ABSTRACT, FILTER. We did not pursue these suggestions."
11:29:46
galdor
did someone already this issue where emacs open all flexi-streams files when loading the system in slime ?
11:33:04
phoe
heisig: IMO twenty+ years of Common Lisp practice have shown that the future ANSI CL committee should likely pursue them at some point in time
11:42:35
heisig
Even if there ever was a new standard, there cannot be any changes to the CL package. Otherwise, this new standard would break existing code.
11:44:57
heisig
I think it would be hilarious if there was a new CL standard, and it would essentially be 'We fixed a few typos and clarified a few descriptions'.
11:48:12
scymtym
"typo fixes and clarifications? why didn't you add lambdas and compile-time metaprogramming? everybody has those nowadays"
14:24:17
pfdietz
slyrus: I have let the power of being able to merge pull requests in fset go to my head, and have merged one of yours from 2018.
14:30:21
chimneys
do i need to run loading after installation as well,.. https://www.quicklisp.org/beta/#loading
14:31:26
chimneys
I open I see sbcl inside it, but it says kernel connecting and cells don't execute
14:33:49
chimneys
A connection to the notebook server could not be established. The notebook will continue trying to reconnect. Check your network connection or notebook server configuration.
14:46:53
dnaeon
hey all! i have two packages that export the same symbols, e.g. package `A:foo` and then I have package `B:foo`. How could I import these symbols into my own package and use both `A:foo` and `B:foo`? Any way I could import-alias them or similar?
14:47:54
jackdaniel
basically you can't import two different symbols with the same name into the same package
14:48:25
chimneys
how do i install the new kernel cl-jupyter , is it not installing because of virtual envs
14:48:49
pjb
dnaeon: (defpackage "YOUR-PACKAGE" (:use "CL" "A" "B") (:shadow "FOO")) (in-package "YOUR-PACKAGE") (+ a:foo b:foo)
14:50:10
pjb
dnaeon: you can also consider whether those two foos are actually the same. For example, it may be the name of a generic function and a:foo is a method on As, while b:foo is a method on Bs. Then both packages A and B should use a package I that exports FOO and (defgeneric foo (…)).
14:50:30
pjb
dnaeon: of course, it may be two entirely different foos, such as cl:car and tesla:car…
14:50:54
phoe
so if you have symbols QWERTYUIOP:FOO and ASDFGHJKL:FOO, you can local-nickname the packages to Q and A
14:52:51
jackdaniel
chimneys: I know that venv is some clever mechanism to bypass problems with the packaging, toher than that I try to not think about things like this
14:52:59
dnaeon
Ok, I was under the impression that if I use `(defpackage my-package (:use :A :B))` then within my package all symbols from `A` and `B` would inherited and cannot fully qualify things such as `A:foo` and `B:foo`.
14:56:49
chimneys
if you don't like to think about it , think what a beginner might be going through who is pasting lisp cmds without understanding them
14:59:44
phoe
USEing a package means that you can refer to all of its symbols without qualifying them with the package name
15:02:06
phoe
because then conflicts occur, and you need to explicitly choose one or the other or not use both packages at the same time.
15:03:13
phoe
There's also the issue if an USEd package decides to change its export list later on, e.g. because it decides to export new functionalities. It means that sudden use conflicts can arise even when you do absolutely *nothing* - only because a dependency has changed.
15:03:31
pjb
If two packages export symbols with the same name, you can use them, shadowing this name!
15:03:43
phoe
pjb: yes, I meant that by explicitly using one or the other - by means of SHADOW or SHADOWING-IMPORT-FROM
15:04:11
phoe
and I don't think that you have a support contract with Shinmera to be able to tell him that it's his job to help you out
15:04:50
phoe
perhaps if no users of cl-jupyter are in here, you could try raising a GitHub issue with the details
15:05:21
phoe
I think it'll capture the maintainers' attention more surely than expressing slightly immature behaviour on IRC
15:07:39
beach
chimneys: Maybe you have misunderstood the purpose of #lisp. It is not a support channel for newbies. It is a forum for discussing the language, its implementations, libraries, and applications between users of Common Lisp.
15:13:07
galdor
are there other general CL communities ? I mean there used to be the pro-lisp mailing list but it's dead
15:14:21
jackdaniel
and there are repositoreis on gitlab.common-lisp.net (so you could say that cl.net users form some kind of a community)
15:16:17
jackdaniel
I've never managed to configure usenet client properly, probably I'm too young :) but I've been told I've avoided plenty of bad experience, so :)
15:24:12
phoe
with an occasional worthwhile post from Jim Newton who seems to be magically immune to all of the shitposts that happen there
15:44:34
beach
The people behind it are regulars at ELS and there have been presentations about its purpose, its organization, etc.
15:47:48
galdor
I wasn't aware of them, I do not hear anything about who they are, what they do, etc.
15:48:15
jackdaniel
galdor: they among other things host common-lisp.net and services associated with it
15:52:52
jackdaniel
if you chip in with your expertise there will be four. that said they do a tremendous job. you may want to say hi on #common-lisp.net
15:55:02
pjb
galdor: YOU are responsible to update the wiki! cliki.net is a wiki, if YOU find someting wrong, YOU must correct it!
15:55:47
galdor
I guess it is the same things with sending patches, it's all fun and all, then you realize you are mostly alone in it and abandon
15:59:06
easye
chimneys: that volunteer list needs to be updated. flip214 has been putting in a lot of effort as well.
16:00:02
chimneys
but the site has only one top admin who control everything? because i see the mainatainer changing
16:22:04
beach
The description of TRACE in the SBCL manual mentions that "breakpoints" are used when :ENCAPSULATE is NIL. TRACE is can perform actions upon function entry and before function exit, and one possible action is to stop execution (break).
16:22:06
beach
But does anyone happen to know how these breakpoints work, and whether these breakpoints are available at other places in the code, and if so, how to set/clear them?
16:24:25
Nilby
I used things like sb-di:make-breakpoint sb-di:activate-breakpoint in my debugger. I don't really know how they work though.
16:34:21
beach
Sure. The stepper documentation mentions that it is "instrumentation based", and for stepping to be available, the DEBUG quality must be greater than all of speed, space, and compilation-speed.
16:35:54
beach
But there does not seem to be any documentation for sb-di:make-breakpoint etc., other than the docstrings.
16:40:29
Nilby
I probably should have documented what I discoverd about it, but I didn't feel qualified.
16:49:58
Nilby
Thankfully the code in debug-int.lisp has a lot of nice comments. I sometimes wish they were in the docstrings though.
16:50:07
beach
AHA, the comment in the stepper says it works differently. It says that the compiler inserts "STEP-CONDITION signalling [sic] forms into code compiled at high debug settings, and having a handler for them at the toplevel."
16:54:17
beach
Nilby: Not quite sure what you mean by that, but I think I have enough information for the "Previous work" section of my paper.
16:57:35
Nilby
karlosz: Right, but when you have a huge comment in the code, and no docstring in an external interface function, I wish they would have just copied a few lines into the docstring. I feel like old code didn't want to bloat memeory with docstrings.
17:00:05
karlosz
there's a feature called sb-doc that will even remove docstrings from standard library functions (and extensions etc.) because it will save memory in the core image
17:01:20
Nilby
I want the opposite function. Put all the docstrings back, even the ones that aren't there.
17:02:16
karlosz
i mean you need the source to understand the implementation anyway, i don't see why its advantageous ot have it in a docstring
17:04:45
karlosz
actually a lot of the implementation details are in a manual, rather than a docstring ;)
17:06:13
beach
There is an "internals" documentation, but it doesn't mention breakpoints as far as I can tell.
17:06:58
Nilby
Not understanding doesn't seem to stop me. Not knowing what of types arguemnts should be does though. Although I guess I could ask the compiler's type inference. :-)
17:07:57
pjb
Perhaps I could redo cl-stepper with this technique, it seems a lighter instrumentation.
17:08:14
karlosz
the real one is here: https://cmucl.org/docs/internals/design.html#Tracing-and-Breakpoints
17:10:38
karlosz
yep. for the next SBCL release i added a new section called "Advanced Compiler Use and Efficiency Hints" which says to read the CMUCL user manual because they describe how to optimize code for the compiler (which hasn't changed) in 100x more detail
17:11:18
karlosz
with a whopping 50 pages of optimization tricks and descriptions of how the compiler works
17:20:12
beach
Given that SBCL has these breakpoints, it is very surprising that no real source-level interactive debugger exists for SBCL. Unless of course, I am missing something obvious.
17:21:01
beach
I mean, SLIME could provide a key sequence to set a breakpoint in the code indicated by the editor point.
17:25:19
karlosz
i mean the functionality is all there. i don't think its the compilers job to deal with things like have source level interaction
17:25:34
karlosz
i think the reason there wasn't any in the compiler is because in CMUCL hemlock provided it
17:27:46
karlosz
unclear how to do source level interaction without an editor interface to the compiler
17:30:39
karlosz
speaking of CMUCL, the next release of SBCL will have whole program optimization a la CMUCL block-compilation
17:31:18
karlosz
so you can finally have your unboxed floating point calls and returns where you please
17:32:36
beach
Anyway, thanks for all the information. Time for me to go have dinner with my (admittedly small) family and then spend time with her.