freenode/#lisp - IRC Chatlog
Search
4:46:17
romulas
Made with LISP: "We conjure the spirits of the computer with our spells" https://www.youtube.com/watch?v=aHk42kDwesM
4:48:50
beach
So, it would be best to start with making sure your postings conform to the topic and ask some modest questions about the purpose of this channel.
4:50:08
fiddlerwoaroof
pillton: interesting, I didn't realize that with-compilation-unit was in the standard
4:51:02
fiddlerwoaroof
I'd seen something like that in the documentation for implementations, but I never noticed that it was a thing in CLHS
4:51:51
beach
fiddlerwoaroof: That's probably because you have never attempted to write an implementation of Common Lisp.
4:54:28
fiddlerwoaroof
Hmm, does a form with an implicit progn like with-compilation-unit have the same effect as progn wrt. toplevel-ness of the subforms?
4:56:49
beach
Because it is specified that COMPILE-FILE wraps the compilation in WITH-COMPILATION-UNIT.
5:00:18
fiddlerwoaroof
The question I'm asking is, more explicitly, would the defun in (form-specified-to-have-an-explicit-progn ... (defun foo ())) be considered to be a toplevel form?
5:00:38
fiddlerwoaroof
Because, if it's an explicit _progn_, then it should have the semantics of progn
5:01:09
fiddlerwoaroof
Although, I guess one could say that the implicit progn doesn't occur at toplevel.
5:02:15
specbot
Processing of Top Level Forms: http://www.lispworks.com/reference/HyperSpec/Body/03_bca.htm
5:12:31
fiddlerwoaroof
there is no circumstance (at the toplevel, at least), where the subforms will be executed
5:14:03
fiddlerwoaroof
My current project is to figure out if porting sbcl to power9 looks like a feasible project
5:28:24
beach
LdBeth: That's a very general question. Personally, with my favorite coauthor I am working on a paper about bootstrapping, but I fear that it is impossible to explain to anyone who has not already tried to do something like that, at least with the 8-page limitation of an ELS submission.
5:29:23
beach
It could just be that we are unable to describe it, since this is the first time anything like this has been attempted, so there is no existing description of anything similar.
5:29:48
equwal
What are you bootstrapping? I think I'll understand. How difficult is it to get a paper into ELS?
5:30:53
beach
equwal: It depends on the number of submissions. Maybe 50% or so of the submissions are accepted.
5:31:33
beach
The percentage is not given ahead of time. There are a certain number of presentation slots to fill, so that number of papers will be accepted.
5:34:31
beach
Now, if we could make sure that Xof and people like him were the referees, then we would be fairly certain that the referees would understand the technique, but that is not possible, so we need to make sure it could be understood by a more general audience.
5:35:45
beach
Time for a break. I'll be back in 30 minutes or so. It will take you that long to read the draft. :)
5:35:50
LdBeth
It’s particularly interesting seeing how to bootstrap CLOS because so far only more general “call by name lambda calculus” is discussed as the focus
5:47:48
fiddlerwoaroof
LdBeth: from things he's said before to me, I'm pretty sure that's what he's trying to avoid.
5:53:51
|3b|
sicl/cleavir does something like something like CST -> AST -> HIR -> MIR -> ..., where the 'MIR' and '...' parts are still a bit undetermined
5:53:52
equwal
beach: I'm surprised you didn't reference SICP since they did this in scheme. This process (bootstrapping a language onto itself) is called "metacircular evaluation" https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-26.html#%_sec_4.1
5:54:13
|3b|
optimization can happen at any of those steps, though i think it is mostly expected at HIR/MIR levell
5:56:18
equwal
Although I admit I haven't seen anyone try to do it with a Common Lisp, probably because it is so much more of an undertaking than tiny scheme.
6:03:14
beach
LdBeth: The compilation to a subset is only part of the bootstrapping procedure. In the production system, we will compile to machine code.
6:04:09
beach
equwal: Thank you for pointing out the thing about metacircular evaluation, because your remark shows that we have been completely unable to communicate the difficulty of this bootstrapping procedure. I am now more convinced than ever that the paper will be rejected.
6:04:36
|3b|
beach: in 5.2, "the function compute-discriminating function" looks like it should be "the function compute-discriminating-function"
6:04:44
beach
LdBeth: Optimizations are done on the HIR (High-level Intermediate Representation) level.
6:04:45
equwal
No, my mistake is that I have never read the chapter from SICP that I linked, so I didn't know that it wasn't a self-hosting interpreter.
6:10:10
|3b|
beach: in 4.3, "The essence of our technique consists of four phases. " might be nice to specify "and six environments" too
8:13:03
equwal
Is there a reason why (defun test (x) (declare (ftype (number) number)) x) doesn't do the same thing as (defun ... (the x))?
12:30:21
lionrouge
because learning a language that is not supported at programming olympiads is not fun
12:31:03
jackdaniel
I would think that an interactive environment is much more pleasent to work with. Common Lisp transpiled to C doesn't work anything like C person could write
12:31:45
jackdaniel
as of ECL it won't work in that scenario, becasue C sources depend on a runtime library libecl.so
12:31:58
lionrouge
here in Russia there are several online platforms which are used to conduct programming olympiads. It's a major factor of motivation.
12:33:00
jackdaniel
I think that if teaching language supported by these platforms is a hard requirement, and these platforms do not provide lisp of any kind, you should pick another language
12:33:33
jackdaniel
working on transpilet source code is no fun nor a productive task (unless you are the compiler implementer, then you may find some joy in looking at these innards)
12:34:34
lionrouge
nobody will look at the transpiled code - whether it works and don't go over limits on CPU time and memory are the only things that matters
12:35:49
heisig
lionrouge: It is a shame that these competitions do not support modern Lisp compilers. A workaround might be to use a Lisp interpreter written in another language, like http://norvig.com/lispy2.html.
12:36:00
ogamita
lionrouge: there are several. clicc (free software), mocl (http://wukix.com commercial), ecl has been mentionned, but it uses C only as an assembler, you wouldn't maintain the generated C code.
12:36:55
ogamita
lionrouge: mocl works, but it only implements a subset of CL, so you cannot quickload random libraries and hope they will work. For newly written code targetting mocl, it is ok and works well.
12:37:51
jackdaniel
this is not a lisp descendant per se, but it works on s-expressions and (afair) has macros
12:38:10
lionrouge
confusedwanderer: thanks for Chicken Scheme! I heard of it some time ago but forgotten about it
12:39:53
ogamita
lionrouge: however, if you want to be able to maintain the C code, have a look at: https://github.com/informatimago/lisp-vs-c
12:40:17
lionrouge
what makes me sad if that these platforms do include modern languages: there is Go, D, Rust and even Kotlin ! And they are open-minded enough to even include OCaml and Haskell
12:41:14
ogamita
lionrouge: ie. "source equivalence", or "human reader equivalence" is of no use with C. (+ a b) and a+b are two totally different operations.
12:41:39
lionrouge
I wrote a letter to one (no answer yet). I think I should ask the other one (the third one has so much problems maintaining the server that it's definitely not in plans)
12:43:23
ogamita
lionrouge: there are automatical programming judges that support lisp. http://spoj.com does IIRC.
12:44:21
lionrouge
thanks ! But it has only English localization - it's often a problem for 13yo kids
12:46:55
lionrouge
ogamita: you mean including all the problems? I don't have that much time unfortunately
12:47:32
ogamita
Oh, right, there's not only the web site. And furthermore, some problem deal with text, so the solutions would have to be different too, they'd be different problems.
12:49:38
lionrouge
the other problem is that participants often are not allowed to have any electronic devices with them - only paper materials (language manuals, cheatsheets,etc.). And in order to use something like Chicken Scheme they need it installed somewhere to produce C code
13:02:36
elderK
lionrouge: I definitely support the use of Chicken Scheme. It's a fantastic Scheme implementation and compiles to C. It does, afaik, require you to link with libchicken although I'm pretty sure you can static link if desired. You might want to check out #chicken here on Freenode. Fantastic bunch.
13:06:36
ogamita
elderK: well the same is true of ecl. In #lisp we'd advise ecl rather than chicken…
13:09:32
ogamita
In CL there are no dialects, there are subset or superset of the CL language. There may be supersets of subsets of CL.
13:11:16
ogamita
otherwise, to confuse more: Have a look at (intersection common-lisp emacs-lisp scheme) http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/
13:15:12
beach
confusedwanderer: I think ogamita is referring to the fact that the channel topic is Common Lisp, not Lisp in general.
13:50:24
jcowan
No, there aren't. I had the ambition to make one using the Kawa framework (on the JVM), but then I got sidetracked by this R7RS-large stuff
13:52:41
Odin-
jcowan: I've wondered if there's an element of "might as well just do CL" to it, because cursory examination seems to indicate implementing ISLISP is kind of equivalent to implementing a fair portion of CL with no major incompatibilities...
13:54:36
Odin-
ogamita: And no substantial upgrades every decade or so, either, with compiler support lagging a version behind. :p
13:55:04
jcowan
EuLisp is a marginal case: if it were written "EU Lisp" it would definitely violate the stricture. As is, it can be read "European Lisp" or even "the good Lisp". :-)
13:56:07
jcowan
The main thing about ISLisp is that it's a static language. My CL-R effort is meant to be a kind of upgrade of ISLisp to full compatibility with CL.
13:57:33
ogamita
Now a nice tool would take a CL asdf system, and note all the non-ISLisp elements in the code.
13:57:53
Odin-
jcowan: Except EuLisp doesn't have anything to do with the EU, so debatable whether it applies. Otherwise Common Lisp kinda falls foul as well...
13:59:49
jcowan
ogamita: It's not so simple: ILOS is different enough from CLOS to make mere annotation insufficient.
14:00:51
Xach
heisig: http://report.quicklisp.org/2018-11-29/failure-report/petalisp.html shows many fresh problems for me
14:03:34
Xach
I got all new components for a Quicklisp build server, assembled them, and it won't boot. So I am now running quicklisp dist builds on a backup iMac via virtualbox.
14:04:00
Odin-
jcowan: The name EuLisp seems to be a few years older than the EU, funnily enough. :p
14:04:03
Xach
In the meantime I am looking for a PC speaker to maybe get beep code diagnostics. The case I got doesn't have one (maybe it's no longer common?)
14:06:37
Xach
dlowe: Interesting. I don't think the manual mentions one and I don't see one, but maybe I overlooked it.
14:45:35
ogamita
pfdietz: you can't complain that clisp is maintained and evolves, and complain that it is not and does not at the same time!
14:45:50
pfdietz
Let's make gratuitous changes to exported interfaces. What could possibly go wrong?
14:47:24
jackdaniel
yup, it is very tempting to clean up the exported interfaces to match better (for instance) a grand new refactored internals, but then half of the world breaks
14:50:22
ogamita
Otherwise, any time to win the lottery, you can put a few million on the table to clean the messes up quickly…
14:52:24
ogamita
jackdaniel: the bad half, the evil half that used foreign internals! Let them break and fall!
14:52:26
jackdaniel
changing names of exported interaces without a warning is breaking the contract between the API producent and consumer
15:22:40
jackdaniel
pfdietz: quick hack: you may call register-local-projects from sbcl and /then/ start clisp
15:24:10
Xach
i'd like to see something that is smarter - something that compiles the matching and does it *before* converting the pathnames to lisp strings.
15:36:11
Xach
the lights light up, the fans spin, but no display on DVI or HDMI. responds to power switch as expected.
15:36:41
jkordani_
xach: do you even have a list of beep codes? the manual is a little sparse on troubleshooting steps. Good luck