To further the development of ANONIX, I present you:
ctype.h#ifndef CTYPE_H_
int isalnum(int c);
int isalpha(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int tolower(int c);
int toupper(int c);
#endif
ctype.c#include "ctype.h"
int isalnum(int c) { return isalpha(c) | isdigit(c); }
int isalpha(int c) { return isupper(c) | islower(c); }
int iscntrl(int c) { return ((c < 0x20) || (c == 0x7f)) ? 1 : 0; }
int isdigit(int c) { return ((c >= '0') && (c <= '9')) ? 1 : 0; }
int isgraph(int c) { return ((c != ' ') && isprint(c)) ? 1 : 0; }
int islower(int c) { return ((c >= 'a') && (c <= 'z')) ? 1 : 0; }
int isprint(int c) { return ((c >= ' ') && (c <= '~')) ? 1 : 0; }
int ispunct(int c) { return ((c != ' ') && !isalnum(c)) ? 1 : 0; }
int isspace(int c) { return ((c == ' ') || (c == '\f') || (c == '\n') || (c == '\r') || (c == '\t') || (c == '\v')) ? 1 : 0; }
int isupper(int c) { return ((c >= 'A') && (c <= 'Z')) ? 1 : 0; }
int isxdigit(int c) { return (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) || ((c >= 'A') && (c <= 'F'))) ? 1 : 0; }
(Post truncated.)
ctype.h
#ifndef CTYPE_H_
#define CTYPE_H_
int isalnum(int c);
int isalpha(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int tolower(int c);
int toupper(int c);
#endif
ctype.c#include "ctype.h"
int isalnum(int c) { return isalpha(c) || isdigit(c); }
int isalpha(int c) { return isupper(c) || islower(c); }
int iscntrl(int c) { return (c < 0x20) || (c == 0x7f); }
int isdigit(int c) { return (c >= '0') && (c <= '9'); }
int isgraph(int c) { return (c != ' ') && isprint(c); }
int islower(int c) { return (c >= 'a') && (c <= 'z'); }
int isprint(int c) { return (c >= ' ') && (c <= '~'); }
int ispunct(int c) { return isgraph(c) && !isalnum(c); }
int isspace(int c) { return (c == ' ') || (c == 'f') || (c == 'n') || (c == 'r') || (c == 't') || (c == 'v'); }
int isupper(int c) { return (c >= 'A') && (c <= 'Z'); }
int isxdigit(int c) { return ((c >= 'a') && (c <= 'f')) || ((c >= 'A') && (c <= 'F')) || isdigit(c); }
(Post truncated.)
Where's the rest
#ifndef OMG_OPTIMIZED_CTYPE_H_
#define OMG_OPTIMIZED_CTYPE_H_
/**
* __ _ _ ____ _ _ _ _ _
* / | \| |/ __ \| \| | | \/ /
* / | \ | | | | \ | |\ /
* / . | |\ | |__| | |\ | |/ \
* /__/|_|_| \_|\____/|_| \_|_|_/\_\
*
* OPTIMIZED ANONIX INTERFACES
*
* -------------------------------------------------------------------------
*
* Optimized branchless ctype facilities using bitwise operations. Assumes a
* fixed ASCII (ANSI_X3.110-1983) code page. Functions are ISO/IEC 9899:1999
* (C99) compliant. Requires an ISO/IEC 9899:1999 (C99) compliant compiler.
*
* Version: 1.666alpha
* Bug Reports: strawberryshake [at] 1337 [dot] jp
*/
inline int isblank(int c) { return (c == ' ') | (c == '\t') | (c == '\v'); }
inline int iscntrl(int c) { return (c <= 0x1F) | (c == 0x7F); }
inline int isdigit(int c) { return (((unsigned int)c) - ((unsigned int)'0')) <= ((unsigned int)('9' - '0')); }
inline int isgraph(int c) { return (((unsigned int)c) - ((unsigned int)'!')) <= ((unsigned int)('~' - '!')); }
inline int islower(int c) { return (((unsigned int)c) - ((unsigned int)'a')) <= ((unsigned int)('z' - 'a')); }
inline int isprint(int c) { return (((unsigned int)c) - ((unsigned int)' ')) <= ((unsigned int)('~' - ' ')); }
inline int isupper(int c) { return (((unsigned int)c) - ((unsigned int)'A')) <= ((unsigned int)('Z' - 'A')); }
inline int isalpha(int c) { return ::hrc::islower(c) | ::hrc::isupper(c); }
inline int isalnum(int c) { return ::hrc::islower(c) | ::hrc::isupper(c) | ::hrc::isdigit(c); }
(Post truncated.)
Sorry, left in some C++ stuff. I'm actually using this in one of my private C++ libraries, but I'm placing this in the public domain with the exception that there is absolutely no warranty.
#ifndef OMG_OPTIMIZED_CTYPE_H_
#define OMG_OPTIMIZED_CTYPE_H_
/**
* __ _ _ ____ _ _ _ _ _
* / | \| |/ __ \| \| | | \/ /
* / | \ | | | | \ | |\ /
* / . | |\ | |__| | |\ | |/ \
* /__/|_|_| \_|\____/|_| \_|_|_/\_\
*
* OPTIMIZED ANONIX INTERFACES
*
* -------------------------------------------------------------------------
*
* Optimized branchless ctype facilities using bitwise operations. Assumes a
* fixed ASCII (ANSI_X3.110-1983) code page. Functions are ISO/IEC 9899:1999
* (C99) compliant. Requires an ISO/IEC 9899:1999 (C99) compliant compiler.
*
* Version: 1.666alpha2
* Bug Reports: strawberryshake [at] 1337 [dot] jp
*/
inline int isblank(int c) { return (c == ' ') | (c == '\t') | (c == '\v'); }
inline int iscntrl(int c) { return (c <= 0x1F) | (c == 0x7F); }
inline int isdigit(int c) { return (((unsigned int)c) - ((unsigned int)'0')) <= ((unsigned int)('9' - '0')); }
inline int isgraph(int c) { return (((unsigned int)c) - ((unsigned int)'!')) <= ((unsigned int)('~' - '!')); }
inline int islower(int c) { return (((unsigned int)c) - ((unsigned int)'a')) <= ((unsigned int)('z' - 'a')); }
inline int isprint(int c) { return (((unsigned int)c) - ((unsigned int)' ')) <= ((unsigned int)('~' - ' ')); }
inline int isupper(int c) { return (((unsigned int)c) - ((unsigned int)'A')) <= ((unsigned int)('Z' - 'A')); }
inline int isalpha(int c) { return islower(c) | isupper(c); }
(Post truncated.)
With an email address, your contribution is no longer anonymous. Therefore it is considered harmful to the ANONIX Operating System.
http://pdclib.rootdirectory.de/
See the main page (http://rechan.eu.org/main.htm) for the purpose of this thread.
Will Anonix have a Graphical User Interface?
Anonix should switch to using Clang/LLVM instead of using the Garbage Compiler Collection.
The Anonix POSIX Reference Implementation project aims to provide a public-domain, standards-conforming implementation of the functionality described in POSIX 2004, initially focusing on the shell and utilities but eventually encompassing an entire Operating System including a kernel. As with original Anonix, it is anticipated that APRI and GNU will coexist, along with any suitable kernel, at least until APRI is complete.
Seriously, the idea is good and everything, but you all know it's going to take more than some effort to write a complete POSIX operating system. The GNU Project itself failed at it. I'm really sorry, but you're bound to fail.
So is this project entirely dead or still sleeping? Does it have an irc channel or something?
>>12
Sleeping. Cudder said she needs to fix a few bugs in the board script first.
Back from the dead :)
This is the thread to discuss a replacement for Danbooru written as part of the Anonix project. Danbooru is both an imageboard and the software that runs it. The software is written using the Ruby on Rails framework and because Ruby is slow as fuck Anonix has been called upon to write a replacement.
Much like the Anonix coreutils we will use a specification to guide what features need to be implemented. There are no existing specs for Danbooru's features so we will need to write these ourselves. This thread is for the discussion of how we are going to design the software, what language we will use, specs for Danbooru's features that need to be implemented, and finally a name and user interface for the project.
http://shimmie.shishnet.org/v2/
>>24
All code is GPL2
I'm wondering if Danbooru is actually bottlenecking at the DB and not the RoR, since in that case rewriting the thing in e.g. PHP but retaining the SQL would not be of much help. Using a new way to store the data would be good in either case... I've thought of a system that uses directories and symlinks, but it's *nix only and may be a bit too filesystem-intensive. On the other hand, this way we can let the OS kernel do the caching (inodes and directories).
>>25
bottlenecking at the DB and not the RoR
>>13
[bottleneck ...] query large data sets
system that uses directories and symlinks
I think this is what >>3 was getting at with a bourne shell cgi script.
Let's keep this discussion moving forward.
>>26
well, symlinks are *nix specific so it wouldn't work on a Windows system... not that we're targeting Windows but it's a limitation.
I'm still wondering how the filesystem/kernel will cope with several hundred thousand symlinks.
ITT we discuss further how to copycat successful software for people who will think we're cool until they find out we were all just jackass wannabees.
Might as well be the first to start a thread about it...
http://img181.imageshack.us/img181/5603/302pxanonixlogoap2.png
I think it goes well with the aims of simplicity/efficiency of the project.
Not bad.
That looks awful. Too many sharp corners and the distances between the shapes are all wierd.
Use this board to discuss the plans of the Anonix project as a whole.
There was a suggestion made in 4chan's /prog/ of writing anonlibc *before* anonbinutils. We may consider parallelizing the two phases so they'll both be open for contribution.
Of course, nothing is preventing you from writing stuff for anonlibc right now. Go ahead. Save it for when we do open up contributions.
Moar liek yet another fake girl on the internets. Jim, give it up, they know that your one-inch cock isn't really a clitoris.
>>7
I posted this to /prog/ and yes, that's all I'm going to show.
http://img291.imageshack.us/img291/8939/26044156st7.jpg
shit site is shit
http://sources.redhat.com/newlib/
is anonix dead?
How do you tell if someone is contributing infringing code (ie. anything not public domain)? What do you do about it?
- we cannot say exactly, but the style of the code and Google have much to do with it
- we ignore their contribution
You could hax their anus in revenge.
>3
речую
This is the thread for the design and planning of Anonix's Universal Bytecode Language that was brought up in this world4ch /prog/ thread <http://dis.4chan.org/read/prog/1219480390>.
you mean universal compiler IR.
/* Anonix ed - version 1.0 */
#include <limits.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void int_handler(int);
void hup_handler(int);
int main(void) {
char line[LINE_MAX];
signal(SIGINT, &int_handler);
signal(SIGHUP, &hup_handler);
signal(SIGQUIT, SIG_IGN);
while(fgets(line, LINE_MAX, stdin) && strcasecmp(line, "q\n")) puts("?");
return 0;
}
void int_handler(int n){
puts("?");
fpurge(stdin);
}
void hup_handler(int n){
FILE *f;
if(f = fopen("ed.hup", "w+")) fclose(f);
if(getenv("HOME")){
char path[strlen(getenv("HOME")) + 8];
strcpy(path, getenv("HOME"));
strcat(path, "/ed.hup");
(Post truncated.)
version 1.0
more like version 0
Have you never heard of tabs?
Tabs are too implementation-dependent.