-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hard to find any documentation of the language itself #3
Comments
Hi Dethe, It's true; there isn't any documentation about the language. I'm writing my PhD thesis on Nile right now, which should eventually become public documentation for the language. Will update here. |
Hi Dan, That's great news. I've been following this work for years with great interest, it is great to see it all coming together into a real system. Best wishes with your thesis, I'm looking forward to reading it. |
Thanks! On Monday, January 27, 2014, Dethe Elza [email protected] wrote:
|
Would've been great to read it! |
Hi Dan, How's the thesis going? People are waiting! No pressure :) |
Hi all, I'm sorry about the delay. Can't really go into details publicly, but the past year didn't go so well. Hoping to restart this summer. |
Sorry to hear that Dan. No pressure then, was just checking in. Very cool work. |
No rush. When you get to it. Best wishes. |
If someone is interested, I found one of Dan's presentations: https://youtu.be/HAT4iewOHDs?t=17m5s |
Thanks procedural! |
Hi all! |
Thank you for sharing! |
@damelang Is there any news? I am starting to learn about image processing and this seems more suitable than c++ or Python. Am I wrong? |
This is such a fundamental piece of computing infrastructure it really fills my heart with sadness that its seems to be lost. I don't know what caused this but if funding was a problem, I would like to think that current crypto system or other crowd funding mechanisms could help with that. Be it https://gitcoin.co/ , https://www.osn.global/ or kickstarter to have a (2Dish) graphics stack which decreases complexity would be a service to humanity, nothing less. And I am certain that a critical mass of people does care about that. |
Sorry all, no good news. To answer Ricardo's question: The STEPS project ended in 2012. The subsequent efforts (CDG, and later, HARC) did not last. Funding projects like these is very difficult. We have Alan Kay's extraordinary efforts to thank for the time we did have. The original organization, Viewpoints Research Institute, began slowly winding down after STEPS (around 2013), and officially closed doors at the beginning of this year (2018). My last year with Viewpoints was 2016. The personal troubles I alluded to earlier in this thread (in 2015) turned out to be one of a string of very difficult circumstances that I'm still dealing with today. I don't have any substantive documentation to share, and I did not get a PhD. Toward the end of this summer, I'll be considering new ways forward. Who knows what the future may bring. Regarding crowdfunding: I've watched the struggles that two friends of mine (Bret Victor and Nicky Case) have had going this route. I really appreciate the sentiment, Andreas, but it's just hard to imagine that that would work out well for this. Their work is more "marketable" and of wider interest than this work. But again, I'll be considering all options later this summer. |
Thank you for the update. |
Unfortunately, I'd need quite a bit of funding. I live in San Diego, I have two kids, and my wife just went back to school. We couldn't get by on $3.5K. Would have to be over $4K. |
I guess we're overdue for the yearly cheer. This project has kind of enchanted me, so I've been taking some time to try to get it working. I've made some small success here and there. I think I'm starting to grok what all of the parts (in particular: nile, gezira and maru) do. Some interactions are a bit fuzzy, such as whether the nile runtime(s) are generated like the other aspects of the nile toolchain. (It looks to me like the nile runtimes are hand-written.) As far as I can tell, gezira is the actual codebase that can render things. That has the definition of the graphics processing tools written in the Nile language. It seems that gezira's code (at least the C version) is generated by the nile compiler and the Nile itself is (potentially) bootstrapped with Maru, which is itself somewhat difficult to get running. (Ian Piumarta had a small amount of documentation on his website, which now won't load.) The big thing I had to do was to install the Hans Boehm garbage collector gc ( I'm able to actually compile things (although admittedly, when I ran in the included test, I got a C file and C header out with no real content, even after fixing a couple of errors relating to the definition of Matrix and Point types). This may be clear as mud for some of the folks on this thread who are interested in this project (or it may be entirely obvious, in which case I apologize), but if I keep looking at this, I may start updating the wiki on this project. @damelang I hope things are going well for you and your family. I certainly understand your situation. This project is pretty cool, so I'd hate to see it go the way of the Apple HyperCard or something. |
Hi all, I'm pleasantly surprised that anyone is still following this project, even with no significant (public) progress for almost 7 years! So the least I can do is give an update and answer a few questions. I am currently working for a startup in stealth mode and my job does involve programming language design. I can't share exactly what I'm doing, but hopefully next year I can. People who find Nile interesting will probably find this effort at least as interesting, for mostly the same reasons. In fact, if anyone would like to work with me on programming language implementation, send your resume to the email address I use here. (I wish Github had a way for me to email this message to everyone who has starred this repository.) Now for some explanation (@elgertam): The Nile and Gezira repositories on Github are probably out of sync with each other, in the sense that the latest code in Gezira may not be for the particular version of the language that the compiler in the latest Nile repo supports. And the generated code in Gezira might not be compatible with the version of the Nile runtime in the Nile repo. I'm sorry -- I wasn't using Github to publish code for others to use, or to build a community around the code, so no care was taken to avoid these problems. It was my intention to eventually go back and fix all this (and push a lot of work that was done in private), but life happened. Now to some specific questions: "It looks to me like the nile runtimes are hand-written." ... "gezira is the actual codebase that can render things." ... "It seems that gezira's code (at least the C version) is generated by the nile compiler " All correct. "I need to do some surgery on some of the objc code..." Yes, that code abused Apple APIs pretty severely and probably only worked on my particular machine with the particular OS version I was running. :) The goal was to bypass the Cocoa event loop and any graphics processing by the system and run "on the bare metal" as much as possible. "I'm able to actually compile things..." That's quite a feat. Theoretically, with some help from my end, one could compile the Gezira source code down to C (with the right version of the Nile compiler), compile the Nile C runtime, and link them both together with a demo program (like the stars or letters one). At some point, maybe later this year, I'd be willing to do a video call or something to help anyone who wanted to get up to speed on all this, and document it for others. I can't commit much time to doing it myself, unfortunately. Hopefully more news to share next year. Dan |
@damelang Hearing from you is exciting. I can only speak for myself, but I would be very interested in a video call later this year or so. Your comments were very helpful; already this evening, I was able to compile the For what it's worth, I really would love to see the more recent I'm probably going to focus on getting Gezira itself working over the next few evenings and hopefully getting some snowflakes to show up. Thank you again for the comment and for publishing even what we can see here. |
@damelang Thanks for creating Nile, it served as an inspiration for in my own graphics language project. I'm glad to hear about your new job, and I will be very interested to read the details once they are unveiled. Good luck! |
I, too, would be very interested in the video call and any help I can offer! |
Thanks Dan for keeping us posted! |
To everyone who is trying to understand this all, compile things, getting things to work together.. could you possibly document all in the README? .. and @damelang , will you also update the README here with a link to you new project, once it is public? |
@elgertam Could you describe how did you compile the text-layout.nl? In my case I just have a file with some includes and that is it. |
@alexzlov This puzzled me for a while as well, as I had the same results. I'm assuming you have Maru working (which it sounds like you do, based on the results you are getting), and have built some version of cd nile/examples
../compilers/maru/nile-to-c-compiler.sh "text_layout" "text-layout.nl" That will build Please also be aware that you won't be able to run this generated C code with the Nile C runtime also in the repository. The Nile C runtime and the compiler output seem to be out of sync. However, there is a "correct" copy of Also, if you look at the Nilecode in the Gezira repo, it will not compile using Nile compiler in this repo; however, the generated code that is checked into the Gezira repo should work with the Nile C runtime included here. If you really wanted a hard task, you could try to analyze the differences in the output between the Gezira C code to try to infer the implementation of the various language features. (Gezira, for instance, uses some syntax that isn't quite supported, although it should be fairly simple to reason about.) |
@elgertam Thanks a lot! |
To all interested: check out this (recent?) presentation. Jump to about the 25 minute mark to see Amelang's portion: |
I have looking over the STEPS final report, but it would be nice if there were primers on each of the components. I can sieve FONC and see what I can find. |
I would like to experiment with Nile, but cannot find any documentation of the Nile language. Is there anything aside from reverse-engineering the spec from the source or from the Gezira code?
The text was updated successfully, but these errors were encountered: