Re: [9fans] Why does Acme only show text?
jason.cat...@gmail.com (Jason Catena) writes: I've been wondering for years now why Acme (and Wily, which I used first) only display text files. It seems to me that the content of an Acme window could be anything: a picture, a postscript or PDF file, a star chart, a web page. Keeping with the spirit of small parts brought together, Acme could outsource the displaying of the content to another program, place its output in the Acme window, and operate on it by sending commands from the tag to the rendering program. Hi, I don't know anything about anything, but it seems to me that it's more productive to look at the question the other way around: why not modify Rio to tile windows like Acme does? Acme is a text editor, so it's no surprise that it handles text only. If you want tiled windows you can display arbitrary graphics in... well, there's already an API for graphics (and input). If you wrote up a general API for sending commands to windows, then you could write a window system that tiled windows and provided tags to execute commands from. I think that would be a very good thing, FWIW. Not that there aren't other issues to consider to make the system as usable as Acme, for example how the “applets” in this system are going to interoperate with each other.
Re: [9fans] C compiler question
erik quanstrom wrote: assuming that pointers to incomplete types are themselves incomplete, and you haven't cited chapter and verse showing they are, i read that paragraph as saying that what plan 9 libraries do would be illegal, and therefore if we follow the standard, we'd need to remove Incomplete*s and replace them with void*s. if i'm wrong, can you explain how? The void type comprises an empty set of values; it is an incomplete type that cannot be completed. if a pointer to an incomplete type is incomplete, then void* is incomplete, too. as far as i can tell, the standard would allow an implementation where pointers vary in size and the sizes of pointers can't be determined at compile-time, but that would be insane.
[9fans] administrivia
Hi folks. Just a heads up to let you know that I've updatedthe 9fans listinfo page with a mini-faq, thanks to Dave Eckhardt. http://mail.9fans.net/listinfo/9fans
Re: [9fans] C compiler question
On Tue, 14 Jul 2009 12:45:56 -0700 Russ Cox r...@swtch.com wrote: enough. there was a bug, plain and simple. struct T { struct S s; }; is not valid. never was, never will be. fix the compiler already. Newbie question: Does this statement apply to any struct S (meaning you can never have a struct as member of another struct), or does it only apply in cases where the structure of S is not known at that point? -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
Re: [9fans] C compiler question
Newbie question: Does this statement apply to any struct S (meaning you can never have a struct as member of another struct), or does it only apply in cases where the structure of S is not known at that point? the latter. - erik
Re: [9fans] Why does Acme only show text?
On Wed, 15 Jul 2009 09:25:51 GMT Paul Donnelly paul-donne...@sbcglobal.net wrote: jason.cat...@gmail.com (Jason Catena) writes: I've been wondering for years now why Acme (and Wily, which I used first) only display text files. It seems to me that the content of an Acme window could be anything: a picture, a postscript or PDF file, a star chart, a web page. Keeping with the spirit of small parts brought together, Acme could outsource the displaying of the content to another program, place its output in the Acme window, and operate on it by sending commands from the tag to the rendering program. Hi, I don't know anything about anything, but it seems to me that it's more productive to look at the question the other way around: why not modify Rio to tile windows like Acme does? Acme is a text editor, so it's no surprise that it handles text only. You may be thinking too monolithically. The draw device multiplexes itself so it shouldn't take much coding for acme to provide draw in addition to the other files it provides in /mnt/wsys. Mouse is just as important as draw and will need a little more code. Not only would acme need to multiplex it but it would need to emulate rio's behaviour. To quote Rio's man page: Opening it turns off scrolling, editing, and rio-supplied menus in the associated window. That isn't 100% true, scrolling isn't actually disabled but is not naturally accessible and looks very messy when you force it. What is true is that rio ceases to interpret keys specially other than backspace and return (curiously), and mouse events on the window are blindly sent to the application. It still doesn't sound like a lot of code, but may take some careful thought. Maybe that's a summary of Plan 9 methodology. :) I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. Rio windows could seriously use a search function and one or two other text-editor facilities wouldn't go amiss. It doesn't seem natural to me that Acme does not allow graphical programs in it's windows. -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
Re: [9fans] Why does Acme only show text?
Oberon takes advantage of a structured text representation where both the interpretation and graphic representation of particular elements is provided by Oberon modules. One demonstration had a little animated cartoon character that could be cut and pasted into another frame, where it continued to move. Acme exploits one chunk of identical text being the same as any other, given particular meaning by the button used to select it and its frame or tag context (the context including a program sitting behind the frame). It's probably relatively easy to give over Acme frames to a program that draws, but is there a good way of providing something more than that, giving more of the `structural support' that Acme provides to text-oriented applications? Is it time to consider a possible role for structured text along Oberon lines? One of the reasons for porting Acme to Inferno originally was to try to explore those things in a slightly more flexible environment, but it didn't happen, partly for lack of time.
Re: [9fans] Why does Acme only show text?
I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. I always thought of using Acme as 'The' UI for Plan 9, much in the Oberon way. I'm not a techie, but I use Plan 9 since 2000, or so, as my main OS. I would *way* love having graphics in Acme, asi it IS a great UI, IMHO. Peter A. Cejchan, aka ++pac. winmail.dat
Re: [9fans] building plan9port: arch spec, arm vs armv5tel
What about using a public hg repo and letting others pick what changes they are interested in? uriel On Wed, Jul 15, 2009 at 3:03 AM, J.R. Maurojrm8...@gmail.com wrote: On Tue, Jul 14, 2009 at 8:06 PM, Russ Coxr...@swtch.com wrote: Should we put patches here, too? Yes. I'd like plan9port-dev to have all the discussion of plan9port development and problems. There's a different story for patches that is still not quite complete, but it's a start. Look for upload.py in http://groups.google.com/group/plan9port-dev/t/a1b7f0123e261012 Russ Ok, I sent the patch to the mailing list -- I have a lot of local modifications that shouldn't be published, I don't know if upload.py would try to send them.
Re: [9fans] Why does Acme only show text?
On Wed, 15 Jul 2009 17:32:09 +0200 c...@gli.cas.cz wrote: I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. I always thought of using Acme as 'The' UI for Plan 9, much in the Oberon way. I'm not a techie, but I use Plan 9 since 2000, or so, as my main OS. I would *way* love having graphics in Acme, asi it IS a great UI, IMHO. As-is it's actually not a great UI for me, but perhaps with some small changes it could be. I'm still thinking those changes over. -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
[9fans] naive acid debugging
Hello While understanding how refs work inside nupas, i decided to try to implement the same function nupas has to find mailbox references in acid langauge, so i did: defn findmboxrefs(mb,fids) { local f, refs; f=fids; while f!=0 do { print(f=, f\X,\n); if f-mb==mb then refs++; print(f-mb=, f-mb\X, =? mb=,mb\X,\n); f=f-next; } print(refs ==, refs,\n); } using a Broken nupas (broked by an assert call), i got this: acid: findmboxrefs(*checkmboxrefs:mb,fids); f=0x0003a090 f-mb=0x=? mb=0x0004a468 f=0x0004bf68 f-mb=0x8d1c2444=? mb=0x0004a468 f=0x89e4 stdin:75: (error) indir: can't read address 0x89e4: bad arg in system call is that related to something wrongly done in the acid function? that means that there is an f which is pointing to an incorrect place? or means that as the process is broken, acid cannot read some parts of it? i forgot another possible issue, the broken process is owned by another user, i just chmod'ed /proc/pid/*. . . . thanks gabi
Re: [9fans] naive acid debugging
While understanding how refs work inside nupas, i decided to try to implement the same function nupas has to find mailbox references in acid langauge, so i did: defn findmboxrefs(mb,fids) { local f, refs; f=fids; while f!=0 do { print(f=, f\X,\n); if f-mb==mb then refs++; print(f-mb=, f-mb\X, =? mb=,mb\X,\n); f=f-next; } print(refs ==, refs,\n); } first, i want to complement you on a fine use of acid. very nice. using a Broken nupas (broked by an assert call), i got this: acid: findmboxrefs(*checkmboxrefs:mb,fids); f=0x0003a090 f-mb=0x =? mb=0x0004a468 f=0x0004bf68 f-mb=0x8d1c2444 =? mb=0x0004a468 f=0x89e4 stdin:75: (error) indir: can't read address 0x89e4: bad arg in system call your assmption that each fid has a mailbox is wrong. see rattach() and sanefid(). they encode the rules. - erik
Re: [9fans] Why does Acme only show text?
On Wed, Jul 15, 2009 at 8:44 AM, Ethan Grammatikidiseeke...@fastmail.fm wrote: On Wed, 15 Jul 2009 17:32:09 +0200 c...@gli.cas.cz wrote: I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. I always thought of using Acme as 'The' UI for Plan 9, much in the Oberon way. I'm not a techie, but I use Plan 9 since 2000, or so, as my main OS. I would *way* love having graphics in Acme, asi it IS a great UI, IMHO. As-is it's actually not a great UI for me, but perhaps with some small changes it could be. I'm still thinking those changes over. Acme is the worst editor/environment, except for all the others. Sometimes it seems cluttered and confusing, but then I realize that's because it has more files open than I would even try on emacs, merely because switching around between emacs buffers is slower and less convenient. Speaking of which, I recently discovered that emacs (on X, at least) is now capable of running a terminal which can in turn run vi or console-mode emacs. OT but madness. Now I want to run sam in acme. Eric and myself, and I think maybe Ron, are using acme and acme-sac to interact with a BlueGene/P system. I write code in acme, then use a guide file to run the various scripts I need to connect to the frontend node and launch jobs, then use win to telnet into the individual nodes and run tests. The real advantage comes from the Local command and the way windows are managed/output is handled. I'd really like to see acme get support for graphical programs, although right now I'm content enough as things stand. John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba
Re: [9fans] Why does Acme only show text?
Eric and myself, and I think maybe Ron, are using acme and acme-sac to interact with a BlueGene/P system. Not as glamorous, but an alternative senario - I use sam and rio to write embedded and windows code. I edit the code with sam, but I do my best not to ever access the seperate rio snarf buffer. I keep the commands or scripts I need to test the code in rio's snarf, when I am ready to try things I just click the rio window and Button 2 to execute send. -Steve
Re: [9fans] Why does Acme only show text?
This is funny: O/live supports both images and text. *but* It's been months ago that I do not use it any longer to display images but only for text. That way I may have more screen surface for text. Would the same happen to acme? Or perhaps it's me. On Wed, Jul 15, 2009 at 7:00 PM, John Florenslawmas...@gmail.com wrote: On Wed, Jul 15, 2009 at 8:44 AM, Ethan Grammatikidiseeke...@fastmail.fm wrote: On Wed, 15 Jul 2009 17:32:09 +0200 c...@gli.cas.cz wrote: I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. I always thought of using Acme as 'The' UI for Plan 9, much in the Oberon way. I'm not a techie, but I use Plan 9 since 2000, or so, as my main OS. I would *way* love having graphics in Acme, asi it IS a great UI, IMHO. As-is it's actually not a great UI for me, but perhaps with some small changes it could be. I'm still thinking those changes over. Acme is the worst editor/environment, except for all the others. Sometimes it seems cluttered and confusing, but then I realize that's because it has more files open than I would even try on emacs, merely because switching around between emacs buffers is slower and less convenient. Speaking of which, I recently discovered that emacs (on X, at least) is now capable of running a terminal which can in turn run vi or console-mode emacs. OT but madness. Now I want to run sam in acme. Eric and myself, and I think maybe Ron, are using acme and acme-sac to interact with a BlueGene/P system. I write code in acme, then use a guide file to run the various scripts I need to connect to the frontend node and launch jobs, then use win to telnet into the individual nodes and run tests. The real advantage comes from the Local command and the way windows are managed/output is handled. I'd really like to see acme get support for graphical programs, although right now I'm content enough as things stand. John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba
Re: [9fans] naive acid debugging
print(f-mb=, f-mb\X, =? mb=,mb\X,\n); f=f-next; Always use . (never -) in acid. If f is a pointer, then the acid expression f.mb is like the C expression (*f).mb aka f-mb. The acid expression f-mb is like the C expression (**f).mb. By using - here you are indirecting one level too far. - is one of those acid features that seems to exist only to cause confusion. Russ
Re: [9fans] naive acid debugging
hello thank you very much Erik, I'll look at that code today night, i hope to see the light soon ☺ gabi While understanding how refs work inside nupas, i decided to try to implement the same function nupas has to find mailbox references in acid langauge, so i did: defn findmboxrefs(mb,fids) { local f, refs; f=fids; while f!=0 do { print(f=, f\X,\n); if f-mb==mb then refs++; print(f-mb=, f-mb\X, =? mb=,mb\X,\n); f=f-next; } print(refs ==, refs,\n); } first, i want to complement you on a fine use of acid. very nice. using a Broken nupas (broked by an assert call), i got this: acid: findmboxrefs(*checkmboxrefs:mb,fids); f=0x0003a090 f-mb=0x =? mb=0x0004a468 f=0x0004bf68 f-mb=0x8d1c2444 =? mb=0x0004a468 f=0x89e4 stdin:75: (error) indir: can't read address 0x89e4: bad arg in system call your assmption that each fid has a mailbox is wrong. see rattach() and sanefid(). they encode the rules. - erik
Re: [9fans] naive acid debugging
Hello Thanks Russ, seems that even though i tried to use your iwp9 2007 talk as a reference, i missed the point, i should read more carefully. gabi print(f-mb=, f-mb\X, =? mb=,mb\X,\n); f=f-next; Always use . (never -) in acid. If f is a pointer, then the acid expression f.mb is like the C expression (*f).mb aka f-mb. The acid expression f-mb is like the C expression (**f).mb. By using - here you are indirecting one level too far. - is one of those acid features that seems to exist only to cause confusion. Russ
Re: [9fans] Why does Acme only show text?
On Wed, Jul 15, 2009 at 11:26 AM, Steve Simon st...@quintile.net wrote: Eric and myself, and I think maybe Ron, are using acme and acme-sac to interact with a BlueGene/P system. Not as glamorous, but an alternative senario - I use sam and rio to write embedded and windows code. I edit the code with sam, but I do my best not to ever access the seperate rio snarf buffer. I keep the commands or scripts I need to test the code in rio's snarf, when I am ready to try things I just click the rio window and Button 2 to execute send. -Steve I use plan 9 port acme fairly regularly, when I get tired of weird Emacsisms that get in my way rather than helping me. Just yesterday I was writing Common Lisp code, with an SBCL REPL in the bottom window and an editor of the lisp code in the upper window, for testing out an SNMP agent I wrote for another platform (Common Lisp for the test harness seems like it's been a great choice so far... I just love defmacro) It's really nice to quickly cut and paste an expression from the editor to the REPL to test ideas, or vice versa... fight with S-expressions at the REPL, then cobble the program together by pasting functional parts together. I'll probably start writing my Haskell that way, but Haskell has this damned layout style that I seem to default to that's like Python and gets most annoying when spacing isn't just so. I guess I'll switch to the { ;} style that it also supports. Emacs is sadly far better with the layout style than acme seems like it could be, as there's some choices to the indentation that mean different things that one can cycle through, and Emacs' mode gets this right. Again, the layout mode seems to be a bug in Haskell not a feature, but that's not a popular belief in that community. Dave
Re: [9fans] Why does Acme only show text?
On Wed, Jul 15, 2009 at 11:59 AM, David Leimbachleim...@gmail.com wrote: On Wed, Jul 15, 2009 at 11:26 AM, Steve Simon st...@quintile.net wrote: Eric and myself, and I think maybe Ron, are using acme and acme-sac to interact with a BlueGene/P system. Not as glamorous, but an alternative senario - I use sam and rio to write embedded and windows code. I edit the code with sam, but I do my best not to ever access the seperate rio snarf buffer. I keep the commands or scripts I need to test the code in rio's snarf, when I am ready to try things I just click the rio window and Button 2 to execute send. -Steve I use plan 9 port acme fairly regularly, when I get tired of weird Emacsisms that get in my way rather than helping me. Emacs is great for writing Lisp. Now, if only I could find the correct .emacs invocation to make the tab key insert a tab character in C mode, rather than a bunch of spaces the way His Holy Lunacy RMS desires. If I wanted spaces instead of tabs, I'd type them! John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba
[9fans] Intel GMA950 video
Anybody running a terminal with a GMA950 chipset? I need to verify it works before I plunk down money on some new terminal hardware. VESA support is fine, just as long as rio us usable on it. The Wiki shows i950 VESA support. I'm not sure of i960 == GMA950. The way vendors are these days you can't even tell if GMA950 == GMA950 half the time :-P --lyndon
Re: [9fans] Why does Acme only show text?
On Wed, Jul 15, 2009 at 12:07 PM, John Floren slawmas...@gmail.com wrote: On Wed, Jul 15, 2009 at 11:59 AM, David Leimbachleim...@gmail.com wrote: On Wed, Jul 15, 2009 at 11:26 AM, Steve Simon st...@quintile.net wrote: Eric and myself, and I think maybe Ron, are using acme and acme-sac to interact with a BlueGene/P system. Not as glamorous, but an alternative senario - I use sam and rio to write embedded and windows code. I edit the code with sam, but I do my best not to ever access the seperate rio snarf buffer. I keep the commands or scripts I need to test the code in rio's snarf, when I am ready to try things I just click the rio window and Button 2 to execute send. -Steve I use plan 9 port acme fairly regularly, when I get tired of weird Emacsisms that get in my way rather than helping me. Emacs is great for writing Lisp. Now, if only I could find the correct .emacs invocation to make the tab key insert a tab character in C mode, rather than a bunch of spaces the way His Holy Lunacy RMS desires. If I wanted spaces instead of tabs, I'd type them! And yet since every damned editor interprets a tab differently, I'd almost with the tab key away completely :-) I guess we just make everyone use Acme and move on :-). Dave John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba
Re: [9fans] Why does Acme only show text?
It's a lot easier to see (and not have in the first place) incorrect scope and continuation with whitespace than with braces or parentheses. do you have a reference for this claim? - erik
Re: [9fans] Why does Acme only show text?
Again, the layout mode seems to be a bug in Haskell not a feature, but that's not a popular belief in that community. It's only as complex as the various levels of scope you end up needing in your program. Meaningful whitespace enforces a clean, readable, delimiter-free style, making programs look more like each other. It's a lot easier to see (and not have in the first place) incorrect scope and continuation with whitespace than with braces or parentheses. Acme only has two indentation rules (nothing, or same as the existing line), so Emacs' constant re-parsing of the file to determine the correct indentation level is always going to be more correct. This kind of programming support seems akin to me to colorful syntax highlighting: great if you need it, distracting once you really get good with a language. In the case of indenting, I might not actually code the next line right away, but auto-indent to just the right place for it means I have to go out of my way more often to get the cursor to where I actually want it. Dave Jason Catena
Re: [9fans] Why does Acme only show text?
It's a lot easier to see (and not have in the first place) incorrect scope and continuation with whitespace than with braces or parentheses. i read this as it's a lot easier to see incorrect variations in the tempo of a mucal piece with white noise than with a metronome do you have a reference for this claim? and here i imagined the crazy-haired mad scientist saying your whitespace is not so white now, is it?! muahahahaha then i took my meds.
Re: [9fans] Why does Acme only show text?
2009/7/15 erik quanstrom quans...@coraid.com: It's a lot easier to see (and not have in the first place) incorrect scope and continuation with whitespace than with braces or parentheses. do you have a reference for this claim? Without turning this into a holy war, I really always see these issues as a matter of personal preference. This is why editors are so bloated and languages have weird conventions. On that note, my personal experience has found it to be a lot easier to find and correct scope issues in Python than it has to find missing braces or semicolons in other languages, sometimes even with matching enabled. This usually is the case for awful spaghetti-ish code. But I digress. --dho
Re: [9fans] Why does Acme only show text?
Devon's anecdote is along the lines of my position. I'm sure there's a paper somewhere that counts parenthesis versus whitespace errors, but I haven't yet read it. I have programmed Lisp and Haskell (at two extremes), and from this experience at least much prefer whitespace to parentheses. In addition, I rely on design theory (esp. Tufte et al on his web site) that reducing clutter aids comprehension, and delimiters very much seem clutter to me. Jason Catena
Re: [9fans] Why does Acme only show text?
http://9fans.net/archive/2008/05/6 On Wed, Jul 15, 2009 at 10:29 PM, Jason Catenajason.cat...@gmail.com wrote: Devon's anecdote is along the lines of my position. I'm sure there's a paper somewhere that counts parenthesis versus whitespace errors, but I haven't yet read it. I have programmed Lisp and Haskell (at two extremes), and from this experience at least much prefer whitespace to parentheses. In addition, I rely on design theory (esp. Tufte et al on his web site) that reducing clutter aids comprehension, and delimiters very much seem clutter to me. Jason Catena
Re: [9fans] Why does Acme only show text?
On that note, my personal experience has found it to be a lot easier to find and correct scope issues in Python than it has to find missing braces or semicolons in other languages, sometimes even with matching enabled. This usually is the case for awful spaghetti-ish code. I find Python's whitespace rules annoying, but I can live with them. Where the whitespace flow control always screws me is when I'm working on a particular chunk of code using different editors that have different semantics for interpreting HT. You have to remember if the editor of the moment interprets HT as: 1) HT passed through, displays to next col%8 2) HT passed through, displays to next col%user_defined_tabstop setting 3) As for (1) and (2), but HT also expanded to corresponding n*SP to match display interpretation. As soon as you mix 8 and non-8 tabstop rails, any remnants of sanity exit stage left. Because of this I far-too-often find myself running acme-edited code through [un]expand to ensure sane tab behaviour. (Not acme's falut per se -- it's just the editor I most commonly use that does non-8 tabstops by default.) --lyndon
Re: [9fans] Why does Acme only show text?
On Wed, Jul 15, 2009 at 1:42 PM, Noah Evans noah.ev...@gmail.com wrote: http://9fans.net/archive/2008/05/6 Haskell *will* tell you errors that don't make any sense (at least GHC errors) when you don't have things like this done properly do x - foo y - bar the y - bar must be directly under the x on the previous line or it's a syntax error, and the error you get from GHC is the last statement of a do construct must be an expression not dude, you suck at indenting code, and should have used Emacs to keep track of it, because nothing else does the job right. Luckilly Haskell will let you ignore layout and do the following: do { x - foo ; y - bar } However, I don't see enough of this style code to feel comfortable writing anything I'd plan to share with anyone and expect them to feel ok reading it. Dave http://9fans.net/archive/2008/05/6 On Wed, Jul 15, 2009 at 10:29 PM, Jason Catenajason.cat...@gmail.com wrote: Devon's anecdote is along the lines of my position. I'm sure there's a paper somewhere that counts parenthesis versus whitespace errors, but I haven't yet read it. I have programmed Lisp and Haskell (at two extremes), and from this experience at least much prefer whitespace to parentheses. In addition, I rely on design theory (esp. Tufte et al on his web site) that reducing clutter aids comprehension, and delimiters very much seem clutter to me. Jason Catena
Re: [9fans] Why does Acme only show text?
Emacs is great for writing Lisp. Now, if only I could find the correct .emacs invocation to make the tab key insert a tab character in C mode, rather than a bunch of spaces the way His Holy Lunacy RMS desires. If I wanted spaces instead of tabs, I'd type them! OT for the list, but this is trivial in emacs for several years now, and RMS has nothing to do with the special code for C mode (which is called CC-mode, and supports a bevy of languages, and is complicated enough that it can probably boot minix on it's own by now). *Chad
Re: [9fans] Why does Acme only show text?
acme is more than a buffer with text to edit, it also has the filesystem interface that allows programs to be written specifically for it (Mail, Wiki, etc). I never thought that doing graphics in acme was a need, as most of the time I'm just editing text and having some graphical up there would take space that I can really use to list a directory, another source file, or whatever. I also don't think that you'll have to emulate rio's behavior as you can run most of the graphical programs without rio, that's the beauty of rio, it gives almost the same interface as it gets from the kernel. in any case, years ago I gave it a try, but I after a day of hacking I lost my interest, I know some people still want this functionality, so if you are up to the challenge go for it. I have a tgz on mordor which can run draw apps on acme, but it's not functional at all, so if you're interested let me know http://www.tip9ug.jp/who/fgb/acme.png On Wed, Jul 15, 2009 at 9:22 AM, Ethan Grammatikidiseeke...@fastmail.fm wrote: On Wed, 15 Jul 2009 09:25:51 GMT Paul Donnelly paul-donne...@sbcglobal.net wrote: jason.cat...@gmail.com (Jason Catena) writes: I've been wondering for years now why Acme (and Wily, which I used first) only display text files. It seems to me that the content of an Acme window could be anything: a picture, a postscript or PDF file, a star chart, a web page. Keeping with the spirit of small parts brought together, Acme could outsource the displaying of the content to another program, place its output in the Acme window, and operate on it by sending commands from the tag to the rendering program. Hi, I don't know anything about anything, but it seems to me that it's more productive to look at the question the other way around: why not modify Rio to tile windows like Acme does? Acme is a text editor, so it's no surprise that it handles text only. You may be thinking too monolithically. The draw device multiplexes itself so it shouldn't take much coding for acme to provide draw in addition to the other files it provides in /mnt/wsys. Mouse is just as important as draw and will need a little more code. Not only would acme need to multiplex it but it would need to emulate rio's behaviour. To quote Rio's man page: Opening it turns off scrolling, editing, and rio-supplied menus in the associated window. That isn't 100% true, scrolling isn't actually disabled but is not naturally accessible and looks very messy when you force it. What is true is that rio ceases to interpret keys specially other than backspace and return (curiously), and mouse events on the window are blindly sent to the application. It still doesn't sound like a lot of code, but may take some careful thought. Maybe that's a summary of Plan 9 methodology. :) I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. Rio windows could seriously use a search function and one or two other text-editor facilities wouldn't go amiss. It doesn't seem natural to me that Acme does not allow graphical programs in it's windows. -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving. -- Federico G. Benavento
Re: [9fans] administrivia
I don't like copying and pasting URLs. How about some more a hrefs?
Re: [9fans] Fonts
Just tried this from the mercurial snapshot from last night. fontsrv appears to work but complains about fuse not being set up properly. Does this mean acme is not going to work? Should I be asking this on the plan9port mailing list? On Wed, Jul 8, 2009 at 10:25 PM, Russ Cox r...@swtch.com wrote: This conversation reminded me that I have been meaning to clean up a program I wrote a while back and integrate it into plan9port. It generates Plan 9 bitmap fonts on demand using the native window system fonts. Right now it only works on OS X. I would gladly accept X11 support and OS X bug fixes. FONTSRV(4) FONTSRV(4) NAME fontsrv - file system access to host fonts SYNOPSIS fontsrv [ -m mtpt ] [ -s srvname ] fontsrv -p path DESCRIPTION Fontsrv presents the host window system's fonts in the stan- dard Plan 9 format (see font(7)). It serves a virtual direc- tory tree mounted at mtpt (if the -m option is given) and posted at srvname (default font). The -p option changes fontsrv's behavior: rather than serve a file system, fontsrv prints to standard output the con- tents of the named path. If path names a directory in the served file system, fontsrv lists the directory's contents. The fonts are arranged in a two-level tree. The root con- tains directories named for each system font. Each font directory contains subdirectories named for a point size and whether the subfonts are anti-aliased: 10 (bitmap) 10a (anti-aliased greyscale) 12, 12a, and so on. The font directory will synthesize additional sizes on demand: look- ing up 19a will synthesize the 19-point anti-aliased size if possible. Each size directory contains a font file and sub- font files named x.bit, x0100.bit, and so on represent- ing 256-character Unicode ranges. Openfont (see graphics(3)) recognizes font paths beginning with /mnt/font and implements them by invoking fontsrv; it need not be running already. EXAMPLES List the fonts on the system: % fontsrv % 9p ls font or: % fontsrv -p . Run acme(1) using the operating system's Monaco as the fixed-width font: % acme -F /mnt/font/Monaco/13a/font Run sam(1) using the same font: % font=/mnt/font/Monaco/13a/font sam SOURCE /usr/local/plan9/src/cmd/fontsrv SEE ALSO font(7) BUGS Due to OS X restrictions, fontsrv does not fork itself into the background when serving a user-level file system. Fontsrv has no support for X11 fonts; on X11 systems, it will serve an empty top-level directory. On OS X, the anti-aliased bitmaps are not perfect. For example, the lower case r in the subfont Times-Roman/14a/x.bit appears truncated on the right and too light overall.
Re: [9fans] Why does Acme only show text?
On Wed, 15 Jul 2009 22:42:20 +0200 Noah Evans noah.ev...@gmail.com wrote: http://9fans.net/archive/2008/05/6 Good to see this brought up. Whitespace may be the most comfortably readable means of indicating flow, but it's fragile. Better, IMHO, is delimiters with plenty of space around them, but even then they do intrude. Currently I like Q where parentheses can be used if necessary but a couple of syntactic tricks are used to keep them to the minimum and whitespace has some meaning but (IIRC) not over-much. I find the best thing to do with languages with delimeters is to run code through a code formatter often. I'm using Gnu indent for C code (especially valuable when dealing with Gnu C :) ), is there a similar tool for Plan 9? On Wed, Jul 15, 2009 at 10:29 PM, Jason Catenajason.cat...@gmail.com wrote: Devon's anecdote is along the lines of my position. I'm sure there's a paper somewhere that counts parenthesis versus whitespace errors, but I haven't yet read it. I have programmed Lisp and Haskell (at two extremes), and from this experience at least much prefer whitespace to parentheses. In addition, I rely on design theory (esp. Tufte et al on his web site) that reducing clutter aids comprehension, and delimiters very much seem clutter to me. Jason Catena -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
Re: [9fans] Why does Acme only show text?
On Wed, Jul 15, 2009 at 1:58 PM, Chad Brownyand...@mit.edu wrote: Emacs is great for writing Lisp. Now, if only I could find the correct .emacs invocation to make the tab key insert a tab character in C mode, rather than a bunch of spaces the way His Holy Lunacy RMS desires. If I wanted spaces instead of tabs, I'd type them! OT for the list, but this is trivial in emacs for several years now, and RMS has nothing to do with the special code for C mode (which is called CC-mode, and supports a bevy of languages, and is complicated enough that it can probably boot minix on it's own by now). *Chad In the interests of not slandering Emacs excessively, I'd like to state that I seem to have figured out my .emacs file to a point where hitting a tab inserts a tab. That will be all. John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba
Re: [9fans] Why does Acme only show text?
fgb, your ability to hack is mighty indeed :-) On Wed, Jul 15, 2009 at 2:00 PM, Federico G. Benavento benave...@gmail.comwrote: acme is more than a buffer with text to edit, it also has the filesystem interface that allows programs to be written specifically for it (Mail, Wiki, etc). I never thought that doing graphics in acme was a need, as most of the time I'm just editing text and having some graphical up there would take space that I can really use to list a directory, another source file, or whatever. I also don't think that you'll have to emulate rio's behavior as you can run most of the graphical programs without rio, that's the beauty of rio, it gives almost the same interface as it gets from the kernel. in any case, years ago I gave it a try, but I after a day of hacking I lost my interest, I know some people still want this functionality, so if you are up to the challenge go for it. I have a tgz on mordor which can run draw apps on acme, but it's not functional at all, so if you're interested let me know http://www.tip9ug.jp/who/fgb/acme.png On Wed, Jul 15, 2009 at 9:22 AM, Ethan Grammatikidiseeke...@fastmail.fm wrote: On Wed, 15 Jul 2009 09:25:51 GMT Paul Donnelly paul-donne...@sbcglobal.net wrote: jason.cat...@gmail.com (Jason Catena) writes: I've been wondering for years now why Acme (and Wily, which I used first) only display text files. It seems to me that the content of an Acme window could be anything: a picture, a postscript or PDF file, a star chart, a web page. Keeping with the spirit of small parts brought together, Acme could outsource the displaying of the content to another program, place its output in the Acme window, and operate on it by sending commands from the tag to the rendering program. Hi, I don't know anything about anything, but it seems to me that it's more productive to look at the question the other way around: why not modify Rio to tile windows like Acme does? Acme is a text editor, so it's no surprise that it handles text only. You may be thinking too monolithically. The draw device multiplexes itself so it shouldn't take much coding for acme to provide draw in addition to the other files it provides in /mnt/wsys. Mouse is just as important as draw and will need a little more code. Not only would acme need to multiplex it but it would need to emulate rio's behaviour. To quote Rio's man page: Opening it turns off scrolling, editing, and rio-supplied menus in the associated window. That isn't 100% true, scrolling isn't actually disabled but is not naturally accessible and looks very messy when you force it. What is true is that rio ceases to interpret keys specially other than backspace and return (curiously), and mouse events on the window are blindly sent to the application. It still doesn't sound like a lot of code, but may take some careful thought. Maybe that's a summary of Plan 9 methodology. :) I also take issue with the statement Acme is a text editor, that never sounds right, no more than describing Emacs as a text editor. It's natural to use Acme as a text editor and it provides many more text-editing facilities than Rio does, but it is also natural to use it as a file manager, shell window provider, email client, etc, etc. It provides more than Rio and it does it all with tiling windows and without menus, but that's just style. Rio windows could seriously use a search function and one or two other text-editor facilities wouldn't go amiss. It doesn't seem natural to me that Acme does not allow graphical programs in it's windows. -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving. -- Federico G. Benavento
Re: [9fans] Why does Acme only show text?
I find the best thing to do with languages with delimeters is to run code through a code formatter often. I'm using Gnu indent for C code (especially valuable when dealing with Gnu C :) ), is there a similar tool for Plan 9? i find that formatting code well to begin with works best. but when faced with ugly code, cb(1) is helpful. steve has something a bit more aggressive in his contrib area. - erik
Re: [9fans] Why does Acme only show text?
On Wed, 15 Jul 2009 13:51:02 -0700 David Leimbach leim...@gmail.com wrote: On Wed, Jul 15, 2009 at 1:42 PM, Noah Evans noah.ev...@gmail.com wrote: http://9fans.net/archive/2008/05/6 Haskell *will* tell you errors that don't make any sense (at least GHC errors) when you don't have things like this done properly The linked post pointed out there are times when barely-visible errors are not caught and go on to cause big problems. That's pretty nasty. do x - foo y - bar the y - bar must be directly under the x on the previous line or it's a syntax error, and the error you get from GHC is the last statement of a do construct must be an expression Huh, so this Haskell syntax actually prevents you from indenting something that would be indented in any other language. Okay... Luckilly Haskell will let you ignore layout and do the following: do { x - foo ; y - bar } However, I don't see enough of this style code to feel comfortable writing anything I'd plan to share with anyone and expect them to feel ok reading it. It sure doesn't look comfortable to me. Strange semicolon placement for one thing. Do the braces have to be on the same lines as the code like that? Could it be written like this?: do { x - foo; y - bar } That's readable to my eyes, but looks like it may be quite different to the first form. -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
Re: [9fans] Fonts
On Wed, Jul 15, 2009 at 2:01 PM, David Leimbachleim...@gmail.com wrote: Just tried this from the mercurial snapshot from last night. fontsrv appears to work but complains about fuse not being set up properly. Does this mean acme is not going to work? Should I be asking this on the plan9port mailing list? No, yes, moved there. Russ
Re: [9fans] Why does Acme only show text?
On Wed, 15 Jul 2009 17:12:58 -0400 erik quanstrom quans...@coraid.com wrote: I find the best thing to do with languages with delimeters is to run code through a code formatter often. I'm using Gnu indent for C code (especially valuable when dealing with Gnu C :) ), is there a similar tool for Plan 9? i find that formatting code well to begin with works best. but when faced with ugly code, cb(1) is helpful. steve has something a bit more aggressive in his contrib area. Cheers, I'll try cb -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
Re: [9fans] administrivia
On Wed, 15 Jul 2009 16:03:39 -0500 Preston Mays pkm...@nogetdue.com wrote: I don't like copying and pasting URLs. How about some more a hrefs? Any sane email client will offer some means to open urls, probably via the plumber in plan 9 -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.
[9fans] git on plan 9
Hey all, I've heard a few rumors that there is a git (VCS) implementation that was ported over to Plan 9. Additionally, are there other VCS systems, save replica, that are available? GIT, SVN, HG respectfully, +=jt
Re: [9fans] git on plan 9
hg works on Plan 9, it's in /n/sources/bichued along with python so you need that + tons of stuff from my contrib packages... On Wed, Jul 15, 2009 at 7:04 PM, jftm...@0xabadba.be wrote: Hey all, I've heard a few rumors that there is a git (VCS) implementation that was ported over to Plan 9. Additionally, are there other VCS systems, save replica, that are available? GIT, SVN, HG respectfully, +=jt -- Federico G. Benavento
[9fans] git on plan9
Thats good to hear HG is working well, I am really hoping for git as it is hosting my current repo of works. If git does not exist and there is no plan to do it in the future I can migrate over my stuff (i'd prefer to do actual new work than porting VCS!). Thanks for the replies thus far. +=jt
Re: [9fans] git on plan9
On Wed, Jul 15, 2009 at 3:38 PM, driv...@0xabadba.be wrote: Thats good to hear HG is working well, I am really hoping for git as it is hosting my current repo of works. If git does not exist and there is no plan to do it in the future I can migrate over my stuff (i'd prefer to do actual new work than porting VCS!). Thanks for the replies thus far. If the hg is new enough that it comes with the bookmarks extension, then you can install a separate extension that will make it handle git too. I have been using hg to manipulate git repositories and find it far more pleasant than using git directly. http://hg-git.github.com/ http://bitbucket.org/abderrahim/hg-git/ The code at the second URL, which is a newer fork of the first URL's code, makes it almost transparent: hg clone git://asdfkjasdfadsf hg commit hg push hg pull -u They all just work. Russ
Re: [9fans] Why does Acme only show text?
Real World Haskell ch4 pp71-72 do x - foo y - bar the y - bar must be directly under the x on the previous line or it's a syntax error, and the error you get from GHC is the last statement of a do construct must be an expression Huh, so this Haskell syntax actually prevents you from indenting something that would be indented in any other language. Okay... I didn't read it like this. The x and y must be lined up because they are both part of the same set of do-statements. If the y line was a standalone statement, then it could be indented as shown in this code segment. But in that case there's no need for a do, since the point of do is to order statements in sequential time. the following is a complete Haskell program, using do, which passes through its input file to an output file. The specifies code lines, other lines are considered comments. (I hope gmail preserves the spacing.) Real World Haskell ch4 pp71-72 import System.Environment (getArgs) interactWith function inputFile outputFile = do input - readFile inputFile writeFile outputFile (function input) main = mainWith myFunction where mainWith function = do args - getArgs case args of [input,output] - interactWith function input output _ - putStrLn error: need exactly two arguments Replace id with any function (of the same type) to process the data. myFunction = id
Re: [9fans] git on plan9
On Wed, Jul 15, 2009 at 4:01 PM, Russ Coxr...@swtch.com wrote: On Wed, Jul 15, 2009 at 3:38 PM, driv...@0xabadba.be wrote: Thats good to hear HG is working well, I am really hoping for git as it is hosting my current repo of works. If git does not exist and there is no plan to do it in the future I can migrate over my stuff (i'd prefer to do actual new work than porting VCS!). Thanks for the replies thus far. If the hg is new enough that it comes with the bookmarks extension, then you can install a separate extension that will make it handle git too. I have been using hg to manipulate git repositories and find it far more pleasant than using git directly. http://hg-git.github.com/ http://bitbucket.org/abderrahim/hg-git/ The code at the second URL, which is a newer fork of the first URL's code, makes it almost transparent: hg clone git://asdfkjasdfadsf hg commit hg push hg pull -u They all just work. Russ It appears that the Plan 9 port of hg is version 1.0.2, which does not have bookmarks. To those who ported it, how difficult was the task? How much work would it be to bring in 1.2? To Russ, it's not quite clear... does the git extension *require* bookmarks, or just work better with them? Right now I'm trying to clone hg-git to test it, but the clone is failing with: %hg clone http://bitbucket.org/abderrahim/hg-git/ destination directory: hg-git requesting all changes adding changesets adding manifests adding file changes transaction abort! rollback completed abort: Invalid argument: /usr/john/lib/hg-git/.hg/store/data John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba
Re: [9fans] git on plan9
does the git extension *require* bookmarks? yes. and it wouldn't surprise me if the extension uses API functions new since 1.0.2. if you're going to bother bringing in a new version, you might as well pull in 1.3. but 1.2 would have worked. russ
Re: [9fans] git on plan9
not much, just put the C files where they should go /sys/src/cmd/python/Extra and the .py where in the library directory, check how the current hg port was done. On Wed, Jul 15, 2009 at 8:44 PM, John Florenslawmas...@gmail.com wrote: On Wed, Jul 15, 2009 at 4:01 PM, Russ Coxr...@swtch.com wrote: On Wed, Jul 15, 2009 at 3:38 PM, driv...@0xabadba.be wrote: Thats good to hear HG is working well, I am really hoping for git as it is hosting my current repo of works. If git does not exist and there is no plan to do it in the future I can migrate over my stuff (i'd prefer to do actual new work than porting VCS!). Thanks for the replies thus far. If the hg is new enough that it comes with the bookmarks extension, then you can install a separate extension that will make it handle git too. I have been using hg to manipulate git repositories and find it far more pleasant than using git directly. http://hg-git.github.com/ http://bitbucket.org/abderrahim/hg-git/ The code at the second URL, which is a newer fork of the first URL's code, makes it almost transparent: hg clone git://asdfkjasdfadsf hg commit hg push hg pull -u They all just work. Russ It appears that the Plan 9 port of hg is version 1.0.2, which does not have bookmarks. To those who ported it, how difficult was the task? How much work would it be to bring in 1.2? To Russ, it's not quite clear... does the git extension *require* bookmarks, or just work better with them? Right now I'm trying to clone hg-git to test it, but the clone is failing with: %hg clone http://bitbucket.org/abderrahim/hg-git/ destination directory: hg-git requesting all changes adding changesets adding manifests adding file changes transaction abort! rollback completed abort: Invalid argument: /usr/john/lib/hg-git/.hg/store/data John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba -- Federico G. Benavento
Re: [9fans] git on plan9
John, I think I might be 3/4 the way there with 1.3 :). I'll update you when its done. Too bad geoff is away until the 25th -- he is making me a contrib then. respectfully, jamest ---BeginMessage--- On Wed, Jul 15, 2009 at 4:01 PM, Russ Coxr...@swtch.com wrote: On Wed, Jul 15, 2009 at 3:38 PM, driv...@0xabadba.be wrote: Thats good to hear HG is working well, I am really hoping for git as it is hosting my current repo of works. If git does not exist and there is no plan to do it in the future I can migrate over my stuff (i'd prefer to do actual new work than porting VCS!). Thanks for the replies thus far. If the hg is new enough that it comes with the bookmarks extension, then you can install a separate extension that will make it handle git too. I have been using hg to manipulate git repositories and find it far more pleasant than using git directly. http://hg-git.github.com/ http://bitbucket.org/abderrahim/hg-git/ The code at the second URL, which is a newer fork of the first URL's code, makes it almost transparent: hg clone git://asdfkjasdfadsf hg commit hg push hg pull -u They all just work. Russ It appears that the Plan 9 port of hg is version 1.0.2, which does not have bookmarks. To those who ported it, how difficult was the task? How much work would it be to bring in 1.2? To Russ, it's not quite clear... does the git extension *require* bookmarks, or just work better with them? Right now I'm trying to clone hg-git to test it, but the clone is failing with: %hg clone http://bitbucket.org/abderrahim/hg-git/ destination directory: hg-git requesting all changes adding changesets adding manifests adding file changes transaction abort! rollback completed abort: Invalid argument: /usr/john/lib/hg-git/.hg/store/data John -- I've tried programming Ruby on Rails, following TechCrunch in my RSS reader, and drinking absinthe. It doesn't work. I'm going back to C, Hunter S. Thompson, and cheap whiskey. -- Ted Dziuba ---End Message---