Unanswered Questions
13 questions with no upvoted or accepted answers
14
votes
0
answers
360
views
What is the relationship between STG and RVSDG?
GHC is an optimizing Haskell compiler. Since Haskell is lazy and mutation is rare, control flow and data flow are often very closely aligned. Therefore, it is often most useful to think about ...
12
votes
0
answers
241
views
Why were OS/360 PL/I procedure calls so expensive?
In Guy Steele’s famous paper Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO, he describes the poor performance of ...
10
votes
0
answers
242
views
What styles of interpreter are not well-supported by RPython?
The RPython toolchain translates interpreters to JIT compilers. The interpreter may be written in any style; the corresponding JIT compiler is defined by annotations on the main loops of the ...
10
votes
1
answer
432
views
Towards a better default listlike datastructure for functional languages
In most functional languages I know of, linked lists are the default datastructure of choice for many operations. The benefits are clear - they're clearly encoded with ADTs, and can be utilised easily ...
9
votes
0
answers
110
views
How to detect changes to definitions and their impacts?
I'm implementing the Language Server Protocol (LSP) for my language, and I'm having huge problems tracking updated definitions.
1. How to determine which files have been changed?
lsp can only monitor ...
8
votes
0
answers
143
views
Extending Hindley Milner with (mutual) recursion
What's a good approach for extending Hindley Milner with mutual recursion without de-sugaring to let+fix+records?
My thinking is (assuming no polymorphic recursion)
Collect mutually recursive lets ...
8
votes
0
answers
108
views
How does GADTs as in Haskell-like languages compare to indexed families in dependent types?
In Haskell, GADTs are only indexed by types, while indexed families in DT are mainly indexed by terms. With the presence of without-K, it is hard to refute cases just by unifying type terms, while in ...
5
votes
1
answer
185
views
Optimization algorithm using conditional invariants
I am looking for an optimization algorithm that would make use of invariants in regions of code. For example
if (n == 0) f(n);
should be changed to
...
4
votes
0
answers
120
views
Determining the most optimized date type for the platform with type inference
For my programming language, I have built an engine that goes after the parser and before the compiler. This engine analyzes, validates, and simplifies the AST.
During the analasys, it determines as ...
4
votes
0
answers
181
views
Why has there been little recent work on GPU compiler phase optimization?
While GPU compiler phase optimization has been shown to improve performance significantly (e.g. https://link.springer.com/chapter/10.1007/978-3-319-75178-8_35), there has been very little follow-up ...
3
votes
0
answers
152
views
Do any languages provide arrays that are always powers of 2 in length?
In the early 1970s, I had university a co-op job at a place where one of the main languages used was like a glorified calculator.
It provided two stacks, and all variables and operators were a single ...
2
votes
0
answers
164
views
Why would an APL implementation include "Deep Transpose"?
APL64 includes a ⎕DTR system function which, as far as I can tell, is equivalent to ⍉¨⍉ i.e. the transposed outer array with ...
0
votes
0
answers
188
views
Pros and cons of treating endless loops as "anything can happen" UB, versus allowing limited reordering
Many programming languages, including C89, specify that the behavior of a program in terms of sequentially executed steps, whose behavior is in turn defined in terms of the program's state when the ...