HNHacker News
TopNewBestAskShowJobs

BruceM

3,597 karma · joined December 11, 2011

Working on Open Dylan (http://opendylan.org/) among other things.
submissionscomments
BruceM··on Bringing Clang to Windows
Hello! Is there any chance that this would work with other language front-ends that generate LLVM IR?
BruceM··on Apple Invites Developers to Test Its New “App Analytics” Service
As a developer, I'm not sure how I feel about that.

As a consumer, great!

BruceM··on Thinking About Performance
Since y'all killed his blog again:

http://webcache.googleusercontent.com/search?q=cache:wjD83Ex...

BruceM··on OpenBSD's safe, new file(1) implementation
Or object capability systems in general ... like the material at http://erights.org/ and the security kernel work from long long ago: http://mumble.net/~jar/pubs/secureos/ and http://mumble.net/~jar/pubs/secureos/secureos.html
BruceM··on Atom Shell is now Electron
> The thing that turned me away from Atom and its' development is CoffeeScript.

...

> There's still a JS/V8/Chrome for a dependency. On an application where we're rendering huge walls of text - we forgo native redraw. Crucial to response time. > What makes Atom a viable choice when there already is free, open source, native, cross-platform editors with great plugin ecosystems?

I guess maybe CoffeeScript isn't what turned you away?

BruceM··on LowRISC tagged memory preview release
Chisel is https://chisel.eecs.berkeley.edu/
BruceM··on LLILC – LLVM-Based Compiler for .NET CoreCLR
This seems like it would be an interesting alternative to il2cpp from the Unity folks as a path towards compiling C# code to run on asm.js in the browser.
BruceM··on Best, Brightest – and Saddest?
Someone (anontime) posted something here and then deleted it before I could reply. Hopefully they see this..

It sounds like you might find https://www.google.com/webhp?q=suicidal%20exhaustion#q=suici... interesting.

Good luck! There are plenty of people out there who feel like you do. Just survive a day at a time at first.

BruceM··on Virtual-dom – A Virtual DOM and diffing algorithm
That's not a patent. That's a patent grant.

crncosta indicated that there was an actual patent: "React is patented"

I'm curious to know what patents he is specifically referring to.

BruceM··on Virtual-dom – A Virtual DOM and diffing algorithm
Which React patents exactly?
BruceM··on HippyVM goes to Y Combinator and fails
Indeed, I did.
BruceM··on HippyVM goes to Y Combinator and fails
Agreed. And within that space, given 2 hours, I can probably come up with a list of 30-40 projects which could be done for budgets between $5k and $100k that would have meaningful impact on multiple organizations.
BruceM··on HippyVM goes to Y Combinator and fails
For much of the last 5 years, I've been one of a very small group of people maintaining, developing and improving Open Dylan (http://opendylan.org/) (a Lisp-like language without Lisp-like syntax).

I've managed to fund some of the work by doing other contract work. It has also given me a lot of experience working with pretty much anything I want in the compiler, debugger, linker, run-time libraries, performance tools, C bindings generators, networking code, garbage collection, type systems and so much more. Some of this has resulted in further contract work, some has resulted in contributed fixes or improvements to other libraries.

(I'm now looking to potentially fund a student for some work this coming summer.)

Now, I'm taking a lot of what I've learned from that and starting up a small business (not looking for VC) to produce a new kind of developer tool. We plan to be open source and have some customizations and packaged products that businesses will be interested in and suspect we can fund ourselves that way. It'll be a long hard slog to get there, but we're pretty excited about what we're doing.

In general, I think there are a lot of things that could really use improvements. Our shells haven't changed much in the last 20 years. (I wrote a post about this last October: http://waywardmonkeys.org/2014/10/10/rich-command-shells/.) Almost everywhere you look, there are things that could be better. Most of them are a hard sell as a business. Some sort of increased infrastructure funding would be great.

Along those lines, there are programs that provide funding for some of those sorts of things. Stripe had an open source residency program for a short while. Mozilla funds some projects. The Knight Foundation funds a number of things a couple of times a year. Even Comcast has a funding program (http://techfund.comcast.com/). I'd love it if organizations over a certain size allocated some funding for some work that might benefit them, but would also have a wider benefit. If someone has 50 or 100 programmers on staff, they can probably afford to sponsor someone for 3 months or a year at a time. And who knows what might come of some of it...

BruceM··on MatLisp: A library for scientific computation in Common Lisp
CLOS-style OO and infix syntax leads pretty naturally to Dylan (http://opendylan.org/) ... I'd love to see numeric stuff in Dylan, but no time for it myself. :(
BruceM··on In the age of free AAA game engines, are we still relevant?
There's https://github.com/SonyWWS/ATF for building an editor...
BruceM··on Ask HN: Got hired for a position that doesn't exist. How do I leave?
> I would practice but at the end of the day I'm so burnt out from boredom and repetitive work that I can barely stay awake.

Easy: get up early and practice. You don't have to wait until after work to practice.

I spent some time in the mid-1990s building a product from 5-7am, and then going and doing an office job to pay bills for the day. It works.

BruceM··on A Note to My Readers
And yet ... http://www.buzzfeed.com/news

They also produce actually good quality news from solid reporters.

BruceM··on Reader Macros in Common Lisp
(Speaking as an Open Dylan hacker...)

I've occasionally wondered if we should take the old emulator sources and re-package them as a separate repository. It isn't clear that anyone knows how to make them run any longer or whether or not they'd run on anything other than LispWorks or if this would be of anything other than a historical curiosity.

BruceM··on Experimental C++11 multi-platform 3D engine
That's me!
BruceM··on Experimental C++11 multi-platform 3D engine
This is by the same person that was behind "The Nebula Device" and "Nebula 2" and "Nebula 3" at Radon Labs.

Oryol is a great new take on some of the core concepts of Nebula 3, but in a C++11 environment and being able to rely upon more modern compilers, libraries, etc.

BruceM··on Atom Shell: Cross-platform desktop application shell
Make sure you also check out the starter app!

https://github.com/atom/atom-shell-starter

BruceM··on SpaceX is hiring a Farmer in Texas
Good enough time to mention this again then: http://www.washingtonpost.com/politics/at-cia-starbucks-even...
BruceM··on Sweden has proof foreign submarine entered its waters
I (and others apparently) down-voted this for the tone. Your last paragraph wasn't necessary and detracted from your overall point.
BruceM··on SF Engineer Dan Ha Has Been Missing Since 10/31
Depression needs no reason.
BruceM··on Integrating with LLVM
Interesting question. I would say that the answer is "no, the rubinius JIT was never considered" ... One thing is that we don't just JIT compile code. In fact, we only do on Windows when under the debugger / REPL. We do AOT compilation, for better or worse. LLVM is a pretty nice match and gives us a lot of good things, including DWARF debug info.
BruceM··on Integrating with LLVM
MPS is designed so that allocation can be very fast in the common case as long as the interface to the collector in the compiler and run-time is done well.

They are willing to talk to people about the licensing. They're nice folks, although often pretty busy. CLASP supports using both MPS and Boehm as well.

As for the Open Dylan exception ... yes. But the other thing to understand there is that both MPS and what is now Open Dylan were developed at Harlequin in the 1990s and MPS's original "client" was Open Dylan.

BruceM··on Integrating with LLVM
This is something that can be readily solved. Dylan has no issues in this area when using the MPS (http://www.ravenbrook.com/project/mps/) GC.

There are a few things that are worth taking note of though ...

One is that things that use addresses in memory need to be able to deal with those addresses changing. An example of this are common implementations of hash tables (due to hashing using the address). MPS provides location dependencies (http://www.ravenbrook.com/project/mps/master/manual/html/top...) to deal with this.

Another is that when you call into C / foreign code, you want to be able to pin your object down so that it won't move. This is commonly an issue with byte vectors / strings. For that, the language / libraries / compiler should support pinning and unpinning objects. The way that Dylan does this in the native code generator is that it makes sure there's a stack reference to the object which is enough for the GC to not move it. This is only good for short-lived things though as you don't want to disrupt GC for too long.

Another thing to take note of is that you sometimes want to store an object reference in native code and out of reach of the GC. A common situation where this happens is storing user data or callbacks. In this situation, we can register a Dylan object to have a handle which we can pass to native code. With this, we register the object, then export it to get a handle, we pass the handle to native code. When we get a handle from native code, we import it to get back to the original Dylan object (which may have moved). We can unregister it when we're all done.

    register-c-dylan-object(handle);
    %uv-handle-data(handle.raw-handle) := export-c-dylan-object(handle);

    ...

    let handle = import-c-dylan-object(%uv-handle-data(raw-handle));
    apply(handle.callback, args)
These are all solved problems. They can be a bit tedious and sometimes error prone, but nothing that can't be solved. It might be adventurous to migrate an existing community that wasn't prepared though.
BruceM··on Integrating with LLVM
Well, if you're aware of that blog post from February, then you should also be aware of all of the work that he and his team have done since then. They're working on solving the problems with LLVM and more advanced GC.

As for Dylan, Dylan can use Boehm (and does for now in the C and LLVM backends), which is conservative.

However, Dylan can also use MPS (http://ravenbrook.com/project/mps) which is a much more advanced GC that does copying/compacting and all that. Dylan uses MPS with the compiler backend that generates native code.

The plan is that once the LLVM backend is up and running using Boehm, efforts will be made to get it working with MPS.

Julia uses a home-grown GC, but I'm not familiar with it or its characteristics at all.

BruceM··on Integrating with LLVM
Well, I'd mainly written it for people who were (already) asking me about how we differed from other integrations or why we did what we did ...

LDC (D with LLVM) is written in C++, so they invoke LLVM APIs, but I don't know what they generate (bitcode or machine code).

Julia is written in C++, they invoke LLVM APIs, they call the JIT.

CLASP is written in C++ and Common Lisp, they invoke LLVM APIs, but I'm not sure if they only JIT or if he stores anything to disk yet.

And so on ...

BruceM··on KDE makes Qt
Regarding Firefox and Qt vs Gtk ... this is going back a long long time (to the Seamonkey days and prior to some really huge changes), but Gtk people were involved with Mozilla early on and as Mozilla contributors. Perhaps pavlov will step in and say something, but people like him, Chris Blizzard and others really stepped up early on. On the Qt side, there were some initial hacks to get the old codebase working with Qt from some Trolltech folks, but I remember that being something they sort of tossed over the wall ... and that was before the original Mozilla codebase was scrapped and the change to XUL happened.

Did KHTML exist back then and was it good enough that it deterred more KDE / Qt folks from working on Mozilla? I don't recall as it has been ages. Of course, KHTML went on to become the foundation of WebKit ... so much history!

← PreviousPage 2 of 7Next →