freenode/#sicl - IRC Chatlog
Search
8:05:29
splittist
I have no idea what the Programming (or whatever maximally generic name they chose) event is.
8:07:46
no-defun-allowed
syke, it's <Programming> 2019. guess golang isn't invited then since no generics
8:13:37
beach
It looks like it will be in Zurich, organized by Shinmera and the Google people that work there.
8:23:01
no-defun-allowed
quick question about going to europe for uni: wouldn't i have to learn the language they speak there?
8:24:02
Shinmera
Depends. At my uni Bsc. has a lot of classes in German, but the Msc. is all in English.
8:24:30
no-defun-allowed
i'm really bad at learning human languages, still can only make communication with my greek grandparents and i was taught it as a toddler.
8:25:32
no-defun-allowed
i see. also, wouldn't it be quite hard to get in? i know nothing of how prestigious or fancy unis in europe are, but the uni of bordeaux for example said it was only taking in 12 people from outside france a year?
8:27:43
splittist
no-defun-allowed: you might find this useful for the Swiss institutions https://www.swissuniversities.ch/en/higher-education-area/admission-to-universities/countries/
8:28:26
beach
no-defun-allowed: I don't think there is a limit to the number of foreign students that can be accepted.
8:31:15
beach
Copenhagen (Denmark) is a great place, for instance. And you can live in Malmö (Sweden), which is cheaper. The commute by train is just half an hour.
8:44:44
no-defun-allowed
using the search tool it has over a hundred courses it claims are in english in the compsci department
8:46:39
no-defun-allowed
(okay, they're still interesting like DSLs and logic programming, much more interesting than the crap here.)
11:22:53
beach
So far today, I have continued my effort to make the code for phase 2 and phase 3 look similar. It is amazing how I managed to put the code in totally different places in the two phases, and how I created an abstraction in one phase and not in the other.
11:22:54
beach
There are still many differences and strange places for code to be, so it is still going to take some time to fix it up. But it is going to be worth the effort, because the result will be much more understandable and maintainable.
11:26:09
heisig
That sounds great! I am really looking forward to see all your thoughts written down.
11:32:13
heisig
beach: I have some questions about what happens after the MOP has been bootstrapped. Do you have time to discuss them?
11:33:49
beach
The current idea is to concentrate all functions and classes to one first-class global environment in which the classes form a graph with cycles as it should.
11:36:49
heisig
I think it would be nice if one would not have to duplicate parts of the ASDF system definitions. Maybe one could write a program that queries ASDF on the host to automatically generate the list of files to load.
11:37:52
heisig
The question is, how to deal with circular definitions, such as that MAKE-SEQUENCE depends on SUBTYPEP, which might depend on MAKE-SEQUENCE?
11:40:55
heisig
I mean it is not a problem if none of the functions is ever called at bootstrapping time. But I had the idea to query the environment to build some support macros such as SICL-SEQUENCE:WITH-ELEMENT-TYPE.
11:40:56
beach
Sometimes I break my ASDF systems into two or more. One would be called <mumble>-base and it would provide the dependencies for other systems.
11:42:17
beach
I am not sure I understand what you are saying. Are you saying you tried to do that and failed because of some circular dependency?
11:45:51
heisig
But I think it is possible to avoid this problem, I just wanted to ask whether you thought about it already and have a simple solution.
11:48:42
heisig
Ok, final question. You intend to build an 'ersatz'-graph that is isomorphic to the final Lisp image. But for that to work, each function needs the proper code vector for the intended target platform.
11:50:53
beach
Also, the entry point needs to be set once I know the address that a function will have in the final image.
11:55:07
heisig
My idea is the following: You can represent each ersatz-function with both a code vector, and a suitable host function.
11:55:46
heisig
The host function can be tailored to do the same thing as the code vector would do in the final image.
12:02:47
beach
Now I just have to figure out how to write that down in a way that can be understood, and in at most 8 pages. :)
12:05:12
beach
It hasn't been possible for very long for others to make substantial contributions, but it's getting there.
12:10:04
beach
I mean, using the MOP machinery for most other parts of the system is going to give a lot fewer special cases, so a lot less special-purpose code that what I suspect most existing systems have.
12:28:57
beach
There are lots of things that don't require a PhD. At some point, I'll try to make a list of tasks and I'll annotate each one with the degree that is required to work on it. :)
12:39:42
beach
heisig: So, apparently, I figured out at some point that I could make the list of shadowed symbols conditioned by a reader conditional.
12:41:00
beach
I think that's a workable solution to the problem of making the code run both in a host for testing purposes and as native code in SICL. No?
12:45:48
heisig
That is actually one of the parts I am still confused about. One purpose of a SICL module is to (more or less) portably provide some SICL-FOO package. The other one is to bootstrap SICL.
12:46:34
beach
Right then I was thinking of sicl-specific modules, like the definition of SYMBOL and PACKAGE.
12:47:51
beach
So it should be shadowed only when the system is tested (without any purpose of loading it) in a host.
12:48:33
beach
So I guess instead of #-sicl, there should be #+sicl-host-test or something like that.
12:49:32
beach
That way, it's the responsibility of the system that does the testing to provide the feature in question.
12:57:28
heisig
I think the easiest way would be to split module definitions and bootstrapping entirely, which would make the testing and maintenance of modules much easier. But yes, I should have a night of sleep before continuing that train of thought :-)
13:02:55
beach
Those systems contain code that can be compiled and loaded by the host and then imported to one of the first-class global environments during bootstrapping.