User loginNavigation |
LtU ForumLIVE 2018 CFP4th Workshop on Live Programming (LIVE 2018) https://2018.splashcon.org/track/live-2018-papers The LIVE 2018 workshop invites submissions of new ideas for improving KEYNOTE SPEAKER Against The Current: What We Learned From Eve SUBMISSION GUIDELINES The shared spirit of LIVE is a focus on the human experience of - Live programming environments Our goal is to provide a forum where early-stage work receives IMPORTANT DATES Submissions due: Fri August 17, 2018 Anna: A KVS For Any ScaleAnna: A KVS For Any Scale, by Chenggang Wu, Jose M. Faleiro, Yihan Lin, Joseph M. Hellerstein:
This isn't strictly programming language related, so I didn't post this as a story, but actors and distributed systems are popular topics around here, and this builds on the CRDT and Bloom work discussed here before. The performance numbers under contention are certainly impressive compared to existing alternatives. See also the accompanying article where the authors discuss this further. By naasking at 2018-03-09 21:05 | LtU Forum | login or register to post comments | other blogs | 3915 reads
GADTs as gaurdsIs there some reason Haskell didn't expose GADTs as guards?
-- Haskell
data Term t
Lit Int :: Term Int
App (Term (a -> b)) Term a :: Term b
...
-- Guards
data Term t
Lit Int where t = Int
App (Term (a -> b)) Term a where t = b
...
It seems equivalent and semantically simpler. Is there a functional language with explicit limits on the heap(s)?I'm trying to make a research compiler which is supposed to run as a service, and so I'd like to use some language with cooperative, userspace threads, as (Go or) Erlang. The problem is that some user requests may consume too much memory, or possibly never halt. So I'd like to impose some restrictions, e.g., "requests from IP a.b.c.d may only use up to 80mb of heap memory and run for 5 minutes top". Haskell has setAllocationCounter (also forkIO and STM), which would help, but that doesn't seem to take the GC into account. Erlang seems to let me limit the heap for each process, but many tasks will be computationally intensive, and Erlang's probably not a good pick. Would anyone have some suggestion? I'd rather not have to create a new language, but it's a possibility; is there any research on such languages that could help? Anything recent happening with multi-stage programming?I remember that 15 years ago, multi-stage programming was new and exciting. It promised simpler implementation of programming languages, better-than-macro support for strongly-typed languages, etc. These days, I can't find any recent publications on the topic. Am I somehow looking in the wrong place? Has the topic fuzzed out? In particular, I'm currently working on something extremely close to multi-stage programming, applied to a JavaScript JIT compiler. I'm very surprised that nobody seems to have worked on seriously applying multi-stage programming to JIT compilers. Am I missing something obvious? BottomJust a small thing I've often wondered about. In math, people are often content separating algorithms into two classes: those which terminate, and those which don't. For the latter, often the bottom symbol is introduced. But isn't there obviously a third class: Those algorithms for which I don't know whether they terminate? So, I've always wondered: Don't you introduce a logical inconsistency by cleanly separating algorithms? I.e., since you state something you can't know, it must be inconsistent, right? Looking for views/the best answer/etc. Or, an open invitation to shoot with your best wisdom. Generics and Reverse Generics for Dynamic LanguagesGenerics and Reverse Generics for Pharo
Are Monads a Waste of Time?I was thinking about this yesterday. If the point of functional code is that it is easier to reason about, should we like Monads? Consider we have an interpreter, and that we construct a sequence of commands in the free monad. Given a program like this: f = do s <- newRef writeRef s 23 writeRef s 42 readRef s Now I have deliberately not specified the implementation of the interpreter, it could be pure using threading, it could be impure using IORef, or it could be any other valid implementation in Haskell except we won't allow "unsafe" code. The question is, just looking at the above code, it looks like "s" is mutated. Yes the implementation in the monad could be pure and use state threading, but how does that help us reason about the above imperative program? How is the above program any better than the following JavaScript program:
function f() {
var s
s = 23
s = 42
return s
}
Ignoring syntax differences (because we can trivially translate from one syntax to the other) surely we can make any argument about implementation in the free monad with an interpreter about this code that we can about the first example? Surely this means that this second imperative program is no easier or harder to reason about than the first? Hence my deliberately controversial title, why write an imperative program in a monad? Either we should actually write code in a visibly referentially transparent way like this: f = let s1 = 23 in let s2 = 42 in s2 Or we may as well just use an impure language to start with. (I am deliberately ignoring the fact that parts of a program could be pure in Haskell). The second second part of this question is, if making a program look as if it had state is as bad as having state from an analysis point of view, how could we prevent this in the type system? What loophole is allowing 's' to behave as if it had state, and how can that be closed? Type systems for acyclic termsI've been looking for type systems which guarantee that terms are acyclic, in a context with mutability, of course. Any references? Thoughts? Mark – A simple and unified notation for both object and markup dataGlad to announce the public beta release of Mark, a simple and unified notation for both object and markup data, at https://github.com/henry-luo/mark. The notation is a superset of what can be represented by JSON, HTML and XML, but overcomes many limitations these popular data formats, yet still having a very clean syntax and simple data model.
Welcome your feedback! By Henry Luo at 2018-02-07 09:55 | LtU Forum | login or register to post comments | other blogs | 3310 reads
|
Browse archives
Active forum topics |
Recent comments
1 day 15 hours ago
2 days 12 hours ago
3 days 16 hours ago
3 days 16 hours ago
1 week 1 day ago
1 week 1 day ago
1 week 1 day ago
4 weeks 2 days ago
5 weeks 18 hours ago
5 weeks 1 day ago