freenode/#sicl - IRC Chatlog
Search
14:50:11
beach
In fill-environment.lisp, add another WHEN like (when (fboundp `(setf ,symbol)) (setf (sicl-genv:fdefinition `(setf ,symbol) environment (fdefinition `(setf ,symbol)))))
14:50:50
beach
You don't need to test for special operator or macro function, because they can not be named like that.
14:52:19
beach
In fill-environment.lisp, add another WHEN like (when (fboundp `(setf ,symbol)) (setf (sicl-genv:fdefinition `(setf ,symbol) environment) (fdefinition `(setf ,symbol))))
14:54:52
beach
I hope I made clear that the code was not complete, so additional work/thinking is to be expected.
15:07:28
beach
I am more and more convinced that we hit the right abstractions with Eclector and Trucler. Now, we need Clostrum to get it right for first-class global environments.
15:08:01
beach
Once that is done, we will be able to extract AST and CST-to-AST to separate libraries.
15:09:29
Harag
yeah well I have a working version of what will become Colstrum for the sandbox, I call it F1 for now
15:10:42
jcowan
beach: Prior art for CLOSOS includes MUMPS, a timesharing system running programs in the MUMPS language (related to JOSS and FOCAL) without an MMU on the PDP-8 computer, and Edusystem 20, a BASIC-language lookalike for it.
15:16:52
froggey
beach: I think I'm done, aside from changes to HIR-evaluator which I'll discuss with heisig
15:16:55
froggey
it makes it all the way through SICL boot without any problems, are there any other tests you want me to run before I send a PR?
15:17:57
beach
froggey: Wow, that was quick. No, you can send the PR. I'll use the REPL after boot to see that it still works, but if it made it though boot, that should be fine.
15:18:42
jcowan
RSTS-11 (as opposed to its successor RSTS/E) was also a single-language no-MMU OS, this time for the BASIC-PLUS language and the PDP-11.
15:19:32
beach
Right, I guess most variants of BASIC would not allow access to the entire address space.
15:21:06
jcowan
Right, nor do they allow execution of arbitrary code. What made these systems unusual (and aligned with CLOSOS) is that they required no MMU.
15:22:37
froggey
I looked through ansi-test to see what it would need to run, and the two obvious missing features are pathnames/file-system support and DEFSTRUCT
15:23:24
froggey
of course SICL is built using DEFCLASS, not DEFSTRUCT, but other Lisp software isn't. so I was thinking an implementation of DEFSTRUCT built on STANDARD-OBJECT/CLASS
15:30:30
froggey
it's possible that I tried to get too clever, doing change-class on a funcallable-standard-object
15:37:10
froggey
I think it's an SBCL bug. however it's fairly obscure behaviour, so I wouldn't be entirely surprised if other implementation had trouble
15:41:23
froggey
all it's doing is changing from one kind of funcallable-standard-class to another kind of funcallable-standard-class. that should be reasonable, right?
15:47:57
froggey
I can change the behaviour no problem, it'll probably be a little bit easier to understand too
15:50:22
froggey
I always build SBCL from source and install to versioned locations to avoid library issues, my system hasn't done a software update for months
15:52:22
beach
/usr/local/bin/sbcl: /lib/x86_64-linux-gnu/libc.so.6: version `glibc_2.28' not found...
16:04:07
beach
*sigh* I was trying to download a slightly older version of SBCL, but then I get sourceforge project website temporarily offline.
16:04:53
beach
And if I need to upgrade Ubuntu, then I am really screwed. My wife reports that they use containers for every package now, and I am not interested in that.
16:10:14
froggey
I've been using Mint for a few years and it hasn't given me any major problems, but I'm a major version behind and don't know what the latest version is like
16:13:48
Harag
I run the latest ubuntu, and usually upgrade to the development version a month or two before a new release and I have hardly ever have issues...
16:14:40
beach
I don't have problems with it either, other than the fact that the default desktop doesn't do what I want.
16:15:26
beach
And my wife tells me that, because of all these containers, the amount of disk space taken up by the new release is way more than before.
16:20:21
karlosz
i was going to change how closure conversion worksmore drastically but i don't want to make cleavir1 and cleavir2 too divergent on the other hand
16:20:45
froggey
aside from the HIR interpreter changes, which are now causing beach no end of problems...
16:20:48
karlosz
it's great that you are doing this because having forked cleavir versions is not fun
16:21:31
karlosz
right, i've never used the HIR interpreter so i don't know how to make the changes there
16:22:13
karlosz
well i was thinking of explicitly having lexical-bind instructions in the IR so that the inlining interaction with closure- conversion would be less of a hack
16:23:13
karlosz
is this for the sake of potentially merging the two versions in the future at some point or are you just forward porting stuff for the time being?
16:24:54
beach
karlosz: Bits and pieces of help. The enclose split makes it possible to eliminate some cell creations, which is what I would want at some point.
16:25:56
karlosz
beach: variables bound with LAMBDA or LET are "different" from temporaries in the sense that they can be memory cells. inlining needs to hack things up so things like (loop for i from 1 to 5 collect (let ((x i)) (lambda () x))) works in the fact of inlining if you rcall
16:26:20
beach
froggey: I think the defstruct is a good idea. I haven't been able to gather up the courage for it.
16:27:25
beach
karlosz: I must be very tired, because I don't even see how that's an answer to my question. Definitely time to call it a day.
16:27:49
beach
Tomorrow I'll try sourceforge again, to see whether it is possible to install a slightly older version of SBCL.
16:29:25
karlosz
oh, i wasn't being very clear. the lexical bind instruction marks the explicit binding of lexical variables so inlining wouldn't destroy that information
17:26:15
alandipert
to support delivery and tree-shaking in JACL, i'm thinking about a scheme whereby i attach two pieces of metadata to every bound function and value, an AST and the set of free function/value symbols referenced as discovered during analysis. when the user calls DELIVER with an entrypoint, i build the graph of function and value references and topo
17:26:15
alandipert
sort it. then i send the ASTs through a code generation step, parameterized to directly-link global references. then i do a 'fixup' step where i assign all the code for the global references to names in a static javascript object (the names to which references are linked). if i'm missing something or this otherwise sounds weird i'd love to hear
17:45:14
froggey
heisig: I've made a change to enclose-instruction and updated HIR-interpreter. do you want me to try to update HIR-evaluator too?
17:48:19
heisig
My plan for this weekend is to go camping again, far away from the internet and other distractions.
17:49:59
pjb
heisig: but you can still go high tech camping, like a StarTrek expedition, with drones surveying your camp and alerts when there are incoming predators, iPhone-hooked water and fruit analysers, wikipedia to identify fauna, flora and rocks, etc.
17:50:29
pjb
For people like us (city dwellers), the country side is as good as any alien StarTrek planet.
17:52:20
heisig
pjb: That sounds good, but I fear that in practice I'd spend half of my vacation debugging drones :)
18:44:56
beach
So, if I build a recent SBCL from source, using an old SBCL, will the result use whatever glibc I have installed, or will it still require a more recent version?
18:45:51
alandipert
beach thanks in advance and absolutely no rush, as usual. your feedback is so valuable that i'm happy to wait a pretttty long time for it :-)
18:46:12
shka_
well, i was building recentish SBCL versions with older from the repo and it always worked for me
18:47:02
beach
shka_: The issue is that the recent binaries available on sourceforge require a version of glibc that is more recent than the one I have installed.
18:48:18
beach
So I am wondering whether, if I take the source of a recent SBCL, instead of the binary, the result will still attempt to use a newer version of glibc than the one i have installed, or whether it will use whatever version I have now.
18:49:56
beach
shka_: If building from source still requires the more recent glibc version, it won't help to build from source. Hence my question.
18:50:41
shka_
beach: well, i was using ubuntu 18.04 (kubuntu actually but whatever) at the office while i was still working there
19:16:26
scymtym
beach: when SBCL is compiled from source it will use (and in some cases be tied to) the glibc version of the system it is being compiled on. that is the reason why the pre-compiled binaries only work with certain ranges of glibc versions in the first place. because Xof has to choose a target glibc version that is recent enough to not be insecure
19:25:48
jcowan
Apparently the most dangerous predator in Germany is the tick; wild boars are of course not predators, but definitely dangerous to encounter.
19:42:54
Bike
ticks probably kill more people than any large mammal other than humans. did i miss wolfchat
20:02:04
Harag
my favourate camping/fishing spot has crocodiles, hippos, leopards, bush pigs, black mambas and the occational armed robber
22:03:41
lonjil
glibc compat works so that (for the most part) applications compiled against an older glibc will work with any newer glibc, but an application built against a newer glibc will not work with any older glibc.