freenode/#sicl - IRC Chatlog
Search
10:12:12
ck_
Maybe this is old hat to you, but I just got some amusement out of looking at the github statistics for SICL. According to it, there's 0.1% "NewLisp" code in it :)
10:35:05
no-defun-allowed
(It also occurs when you find lexical scoping too hard to implement in your interpreter, and write long paragraphs about how deep copying return values between stack frames is faster than garbage collection, and how mutable data structures and variable arguments are far too complicated. Okay, I'll stop.)
10:41:11
no-defun-allowed
I'll leave it at "I like to read NewLisp propaganda when I'm having too good of a day".
13:24:38
jackdaniel
github gathers statistics how much of the code written in cl is new and labels it as newlisp
16:24:34
beach
So the plan is to change how HIR is transformed in order to adapt it to the call-site optimization technique.
16:24:40
beach
There will no longer be any FDEFINITION hoisting. Instead, I will collect all the FUNCALLs that call the result of an FDEFINITION together with all other instructions that make global function calls like CREATE-CELL, ENCLOSE, etc.
16:24:46
beach
During bootstrapping, when the HIR code is "tied" to an environment, The FDEFINITION will be replaced by a CAR with a constant input being the function cell. HIR transformations will then be faster and simpler, because there will be way fewer shared variables. And the static environment of most functions will be empty.
16:24:47
beach
MIR-to-LIR will ignore the FUNCTION input of FUNCALL and it will not attempt to put the inputs in any special place, since that will be taken care of by the callee.
17:46:44
beach
I'm off to fix dinner for my (admittedly small) family. I'll be back tomorrow as usual.
18:55:23
aeth
ck_: no-defun-allowed is right... there's this really terrible heuristic in the Ruby library used by both Github and Gitlab that basically assumes anything with "define" in it that ends in .lisp is Newlisp. This is absurd, of course, since if you don't have enough of the CL heuristics to override it (like putting all of your conditions in one file) then you get Newlisp false positives.
18:55:55
aeth
ck_: This is the fix: https://gitlab.com/zombie-raptor/zombie-raptor/-/blob/4a09d285b993bbfd67864842df343910e7fe9d99/.gitattributes
18:57:59
aeth
And if anyone wants to have, say, 2000 useful pull requests on Github, this is proably the way to do it.
19:12:45
scymtym
aeth: you are kind of late to the party with that idea: https://github.com/s-expressionists/Eclector/pull/34
20:21:51
aeth
scymtym: Yes, but every single Common Lisp repository should have it imo. Not just the ones with significant false positives. It's too easy to make one small change and introduce "Newlisp".