User loginNavigation |
LtU ForumStealing language features for fun and profit in RubyHi all, I haven't used Ruby much yet, but I was happy to see this entertaining article about how to enable some language features common in Haskell, ML, Lisp and others (Pattern-matching, S-expressions). Linspire chooses Haskell as preferred language
This is a couple of weeks old, but significant enough that I think many on LtU will be interested. From the Debian Haskell mailing list:
The OS team at Linspire, Inc. would like to announce that we are standardizing on Haskell as our preferred language for core OS development. Backwards debuggingI just came accross UndoDB, which allows stepping backwards through a program. It reminds me of the Objective Caml debugger. Outside of these more complex tools, I find it easy to look back in program execution when I use recursion rather than mutation and a stack trace is available. What other languages or language tools allow looking backwards in program execution? Segmentation FaultDuring a 1 user Solaris test the CMS(Central Management Server) crashed. The core file was generated at 2AM, so you check the machine on which the database was running. You find an event logs that says "MS SQL Server: unknown error" and it was generated at around 2AM. You then extract the thread stacks from the core file, and you see that a thread had a segmentation fault (SIGSEGV). At the top of the stack you see that the thread was executing some Database Subsystem code of ours. Question: What do you think is the most likely cause of the segmentation fault and why? haXe 1.0There's been a lot of activity with Javascript generators lately, with project such as Google Web Toolkit or Links. haXe is an OO language with high-level features (polymorphism, type inference, structural subtyping, iterators) meant to program the Web. It targets three platforms : Javascript, Neko (for the server side) and Flash. Instead of taking an approach to isolate a "common feature set", haXe has a common standard library but also give access to each platform "native" library. Some classes can be supported on several platforms by using conditional-compilation with platform-specific code. For example haXe includes some optional libraries that can be used for example to do transparent synchronous or asynchronous communications between the platforms (called Remoting). haXe 1.0 was released a few days ago on http://haxe.org. The haXe compiler is entirely written in OCaml. Orca chosen as default Syllable scripting language Orca (an open-source Rebol-like language) has been chosen as the default scripting language for the Syllable operating system, according to "The Rebol Week" site - There have been attempts at creating open-source Rebol-like languages in the past - most notably, Freebell and R-sharp. However, both of those projects have been dormant/dead for some time. Those interested in trying out Orca can find it here - To build it, you will need "m2", available here - http://wsrebol.sourceforge.net Orca now looks like it will become the most successful and most widely-used of the open-source Rebol-like languages. Good luck to its developer ("wickedsmoke") and the Syllable team! Continuations and MicroThreads on MonoContinuations and MicroThreads on Mono is a modification of the Mono VM to implement...Continuations and MicroThreads! Question about Lazy-ness and algorithmic runtime analysisConsider the following Haskell-ish functions: (I'm not actually gonna type them into hugs or anything so forgive any syntactical errors) naiveMin [x] = x naiveMin x:xs = if x < y then x else y where y = naiveMin xs qsort [] = [] qsort x:xs = qsort [ a | a <- xs, a < x] ++ [x] ++ qsort [ b | b <- xs, b >= x ] lazyMin xs = head (take 1 (qsort xs)) Now what I'm asking is, if we have lazy evaluation semantics, in the lazyMin function, when we call qsort, will the only part that gets evaluated be qsort [ a | a <- xs, a < x] or possibly at most: qsort [ a | a <- xs, a < x] ++ [x] since we are only taking 1 element from the list. Does this mean it's runtime is O(n), like naiveMin? Are we using lazy evaluation to complete change how much code gets run from outside the function? I'm guessing the answer is probably yes, which also kind of turned on the light-bulb as far as the usefulness of lazy evaluation goes. (Oh yeah you can have an infinite list, but um, so what?). I just want to make sure I'm not missing anything here. Ethnographic Study of Copy and Paste Programming Practices in OOPLFrom the abstract:
I noticed this paper in the references of a (draft) paper on subtext, which is a project previously discussed on LtU. I think that this is interesting from a language design perspective and couldn't find a previous discussion on LtU. (I'll defer my other comments (read: critique) to a later post - if any.) Google Web ToolkitGoogle has released a new web toolkit. The possible significant item for LtU is the Java-to-Javascript compiler that is one of the central components of the toolkit. I am unconvinced of the value of coding in java rather than in javascript. However, the marketing folks have been thinking along the same lines as some of the threads here on LtU with respect to static type checking, code completion, etc. Maybe some of the static fans could comment on this? cheers, |
Browse archives
Active forum topics |
Recent comments
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 2 days ago
8 weeks 5 days ago
8 weeks 5 days ago
8 weeks 6 days ago
9 weeks 3 hours ago
9 weeks 4 hours ago
9 weeks 4 hours ago