freenode/#mezzano - IRC Chatlog
Search
16:09:36
ebrasca
I get this error "No applicable methods to generic function #<Standard-Generic-Function (SLOT-VALUE SYSTEM.INTERNALS::%PENDING-READ-CHARACTER) 5000000CA389> ((SLOT-VALUE SYSTEM.INTERNALS::%PENDING-READ-CHARACTER)) when called with (:UTF-8)."
16:13:03
froggey
you've passed :utf-8 to one of the external-format functions instead of an external-format object. you have to create one using make-external-format
16:15:06
ebrasca
I have ":external-format (sys.int::make-external-format 'character external-format)" .
16:17:17
froggey
do you have an old method for stream-external-format that's returning :utf-8? inheriting from external-format-mixin will do that for you
16:25:35
froggey
you'll need to remove that method and the methods on stream-read/write-sequence and stream-read/write-char. external-format-mixin will take care of those functions for you
16:40:18
froggey
only for the classes that inherit external-format-mixin, which should just be file-cache-character-stream
16:46:21
fittestbits__
ebrasca: FYI: I've been make some changes to fat32.lisp. Are working on that too?
16:50:29
fittestbits__
Thanks for the diff. My changes have been larger than I'd like, I'm not sure how happy you and froggey will be with them.
16:53:02
fittestbits__
OK. I'm going to keep working on writing tests and fix any issues that I find.
17:38:10
ebrasca
froggey: what todo if write-sequence run of space , is it good idea to allocate more space in disk?
17:45:20
ebrasca
I only know 2 problems with my fat32 deleting directory with files and ensure-directories-exist XD
19:18:07
fittestbits__
froggey: I think the code has gotten simpler - created a few different "primitives" that simplified the higher level functions.
19:20:05
fittestbits__
Some of the primitives are a bit complex, eg, create a directory entry for a file with a long name.
19:20:49
fittestbits__
ebrasca: I'm making changes on the latest version of mezzano (sept. 13th commits).
19:28:15
fittestbits__
rename seemed very complex due to long names - that's why create-directory-entry seemed like a good primitive. It captures the complexity of short name vs long name.
19:28:57
fittestbits__
So, rename looks like create-directory-entry for new name, copy meta data from old entry to new entry, free-directory-entry on old name.
19:29:18
fittestbits__
Similarly, create-file - create-directory-entry for new name, then fill in the meta data.
19:30:17
fittestbits__
So all of the short name/long name stuff is "hidden" in create-directory-entry and free-directory-entry. The other routines just don't have to take it into account.
19:32:53
fittestbits__
So, I think ensure-directories-exist should be pretty simple, too. For directories that don't exist, create-directory-entry, create directory structure, save parent, move on to child to create the next directory.
19:35:43
fittestbits__
Shouldn't be too bad. I think one of the tricks to good code is to figure out good primitives so that the "next level" is relatively easy to write and understand.
19:40:32
fittestbits__
I think do-files is really useful, but I don't think do-file (which handles long names) is really the right thing.
19:44:01
fittestbits__
I appreciate you writing the file system code, both fat and ext4. I think they are really needed for bare metal operation which is where I'd like to go.
19:48:19
fittestbits__
I'm thinking a bare metal system still has to be dual boot linux/mezzano. So read only ext4 is useful for moving data from linux to mezzano, which is the useful direction.
19:49:38
fittestbits__
ext4 read/write would be required for bootstrapping mezzano on bare-metal. Run make on linux to get the minimal image, then boot that image to compile and load the rest of the system.
19:50:08
fittestbits__
I don't know anything about the format of ext4, so I can't really help with the primitives for it right now.
20:19:56
froggey
it'd be nice to have some kind of CI infrastructure. something that pulls down MBuild & the latest Mezzano repo and does a full build, just to make sure it all builds properly
22:31:09
fittestbits__
ebrasca: I've included your diff from above, what would you like for the commit comment?