Search
Thursday, 22nd of March 2018, 6:45:52 UTC
7:08:58
jack_rabbit
hmmm. It seems the selection is paste-able within clim, but doesn't get put into X's clipboard buffer.
7:10:34
karlosz
it seems like the clisp people are onboard with uplifting some components from cleavir
7:11:29
karlosz
from our discussion it seems that
7:11:38
karlosz
they don't really care for the library functions
7:11:49
beach
I was just going to ask.
7:11:51
karlosz
i.e. the reader and sequence stuf
7:11:55
karlosz
that makes sense though
7:12:11
beach
It does, mainly for reasons of bootstrapping.
7:12:38
karlosz
i thought it would be a straightforward drop in replacement
7:12:43
beach
The SICL modules often require the full language.
7:13:00
beach
But they probably need these modules early in the creation process.
7:13:02
karlosz
well clisp is a full ANSI CL
7:13:13
beach
Yes, but it is built on C.
7:13:14
karlosz
thats what you mean
7:13:23
karlosz
the compiler is in lisp
7:13:40
beach
... so I am guessing they do what similar systems do, i.e, they gradually build up a full Common Lisp system.
7:13:47
karlosz
but i guess it is a strange bootstrap process, haven't gotten familiarized myself with it either
7:14:04
beach
Yes, I think it is strange. Nevertheless it is common.
7:14:38
karlosz
my proposal so far is that he first half of the project is going to be spent getting the core cleavir components integrated
7:14:48
karlosz
i.e. the data structures like the flow graph and HIR stuff
7:15:01
karlosz
and the second half adding the various optimizatoin modules
7:15:07
karlosz
like type inference and dataflow anaylses
7:15:13
karlosz
how modular do you think cleavir is
7:15:28
karlosz
is it to the point where i can incrementally drop in things like certain optimizatoin passes?
7:15:45
karlosz
as in having type inference but not dataflow analysis
7:16:02
beach
It is non-trivial to determine an order between those things.
7:16:11
beach
Your example is not a good one.
7:16:29
beach
Because type inference can not be done without dataflow analysis.
7:16:31
karlosz
i was thinking that dataflow analysis might be a prereq for type inference
7:16:51
karlosz
so it seems that the core cleavir omponenets need to be integrated first
7:16:55
karlosz
and then the order is
7:17:06
karlosz
type inference depends on dataflow anaylsis
7:17:11
beach
When I said "simple Cleavir-based compiler" the other day, I meant without too much considerations related to optimization.
7:17:33
beach
That way you have the infrastructure working.
7:17:40
beach
And you can think of optimizations later.
7:17:46
karlosz
i was thinking that would be the first half of the project
7:17:50
karlosz
getting the framework together
7:17:59
beach
Do you want to generate native code?
7:18:03
karlosz
clisp does very little lisp optimizatoins
7:18:14
karlosz
i was thinking of plugging into the existing bytecode machinery
7:18:22
beach
That should not be too complicated.
7:18:29
karlosz
cleavir is backend independent right?
7:18:46
beach
In fact, for SICL, I have a backend that turns HIR into a simple version of Common Lisp.
7:19:08
beach
I would think the bytecode generation would be very similar in structure to that one.
7:19:14
karlosz
last time i looked at sicl in depth, there was also a mir
7:19:28
karlosz
is that just subsumed by cleavir now?
7:19:29
beach
It needs to be reworked.
7:19:47
beach
Because MIR is very implementation specific.
7:20:00
beach
Clasp uses LLVM directly for instance.
7:20:20
beach
MIR exposes address calculations, so it depends on object representation.
7:20:20
karlosz
i was thinking the clasp people might have some input
7:20:25
karlosz
on how there integration goes
7:21:17
beach
In fact, we should probably stick to #clasp for these discussions. jackdaniel is not that happy about using #clim for just about anything. :)
7:21:37
karlosz
alright, i'll switch there then
7:21:50
beach
Also, that way, you will get immediate feedback from Bike and drmeister even when I am not around.
8:28:14
loke
https://photos.app.goo.gl/m0TeHZpuyV8YWMb22
8:37:25
beach
jackdaniel: "advice" is a substance in English, so it has no plural form, just like water, air, etc. You need to use "a piece of advice" in singular, but you can use "advice" to main any number of such pieces of advice.
8:37:39
beach
ACTION felt like giving a short English lesson today. :)
8:38:22
jackdaniel
it is different than in Polish it seems
8:39:17
beach
Oh, things like that are different everywhere. We haven't started on verb+preposition yet. Different meaning in different languages.
8:40:21
beach
"look into", "look out", "look over", "look for", "look up".
8:42:03
red-dot
Oh, uncountable nouns. One of my favorite topics.
8:42:24
red-dot
Asia is a great place for counting words. Some very odd constructs.
8:55:09
loke
red-dot: You'll like this one: https://www.reddit.com/r/singapore/comments/868blr/all_of_you_so_black_how_to_recognise_hotel_cafe/
8:59:04
loke
beach: Is there a simply way to create some margins around some output? I guess I could just create a white border, but...
9:00:00
beach
loke: Look in chapter 19. surrounding-output-with-border
9:00:08
beach
Not sure it applies to your case, of course.
9:00:39
loke
beach: Right. I know about that one. I just figured there may be a clealer way to jsut create empty margins. Like surounding-output0with-margins
9:00:53
beach
I am unaware of such a thing.
9:01:18
jackdaniel
loke: surrounding-output-with-border have padding argument(s) you may use
9:05:09
loke
OK, I did that, with a white border.
9:06:26
jackdaniel
you may define locally macro :surrounding-output-with-margins which changes keywords like :margin-left … to :padding-left etc
9:06:36
jackdaniel
or something in this spirit
9:06:49
jackdaniel
you don't want white border, you want transparent border
9:06:56
jackdaniel
there is +transparent-ink+ for that
9:37:18
loke
https://photos.app.goo.gl/p1VBkVdqU0WtUelf2
9:38:11
loke
perhaps the horizontal line for fractions should be slightly wider than the widest component
9:38:30
loke
Also, I need vertical alignment against baseline, not centre as I'm doing now.
9:38:39
beach
If I were you, I would check in some math books, or check what TeX does.
9:38:42
loke
But getting the parens right is probably the most important.
9:49:44
loke
Or, I should say: I try to do that.
12:06:50
nyef
loke: That's starting to look okay, though I do agree that getting the parens right, or at least not horribly wrong, is probably the biggest win right now.
12:47:39
beach
nyef: A while ago, you mentioned bugs in SBCL related to inlining. Do you remember any such bug and what caused it?
13:42:24
nyef
beach: https://bugs.launchpad.net/sbcl/+bug/1523149 for starters.
13:50:16
beach
Some referee complained that our paper only discusses the TECHNIQUE for inlining, not the strategy for when inlining should be applied. He basically said that "inlining is just β-reduction, so it IS trivial. So why is this paper only about that?"
13:50:47
beach
Aside from β-reduction being incorrect, it is a strange thing to say.
13:51:58
beach
Sure, inlining is fairly trivial in a purely functional language, but when you start having side effects, it becomes a bit more delicate.
13:52:43
beach
I added the following example: (defun f (x y) (setf x y)) (defun g (a) (f a 3)).
13:53:16
beach
If the technique from functional programming is used, you get (defun g (a) (setf a 3))
13:53:54
nyef
So, the lesson here is, "always include a case that invalidates the easy solution"?
Thursday, 22nd of March 2018, 18:45:52 UTC