Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Submission + - Ask Slashdot: Would you design a modern CPU with virtual memory support?

kruhft writes: Virtual memory[1] is useful for a number of things[2], but can takes up a large amount of die space and development time during the development of a CPU to be both efficient and correct. With the advent of 64+ bit architectures and cheap memory available today, an extended address space and paging aren't specifically needed for many tasks. Memory safe, high level languages[3] need less 'isolation' and 'protection' from a VM subsystem than traditional languages like C and C++. Page tables help the OS organize non-contiguous physical memory for applications, but is that as much an issue today, especially for symbolic and object based languages?

If one was to design a new 'high level' language CPU today, would it be seen as advantageous to include a traditional multi-level page table based virtual memory system, or could the resources be put to better use in other areas of the chip design?


[2] The primary benefits of virtual memory include freeing applications from having to manage a shared memory space, increased security due to memory isolation, and being able to conceptually use more memory than might be physically available, using the technique of paging.


Comment Re:Editing changed the question, unfortunately (Score 1) 108

Thank you for the interesting response. Could you explain a bit more about what you mean by "using for example tree-pattern-matching replacement into a low-level form". What would you be replacing with what?

My goto performance sensitive problem has always been raytracing, so I think that's the next logical project to implement with this tool and see where it goes.

Comment Re:Asking Obvious (Score 1) 108

Unfortunately, the editors messed up a bit with the explanation of what sxc is and what it is good for. It's not about compiling your Lisp code to C, it's about writing C code using Lisp. With the S-Expression syntax of sxc, a whole world of macro programming and code generation become possible in a natural matter leading from the using of S-Expression and macros. This, so far, has been uncharted territory, although his type of project is quite popular to implement. It seems that nobody has actually used to it's full potential yet; hence the question.

What do you think that the combination of a high level language for the generation of a low level processing language would provide, if anything over the normal combinations of cc + cpp?

Comment Editing changed the question, unfortunately (Score 2) 108

I'm glad this story got posted and sxc is getting some press, but the real question I asked was:

It is unknown exactly what power might come about from this combination of low level processing with high level code generation. Can you think of any possible uses?

The idea of using pre-processors to generate C code is not new to programming; but the usage of the full power of Common Lisp in such a natural way is up to the question.

Comment Re:Back to the future (Score 1) 108

Thank you for your anecdote, I appreciate the comparison with on of my favourite supercomputer companies! sxc is not necessarily a 'Lisp to C' converter, but a C -> C converter with the optional metaprogramming facilities to generate code using Common Lisp. The syntax of the sxc language is Lisp like; the semantics are C. So really this is a C -> C translator with added meta facilities.

The code that goes in and the code that comes out is strictly C. What you can do with the added ability of Common Lisp is really what's at question for me.

Comment Re:Facebook (Score 2) 108

Unfortunately the editors made a slight mistake with the description of this tool. It's not to 're-write your lisp code in C', it's to write new C code using Lisp as the macro system.

HipHop was interesting in that it would compile PHP and make it run faster, but it's not similar to this in any way.

sxc is a dialect of Lisp that has the semantics of C. There's not cross compilation from anything to anything; the syntax of sxc is that of C, but you're editing a representation of the parse tree. This is a list, and the meta-programming facilities allow you to generate code using Common Lisp, the most powerful language for generating that type of data structure; the list.

The homoiconicity that this provides to C gives me suspect to say that it is a more powerful language overall than cc + cpp.

Submission + - sxc: generate C with Common Lisp macros (

kruhft writes: sxc is an S-Expression based language transpiler that has the feel of C wrapped in parenthesized expressions that compiles to standard C code. This structure allows for the creation of code generation macros using the full power of the host Common Lisp environment, a language designed for operating on S-Expressions, also known as Lists. It is unknown exactly what power might come about from this combination of low level processing with high level code generation. Can you think of any possible uses?

Submission + - An Emacs Lisp JIT Compiler Released (

kruhft writes: An Emacs Lisp JIT compiler has been released showing a 25% speedup improvement with the benchmarked raytracer. Using libjit, it 'compiles down the spine' of the bytecode vectors, moving the overhead of the interpreter loop into the hardware execution unit. Work in progress, but a good start on speeding up emacs overall. Thoughts?

Comment Re:Not me (Score 1) 535

It's getting so bad I've switched to Solaris for my main machine, and 11.1 at that which is over 10 years old. Still the same UNIX software, an antique browser that hobbles along (but Gail works in HTML mode)'s solid and fast and works and has all the Solaris niceness of dtrace, ZFS and whatever else is hidden in there under the hood that hasn't changed in years and from a developer that strives to keep the platform stable for developers.

Linux has completely jumped the shark for my day to day usage. Screen blanking and never coming back, processes randomly hanging and crashing the system to not booting at all. It's been an exercise in complete frustration lately, unlike the 20 years of regular frustration knowing that what i was using *was* better than the alternatives.

So, yeah, screw it. I'm going corporate.

Slashdot Top Deals

"There is nothing new under the sun, but there are lots of old things we don't know yet." -Ambrose Bierce