My cousin met Cudder at a party in London last year. They ended up fucking. He said it was totally sub-par. She got shit all over his dick, and violently queefed at the end.
I have come to take your lucky dubs. Give them up at once.
Name:
Anonymous2016-05-01 13:31
the problem is random snippets of Python sometimes don't work because where they were pasted didn't preserve the whitespace correctly – MkV Oct 31 '10 at 15:38
Name:
Forwarding email I received2016-05-01 14:58
The main issue is java/ecma script on the "www DOM" (Document Object Model): Between noscript www browser code requirements and script-able www browser code requirements, there is an abyss in size and complexity.
Additionnaly, the "modern" www tends to force the user to have a script-able www browser, even though many www sites could provide their services with a noscript www browser through a cleverly crafted main www portal or a dedicated noscript www portal on the side of the main (with all bells and whistles) www portal. ---------------------------------------------------------------------------- ^ | That's where the real fight is
For instance, youtube could provide a noscript www portal with <video> and/or <audio> html elements. EZ and reasonable to implement even for inexperienced coders around the globe. But no. You _must_ have a script-able www browser to enjoy youtube (the terms of use even forbid users to employ anything else in order to watch/listen to a video/audio stream). I have to admit, html needs a little extension to <video>/<audio> in order to support split video/audio streams. Basically, we would need a simple html-ed "DASH" manifest. But vp[98]/opus high/med/low qualities video/audio combined streams should be enough in most cases. (remainging cases would be handled with the standard "download then view" way).
Another example: online banking. http, xhtml1.1 and css2.1 with basic forms are hell enough to provide banking services to www users. But no. You _must_ have a script-able www browser. And lately, it does apply to "verified by visa" and online payments...
Sometimes, it does not work. For instance, soundcloud. Soundcloud needs a rich GUI to provide its services. But they could provide a simple http API to let people have their own GUI components. Many www sites have their www APIs, but need a redirection on a script-able www browser on the side for authentication... Ooops!
----
You have only 2.5 modern open source engines which "can run the www": - webkit (massive and c++ is brain damaged) - blink (webkit google's fork, see above) - gecko (firefox, massive and c++ is brain damaged)
BTW, I wonder if there is a http/mime way for a www browser to tell a http server: "noscript please".
----
There is a team working on a C implemented www browser: netsurf. I got a little chat with one of its devs: "www DOM dynamicity through script is insane".
Name:
Cudder !cXCudderUE2016-05-01 15:36
CSS matching: the best way to do this might be a two-dimensional regex-like state machine, which simplifies to an array and a queue of bits. One dimension for matching descendant and child combinators, and then another dimension for general sibling and previous-sibling. As far as I know, this is not something any other browser engine has discovered, although there's some mention of it elsewhere:
If there's 32 (64 for the 64-bit version) or fewer width/height combinators, which is very likely, we can store the state array entirely in a register and get even more efficient... but even the basic implementation should beat the backtracking (:facepalm:) that contemporary implementations do.
>>16 I find it really disappointing that something like NetSurf, which is both unusable and insecure, but also relatively well-written and infinitely far from "bloated," could get this kind of nitpicking, dismissive review.
Nearly 3k lines of disgustingly verbose, redundant C. Look at the functions handle_doctype_system_id_double_quoted_state and handle_doctype_system_id_single_quoted_state, or handle_attr_value_double_quoted_state and handle_attr_value_single_quoted_state for good examples of this utter idiocy. I refuse to believe that a programmer with a functioning brain could generate such filth. Did the thought "this state looks almost exactly like that state exact for this one thing, I should probably merge them" ever cross that retard's mind? Probably not, because there was no mind for the thought to cross!
The most valuable part of that file is contained within these 4 lines: // Initial size chosen by statistical analysis of a corpus of 60k webpages. // 99.5% of elements have 0 attributes, 93% of the remainder have 1. These // numbers are a bit higher for more modern websites (eg. ~45% = 0, ~40% = 1 // for the HTML5 Spec), but still have basically 99% of nodes with <= 2 attrs.
>>23 You are disliking that code for all the wrong reasons. You're butthurt that it's not C-ish enough. I don't even know where to begin with how fucked up your mentality is.
Instead of writing a browser in C which has already been done perhaps thousands of times, why not write it in something more advanced like Scheme, CL, clojure, or even elisp? You would be able to get done faster as well, since most of the parsing can be macros.
Name:
Anonymous2016-06-13 12:40
>>27 Cudder is making an efficient asm browser. You want an inefficient lisp one? Then do it yourself, bitch.
CSS selector matching and DOM tree rendering is absolutely trivial compared to what I'm currently working on, but I just don't just have the time for it now.
>>65 It is the best version of Windows ever and nobody uses it anymore? What a laugh.
Name:
Anonymous2017-01-02 13:37
>>49,60 Really cool to see you progress, even if the harder work is still to be done. I hope it passes Acid2 soon and you make the public release. BTW, tinypic wouldn't show me the images until I enabled javascript. You should start using an image hosting site that doesn't need this crap.
Name:
Anonymous2017-01-02 15:20
wow, Cudder actually delievers. it's a nice surprise, although I'd rather see that decompiler.
hey, is your browser going to be full-featured, with javascript and cookies and other stuff used by THE WEB? and is it going to be open source?
Name:
Cudder !cXCudderUE2017-01-02 15:21
>>72 I only had the time to do this because of the year-end break, but there surprisingly isn't actually that much more left until Acid2. It needs a CSS parser and selector matcher, and the rendering needs to be finished, but passing Acid2 will already put it ahead of Dildlo and NetSurf.
Incidentally, I downloaded NetSurf 3.6 to see if it's improved since the last time I tried it. It's a single binary, but... FOURTEEN bloody megabytes!? That's bigger than Opera 9.x (which includes a JS engine, and passes Acid2...)! I run it and the first thing I see is a "Warning: CSSBase" popup; not a good start. When I try visiting the Acid2 site, I get an assertion and a completely blank page. The Options dialog (there isn't much in there) has one tab named "Apperance". EPIC FAIL.
>>80 It's called refactoring done right. I expect it'll get even smaller when I fully analyse and rewrite the HTML parser in Asm, because it currently is a pretty dumb direct translation of the standard and there's still plenty of redundancy to remove.
Goal was 256K originally but a long time ago I moved to 64K, maybe I didn't announce it in that thread but I think I did say so somewhere...
As work starts up I'll be busy again so don't expect the progress to accelerate.
Name:
Anonymous2017-01-03 10:14
>>82 so this is 64K for the whole thing or just for parsing and rendering HTML, without a JS interpreter?
He will keep teasing you forever. Even after claiming to have implemented everything, he will invent something new he has to do before releasing the source. Optimization... Clean-up... Size-reduction... The years will go by and you fools will keep waiting for a release.
>>92 This is the way of the premature optimizer. Apparently bloat is more important than something that works ASAP so therefore, their pie in the sky perfection of no bloat will be delivered 10 times slower than every one else.
Name:
Anonymous2017-01-05 16:56
>>103 Premature optimization is better than premature bloat.
>>96 Why not? Win32 API is far more common and less annoying to deal with than the mess of bloated *nix "you are in a maze of GUI libraries, all almost alike".
The *nix CLI is awesome, but the GUI situation is horrible. Windows is pretty much the opposite. WINE helps get the best of both worlds.
>>103 No optimisation is premature when you're competing with huge existing implementations that have probably spent person-centuries on optimisation (and adding bloat...) I could probably get some huge libraries and release Yet Another WebKit Browser in a halfternoon, but that's not really useful.
Name:
Anonymous2017-01-06 12:52
>>107 you don't need a bloated GUI lib for a minimalist browser, just call the most basic X functions. granted, X is itself pretty bloated but so is windows. but maybe I'm just saying it because I'd rather have a browser run natively on linux or openbsd than go through a compatibility layer.
as for windows GUI API, I dunno. when I worked with it, it felt like they tried to force a C++-shaped peg into a C-shaped hole. you have many types (devices, device contexts, windows, window handles and a fuckton of stuff I don't remember) and functions to put one type in another type which would make sense if done under the hood in a sepples-style language but feels like a lot of boilerplate and busy work. but keep in mind that I have a different perspective because my work with windows GUI stuff was about reverse engineering it, so maybe it's possible to write it in a more concise way but the programmer who did the original work was a dumbass.
Name:
Anonymous2017-01-06 13:12
>>107 You have inherently different goals to everyone else. The cost of "perfect no bloat" optimization is programmer time which translates to a bigger per hour bill at the end. Another issue with what you aim for is that you're happy to target only one specific platform. The cost of these goals are fine when the commissioner of the project is willing to pay for it. In your case, nobody's paying you for a low so these issues don't matter.
In the real world, the normal goals of software development are the speed of software delivery, cross platform execution, easily maintainable, reusable modules and architecture, and the accountability of development concerns. Programmer time is generally much more expensive than computer time so most software commissioners aim for these goals. The big "bloated" libraries exist because it's normally more cost effective for programmers to piece together libraries of flexible and general logic blocks rather than your approach of perpetually reinventing the wheel.
Name:
Anonymous2017-01-06 14:42
>>107 Why not just use plain Xlib? It's the equivalent of Win32 API for *nix. Every *nix has X11 and Xlib available. You don't need toolkits.
Name:
Anonymous2017-01-06 15:13
People who argue from a business standpoint are spooked to the max.
This isn't ENTERPRISERIDER. Nobody gives a fuck about ``the real world"
Guys, stop asking Cudder for support for more platforms and other crap. The way it is now, it's possible we won't see the first release of the browser in 10 years. If you keep pushing other stuff, we will never see it.
>>111 Most users care about seeing releases earlier rather than later. Solve the immediate problem first then afterwards, you can improve the performance in the subsequent releases.
>>108 You may have RE'd something written with MFC, AFX, ATL, or whatever bloated library MS put on top of Win32, or the developers just had "class envy".
>>110 Xlib is only window management and basic graphics. It's like gdi32. Win32 has user32, comctl32, comdlg32, etc. which contain the UI widget implementations.
>>111 it's funny that basic stuff like maintainability is considered 'enterprise' by optimization zealots. a web browser is a good example why even a minimalist one-man project needs to be maintainable: because web standards (HTML, JS and to a lesser extent HTTP) are changing and to stay useful, a browser needs to change with them.
I've discovered that all of the HTML5 character entity references (&xxxx;) are at least as long as the codepoints they represent in UTF-8, meaning that I can do the conversion in-place or on an allocation the exact same size as the original string...
...except for these two bastards which are one more byte longer:
≫⃒ U+226B U+20D2 ; E2 89 AB E2 83 92 ≪⃒ U+226A U+20D2 ; E2 89 AA E2 83 92
Two out of 2000+! I'm not going to support those, because it's absolutely idiotic to have to redo and complexify the whole buffer allocation logic just to handle these 0.1% of them which is probably very rarely going to occur in real pages anyway.
What's even more idiotic, is that if someone paid some attention to implementation and made them just a single byte longer e.g. &nGGt; or &nLLt; , they would've fit in perfectly with the rest of them. But it might be too much to expect of the W3C.
HIBT? Can't you google simple shit like this yourself?
Name:
Anonymous2017-01-16 19:53
Mr. >>137, I'm the guy that posted >>138. Sorry if I was a little rude, but you really have to think more and research more before posting. I hope we're on good terms. Have a nice one.
Name:
Cudder !cXCudderUE2017-01-17 12:04
>>137 They are probably almost never going to be used. They just won't be recognised.
>>143 Feel the empowerment taking hold of you. Yes, you can. You are no longer a subject to the caprices of others, but are taking matters into your own hands. Yes, you can!
Name:
Anonymous2017-01-28 10:04
>>142 Think of it: Can you build a house all by yourself?
Name:
Anonymous2017-01-28 10:21
>>142 Also, people asking:why can't I create an OS? Should ask themself: can you create a car from scratch?
Name:
Anonymous2017-01-28 13:23
>>147 It's certainly all possible in theory. The real question is whether the individual is willing to invest their life into making it happen.
Upon closer examination, there's even more retardedness in the entities list --- some are defined more than once! What sort of fucked-up design-by-committee lead to this idiocy?
We start with some "only slightly retarded" duplication... ast; U+0002A midast; U+0002A
lbrack; U+0005B lsqb; U+0005B
...move onto WTF-inducing "you're an idiot if you think this is even the slightest bit useful"...
Now I know why there are 2K+ entities. Around half of them are duplicates with an extra ';' at the end (easily handled by the parsing code, but the brainless turds that wrote the spec did not even think...), the other 1/4 are useless duplicates, and what's left is possibly, maybe sometimes, actually useful. But supposedly to be "HTML5 compliant" you would need to parse them all, regardless of whether anyone will actually use them except in demo pages and the like (probably not). Fuck that bullshit.
"Why browsers are bloated".
Name:
Anonymous2017-02-02 11:49
>>159 Horrible! I hope in the end you report all this bullshit so they update their spec.
>>162 The problem is an identity problem, it is not bloat. The committee had overlooked this specific part of the standard and it is good to point it out to them so that they can get to assigning unique identities (codepoints) for the characters. It would only be insane if they respond by saying this is "not bug, it's a feature".
>>174 No, they need to remove them completely because they're essentially useless. The original purpose of named entities, besides escaping (e.g. >), was so you could use Unicode/ISO10646 characters in a file with non-Unicode encoding. With the proliferation and recommendation of UTF-8, the need for that has decreased significantly.
>>175-177 I'm not going to get into the whole W3C vs WHATWG debate, but if anyone wants to tell them about this bloat, they should tell both of them.
But the fact that absolutely no one on either committee discovered or pointed it out is an epic fail. These are people whose main job is to read and discuss the spec, and yet apparently none of them saw it or decided to say something...
Here's a cleaned up entity list, less than 1.5K entities from the original 2K+. In other words, 25% of the spec was bloatshit:
>>135,138,159,160,162,174,175,177,179 It's called ≪⃒freedom≫⃒, the benefit of living in a free country where you don't get put to death for calling it   instead of (or vice versa). If you don't like it, move to one of those Middle Eastern places.
>>189 Multiply speed by size and compare again. If you unroll all the loops and make a CPU execute code in a straight line of course it will look faster in microbenchmarks. What it doesn't show is that it has made everything else much slower.
>>211 You must be very gullible to believe Cudder will ever release anything. He'll keep making excuses for not releasing the source code for years to come. Eventually he will say he gave up and will present a new shiny project he's working on.
>>213 Cudder's strategy is to ignore the inconvenient parts of the standard. This will have the effect of improving the completion time from 20 years down to 19 years.
Name:
Anonymous2017-02-19 15:51
>>215 19 years starting now? Or should we subtract the 3 years he's already been working on it?
Name:
Cudder !cXCudderUE2017-02-19 16:58
>>215 s/inconvenient/useless and almost never encountered/
>>227 The GUI is the only windows-only component, right? Also it shouldn't be hard to port to other archs once the x86 version is released. If it ever is, that is...
Name:
Anonymous2017-02-21 8:23
>>225 a browser passing Acid2 would be impressive a decade ago!
a browser passing Acid2 would be impressive a decade ago!
Even today it's impressive. Netsurf, Dillo and all other `lightweight'' browsers out there can't pass Acid2. And Acid2 is just the milestone Cudder wants to release the source code. Read the previous thread.
Netsurf, Dillo and all other `lightweight'' browsers out there can't pass Acid2.
which is why they're far from usable. I want a lightweight browser but there's something I want more than that: a browser that can display websites correctly.
Name:
Cudder !cXCudderUE2017-02-22 12:18
>>228 GUI and maybe the HTTP(S) libs. Asm is tokeniser only, but I want to extend it to the parser too, and entity parsing/copy-to-DOM is also being rewritten in Asm. Looking at compiler output makes me want to facepalm continuously. Fixed calling conventions are stupid. In C I can't pass 6 parameters by reference and have them all in registers; easy with Asm but turns into bloated memory accesses in C.
>>230,231 Yes, that's the point. Netsurf and Dildlo (the former is even larger than a fully-featured browser which does pass Acid2, Opera 9.x) are not "lightweight". They just pretend to be. The former has a ridiculously bloated parser created by GSoC noobs. The latter doesn't have much of a parser at all, yet oddly enough still has this useless crap: https://en.wikipedia.org/wiki/File:Dillo%27s_bug_meter_on_www.nasa.gov.png --- since HTML5 standardised parsing there is really no such thing as a "parse error", and any stream of bytes turns into a DOM. What they call "parse error"s in the spec are just semantic "I don't like this" bullshit. For example <foo a="b"c="d"e='f'g=h> parses sensibly but the prescriptivists shout "no, that's an error, you must have whitespace between attributes" --- even when it's not actually necessary and both human and machine would know exactly how to parse it.
IRL is getting very busy again, not much time for this now.
Name:
Anonymous2017-02-22 16:36
>>232 Just wondering, is your asm code dependent on AMD64 extensions, or would it run without modification on 32-bit x86 as well?
>>238 so which one are you going to use? libressl?
Name:
Cudder !cXCudderUE2017-02-27 10:55
>>239 Whatever the platform HTTP(S) client (WinInet) uses.
Name:
Cudder !cXCudderUE2017-04-24 11:18
The HTML5 entities list and code, after cleaning out the dupes and other crap, still turns into >20k of binary (i.e. around 2/3 as big as everything else so far; which includes a HTML tokeniser/parser, DOM viewer, UI, and crude renderer)... the HTML4 ones are a slightly better ~4k.
Especially since it's not needed for Acid2 pass and would otherwise contribute to >30% of my 64k budget, I'll stay with the 253 HTML4 entities. It'll be easy to add the rest of them anyway.
>>245 I recall that LAC appeared on the /prog/rider IRC once to say that he was done playing his character and while that might have been an imposter he hasn't posted since. I really miss his rants about stakboi retoids.
>>249 /prog/rider is dead, so no. There was progrider@conference.jabber.ccc.de during the shutdown, but it pretty much became the goatfinger chatroom after a while. No idea if it's even alive anymore.
They've also introduced a bunch of completely unnecessary states and a "temporary buffer" just for character references. What a load of bullshit. The spec was already disgustingly verbose, and they made it even worse.
Name:
Anonymous2017-05-01 10:55
>>254 Well opera has an email and irc client, yet they both aren't HTML
Name:
Anonymous2017-05-01 11:11
>>254 I never took a look at web specs until now, but what the fuck is this? This looks like spec-by-implementation, except that the implementation isn't in a programming language.
>>254,256 Why don't you email the committee with all the mistakes and foolishness that you have found? I am actually interested to see how they are going to defend this cancerous radioactive mess.
>>257,258 Many years ago when this first started I tried to ask them to replace a quadratic-time algorithm in the spec with a linear-time one which produced the identical results, but they didn't care. You are welcome to try, however.
It's mostly an advert for MyHTML, which turns out to be faster than the others, but I haven't been able to benchmark it against mine since his benchmark code is not usable on Windows... and I don't have the same hardware so the results there aren't comparable.
Meanwhile, I've improved mine so it parses the original HTML5 spec page I was using for testing in 46ms. It started at ~170ms, then moved down to 70ms, 60ms, and now 46ms. Amusingly enough, assembling and linking the compiler output vs. letting the compiler do it, makes it faster by ~3ms (to 43ms.) The original progrider page took 8ms; it's down to 1.2ms.
Maybe it's good enough now, and I should move onto CSS parsing...
Name:
Anonymous2017-05-15 14:05
Will anyone design a new car from scratch, just because others are expensive and bloated? Thats seems like a waste of effort
Name:
Anonymous2017-05-15 14:48
>>274 Is it still a waste if you design it to be easily produced, say with a 3D printer?
Name:
Cudder !cXCudderUE2017-05-16 2:28
I think I have a competitor, who coincidentally also seems to be Russian:
The ~1MB HTML5 spec: Parser Mem Time ------------------------------ MyHTML 11.3MB 27.7ms parseh(mine) 3.72MB 43.6ms
Mine looks significantly slower, but MyHTML is reading the whole file into memory and processing it in one go whereas I'm doing it in 4KB blocks (much like a real browser would, for incremental rendering). I'm also using 1/3 of the memory, and there is some GUI stuff too --- the crude DOM viewer and renderer is part of this, whereas MyHTML is only the parser with the bare minimal CLI needed to make it parse.
How about something bigger... much bigger?
100MB of HTML: Parser Mem Time ------------------------------ MyHTML 1850MB 32957ms parseh(mine) 540MB 8506ms
This eliminates any startup overhead and shows that even when it's reading 4KB at a time, mine is almost 4x faster and uses 3/10ths of the memory. Cache effects are important here.
Name:
Anonymous2017-05-16 21:48
>>278 The main difference is that MyHTML didn't take 4 years and is cross-platform.
Are you going to make a public release after you're done with the css parser?
Name:
Anonymous2017-05-18 20:42
>>284 Of course she will! Just give her 5-7 years to iron the kinks!
Name:
Anonymous2017-05-18 21:33
>>278 The average web page is way less than 1MB though. Shouldn't you be optimizing for the most common case rather than for some arbitrarily large document?
Name:
Anonymous2017-05-18 22:07
>>286 I just went on Trump's shitter and clicked the first tweet; the HTML alone was 1.7MB.
Name:
Anonymous2017-05-18 22:12
>>287 Twatter, facefuck and the other social media sites are all like that. They have a very bloated DOM.
>>284 Acid2 pass, like I've been saying all along.
>>286 This page takes 6.7ms in my parser (+GUI processing), MyHTML took 4.3ms (without GUI or anything else.) Being slightly faster on tiny pages will make no noticeable difference to the user.
I am Heron of Alexandria. I have a large beard and I create mathematical formulas. If you don't repost this comment on 10 other pages, I will use my primitive steam engine to induce mold in your walls.
>>298 Kibibyte. It means 1,024 bytes. KiB, MiB, GiB, TiB and so on seem to be used a lot in the modern Linux environment, whereas Windows calls everything KB, MB, GB, TB (even though I think it calculates some things as 1024 bytes per KB, other things as 1000 bytes per KB). Strictly speaking, ``normally" KB, MB, GB etc means a factor of 1000, while JEDEC uses those terms, but applies a factor of 1024 instead. KiB, MiB etc are IEC units, which ALWAYS use a step of 1024 rather than 1000.
>>301 What exactly does that have to do with SI prefixes or ignorance of computer-related matters? Yes, it's not completely correct to say that ``ReactOS is Wine", however ReactOS does use a considerable amount of code from Wine, so it's not hard to understand her reasoning.
Name:
Cudder !cXCudderUE2017-05-20 22:51
>>299-302 I don't give a shit about those stupid prefixes. In everything I post, 1KB = 1024 bytes. 64KB = 65536 bytes (216.)
They didn't need to define so many fucking tokens: The colon-token, semicolon-token, comma-token, etc. are all just delim-token, the same one-character type! It doesn't make any sense.
Of course, my competitor went the full-retard route with ridiculous bloat, as usual:
Most slowdown comes from JavaScript and PHP server side. Relational databases are pretty slow too. Optimizing parsing and rendering won't improve much.
Name:
Anonymous2017-06-07 12:23
>>312 unless you optimize parsing, compiling (JIT) and rendering JavaScript
You can't optimize JS. It is badly designed and favors writing inefficient code.
Name:
Anonymous2017-06-07 12:43
>>314 you can optimize everything. JS is now going in the functional direction so it will probably be possible to use all the same tricks that optimizing compilers for lisp and friends use. you won't get C/C++ performance out of it but you can make it less slow
Name:
Anonymous2017-06-07 13:40
>>315 There are clear limits on what you can optimize in JS. For example, JS method calls go through a hash table, which is just overly slow. Of course you can try caching table-lookups, having dirty flags invalidating cache, but that is an exercise in futility, that won't make it observably faster.
Name:
Anonymous2017-06-07 13:44
>>316 ES6 has class-based OOP, this could be optimized down to vtables as opposed to hashes
>>320 web monkeys have to write for IE-using idiots
>>321 it's not good but it still makes the language much less painful to use. kind of like Java 8 - nobody in the right mind would say that it does FP, monads or parallelism right but even such half-assed implementations make the language less cumbersome and boilerplate'y.
You turned a single-DLL CRT that comes with Windows into a bunch of bloated ones, then exploded those into dozens of tiny files and said you made it "simpler"? What a piece of retarded bloated bullshit!!
Of course, not surprisingly that their actual reason for doing this shit is to make it harder for people to write tiny portable programs that work on every version of Windows from Win95 onward...
>>351 That is how you maintain job security: by fixing something that was working perfectly for ages. Same way they pushed SystemD.
Name:
Anonymous2018-05-28 13:13
>>351 The catch is that there are many functions that you may consider standard features of C that are not included in the libc.a library itself. For example, all the math functions that are declared in math.h are defined in a library called libm.a which is not linked by default. So if your program is using math functions and including math.h, then you need to explicitly link the math library by passing the ‘-lm’ flag. The reason for this particular separation is that mathematicians are very picky about the way their math is being computed and they may want to use their own implementation of the math functions instead of the standard implementation. If the math functions were lumped into libc.a it wouldn't be possible to do that.
Name:
Anonymous2018-05-28 13:18
I'm all dubs and no action!
Name:
Anonymous2018-05-28 18:53
>>351,355 Lack of modularity is one of libc's major defects. Users shouldn't have to link in malloc just to use sprintf, but that's exactly what the most common implementations require. Inability to define custom stream sources is another big shortcoming (why can't I printf to a circular buffer? Too bad, has to be a FILE *).
You might argue that only embedded programmers care about this, but you'd be wrong. The Plan 9 C libraries recognized and fixed many of these problems. The IO library in particular is great; too bad no one will ever use it.
>>353 Not on Windows. MSVCRT.DLL has everything. It's perfectly fine to use your own math functions, just name them differently than the standard ones, or if you must use the same names, then load them dynamically yourself.
>>356 I'm talking about dynamic linking, where it makes sense to just link to one DLL, shared in the whole system, containing all the functions.
I'm talking about dynamic linking, where it makes sense to just link to one DLL, shared in the whole system, containing all the functions.
In general you shouldn't have to link in a single mega DLL for the same reasons you shouldn't have to link a large static library. An unnecessary dependency is an unnecessary dependency; even if dynamic linking amortizes the memory cost over many applications, the problem is still there.
That being said, MSVCRT's ABI specifically is a nightmare. It's not worth it to do as Microsoft has done without commitment to maintain the exact same partition of functions between DLLs in future releases; without that everyone will just bundle the entire set of DLLs rather than deal with breakage when the boundaries move.
Given that classic libc was never really designed to be subdivided in this way, any failure here is unsurprising. musl explicitly does not try to do this because (they claim) robust implementation of the full set of standard libc APIs is impossible without much coupling. It may be that the only practical way out is to abandon the standards.
Why browsers are "bloated and sluggish by design", is a myth, and just plain wrong. I just wanted to give you this example, especially because this topic has been discussed quite a bit on this board. The only reason I mention it is because if you look closely, most of the things that are said about modern browsers are actually true. As a consequence, I am not entirely surprised to see people on the forums complaining about this in terms of performance issues but I think it would be easier if we focused less (or even just less) on browser performance than on other aspects such as compatibility, security and usability.
We have a few reasons to use a web browser but I would argue that browser performance and compatibility are both far more important than just speed. As it is, most of the browsers out there have performance problems, some of them far deeper than others. However, browsers are always improving and when we see an improvement in browser performance we tend to applaud it as being significant. WebGL is becoming a serious contender for high-performance video, and it doesn't get any faster that using direct hardware calls. With that said, let's look at some of the major browsers and see what they are doing to improve performance and performance scalability (or in my case I mean performance of all their parts in comparison to each other).
Firefox : Firefox has an awesome WebGL implementation , allowing us to render any scene using WebGL with the ease of an app in modern browsers and it seems to go a bit faster overall, with less rendering overhead than Chrome. However, performance is still not perfect, and I think I'll stick to Firefox as my default browser for future web video work since it's a bit more mature.
Chrome : Chrome has a ton of WebGL support and it is very easy to see what the performance is about on various devices and the WebGL implementation works really well with some of these devices (a tablet works fine on me). It's not even as good as Firefox for video work yet - but I think that will change.
Safari : As a browser with some nice WebGL support, Safari has a very decent performance on a modern phone, laptop or web browser, but performance is not great when working with 4k at a higher resolution. The good news is that WebGL support is quite open.
Edge: Edge is the most basic WebGL browser and the reason for this is that Chrome and Safari both have their own open WebGL driver, Open GL, built in. There is also a newer version of Edge with support for WebGL but even so, it's still far behind Firefox.
Name:
Anonymous2019-05-16 9:51
>>370 Nobody cares about webgl. Also, another new API makes browser more bloated, not less.
Name:
Anonymous2019-05-16 11:19
>>371 WebGL is the most powerful platform for online gaming since it is the most widely available and most scalable, enabling gamers to enjoy stunning gaming experiences on virtually every device available directly through the web.
While legacy platforms such as Windows or MacOS may provide a basic infrastructure, games may require further modifications at runtime to enable the full power of the OS. To support this, a full-featured cross-platform game engine is required.
Game engines may be written for either hardware or software platforms, with the latter having great advantage due to the ease of portability that allows developers to leverage over legacy platforms in order to achieve faster performance, smoother frame rates, support for advanced video modes and new features.
On a larger scale, the cost advantage of using a cross-platform engine is that developers no longer need to rely so heavily on the CPU for their game development cycle and can afford to use a low-end hardware to get a playable game in under the cost of a high-end machine.
An obvious advantage for the developer is that they still be able to target a younger audience with a higher quality experience, especially from a financial perspective.
>>370,372 Spoken like a true shill manageretard. Fuck off with that bullshit.
Name:
Anonymous2019-05-16 13:34
WebGL leverages the powerful DOM-based canvas to provide simple interactions between elements in a web context (like a web page or screen), allowing for powerful ersatz applications with minimal effort. WebGL is especially well suited for game development since a huge majority of users today (especially the mobile market) don't know the difference between a canvas and a native renderer in their browsers or games.
Name:
Anonymous2019-05-17 6:54
>>373 I thought the point of the browser was to browse the internet, no to pass outdated tests
Name:
Anonymous2019-05-17 12:08
>>375 It's literally the same thing if you been browsing with lynx
-why browsers are bloated -browsers are overengineered, and standardly so, as a means of monopolizing, by setting the cost of reimplementation too high
Name:
Cudder!cXCudderUE2020-04-17 2:30
I had a little more time to work on this recently. Mostly doing some UI stuff so it is starting to look a lot like a browser.
Adding NPAPI support is actually easier than I thought - you just create a plugin instance, give it a window to draw into and feed it data, it will take care of itself. I'll do that so you can use any plugins including Flash. Installing and enabling them on the pages you trust is your responsibility. I give you freedom. Fuckings to the authoritarian "security" dipshits who are ruining the Internet.
Why implement the plugin API? It's dead, mostly replaced by better standards.
Is this a minimal browser project, or just some weird boner for 2000s web technology with all its flaws intact?
Name:
Cudder!cXCudderUE2020-04-23 3:39
>>385 Why not? It's simple and allows viewing content that would otherwise be inaccessible from a more "modern" browser. Who gets to decide what's "better"?
The browser will be minimal but extensible.
Currently working on cleaning up/shrinking the HTML parser and fitting it into the rest of the "shell" of a UI that I have already, which only displays text and images so far. The HTML parser had its own GUI before, now it will actually go into something that looks more like a browser, althoug I really want to keep the DOM inspector. I may take the crude renderer with it too, just for lulz.
Also, 386GET! I do actually have a 386DX-33 with Win95 and a Tolkien Ring NIC to try it on once I'm done...
Did most of >>386 and the binary doubled in size from 24K to 48K... most of it is the HTML parser that's still in unoptimised C and far too close to being literal to the incredibly bloaty spec (https://html.spec.whatwg.org/multipage/parsing.html) --- but nonetheless far ahead of previous "lightweight" browsers like NetSurf.
Since fitting a CSS parser and DOM renderer in 16K is probably going to be impossible, I still need to shrink the parsee a bit.
Something is seriously retarded when Hello World with the defaults is bigger than the whole distribution of MS-DOS 2.0, and only with an insane amount of work can it be gotten down to slightly below 5KB --- when this is what can be done in only 4KB: https://www.youtube.com/watch?v=9l8a4M4afLk
Name:
Anonymous2020-05-02 6:21
>>396 mados2 is even more ancient that the DO NOT WANT meme. What is your point?
>>398 C:\Documents and Settings\konata\Desktop\test>clx hello.c C:\Documents and Settings\konata\Desktop\test>dir hello.exe Volume in drive C is FS390-105 Volume Serial Number is DEAD-BEEF
Directory of C:\Documents and Settings\konata\Desktop\test
A bunch of related shit was added to the parsing spec. Fuck Google and its attempt at taking over the Internet by constantly churning the spec and its browsers. Stop torturing the Firefox folks who are trying to keep up. Fuck this "progress" bullshit. And big fuckings to all those mentally retarded trendchasing "developer" cunts who blindly parrot their drivel and follow them into their monopolistic plans.
This is war. We need to fight these companies and their attempts to enslave us through their propaganda and fearmongering. We need to reject their herding of the sheeple. We need to bring back the document-oriented hypertext markup system and fight against the compulsory use of JS and DRM-oriented user-hostility. Make Internet Great Again!
>>401 The rest of your post is correct, too bad you fucked up with the neonazi koolaid at the end.
Array.from (document.getElementsByClassName ("trip")).forEach (e => { e.parentNode.parentNode.children [1].innerHTML = "I am a child seeking attention."; })
Name:
!Ps1ivhrO6w2020-05-04 23:25
>>402 The sentence "Make Internet Great Again" contains two suppositions:
1. We should make the internet great in the future 2. The internet has been great in the past
If you disagree with the sentence then you must disagree with either of its suppositions, or both, or else you agree with it entirely. I, for one, agree with both the suppositions, and don't feel any nazier due to it.
Name:
Anonymous2020-05-05 4:45
>>403 What would you know about how was Internet in the past? Seriously?
Name:
Anonymous2020-05-05 4:48
Do you have very old childhood memories from 2011 and already thought that Instagram wasn't great at all?
Name:
!Ps1ivhrO6w2020-05-05 11:50
>>404 I have nitid memories of non-dynamic, non ad-infested internet, yes. >>405 I was 19 years old in 2011. Edited on 05/05/2020 11:51.
>>404
I have vague memories of non-dynamic, non ad-infested internet, yes.
I have nitid memories of non-dynamic, non ad-infested internet, yes.
>>405
I was 19 years old in 2011.
The founder of libertarianism, Ayn Rand, was Jewish, and she hated racists and Nazis, same way she hated uneducated lumpenproletariat manipulated by populist dictators, like Stalin and Hitler.
You're not libertarian, Cuddder. You're a braindead conservative and just a thoughtless scumbag, who can only code very basic stuff in C. Edited on 05/05/2020 19:29.
>>407
I'm libertarian.
The founder of libertarianism, Ayn Rand, was Jewish, and she hate racists and Nazis, justlike she hated uneducated lumpenproletariat manipulated by populist dictators, like Stalin and Hitler.
The founder of libertarianism, Ayn Rand, was Jewish, and she hated racists and Nazis, same way she hated uneducated lumpenproletariat manipulated by populist dictators, like Stalin and Hitler.
You're not libertarian, Cuddder. You're a brain conservative and thoughtless scumbag, who can only code very basic stuff in C.
You're not libertarian, Cuddder. You're a braindead conservative and just a thoughtless scumbag, who can only code very basic stuff in C.
In more related news, I might have to rewrite the HTML parser/tree construction in Asm -- the compiler is far too stupid and fails to identify all the common code shared by all the state functions, which currently occupies 9.5KB+. 64K to pass Acid2 is looking a little tight... maybe 64K after packing? That feels like cheating, but it's what the demoscene does all the time...
I tried to optimise the C parser anyway to see how far I could take it, and now the binary is down to 44K, which means I took off 4K just by optimising C. The 44K binary contains:
- A GUI that looks somewhat like a browser, complete with progress/status bar - Address bar with configurable history - URL sourcing for http,https,ftp,file, and data (one thing IE6 doesn't have!) schemes (~4.5KB) - Text file viewer (~1KB) - Image file viewer (~1.3KB) - JPEG decoder (~5.4KB) - GIF decoder (~2.1KB) - HTML tokeniser/parser/tree construction (~20KB)
When I originally made the 64K goal I was not expecting to write image decoding too, but maybe I can squeeze those in there too...
The binary is 45.5KB, or in other words the very crude renderer is only 1.5KB. It just needs a CSS subsystem and implementations of "irregular" elements (e.g. interactive stuff) and Acid2 pass will not be far off. It's been almost 10 years since I started... and the Web and mainstream browsers have only gotten (much) worse.
Keep in mind that in those 10 years, Dillo and NetSurf, which I am competing against, have not managed to pass Acid2 either, and their binaries are 1-2 orders of magnitude bigger.
Name:
Anonymous2020-05-10 16:43
>>421 Now you need a time machine to sell it back when they still needed such crap. Fucking autismatic loser.
>>432 You suffer from the inability to finish a project, but that's because you make announcements before you even start. You get a false feeling of accomplishment and that's why you don't feel the need to acutally work on your projects. It's a well-known pattern. Do something and then show it, that's how it works. Don't announce something and make announcements about it for 10 fucking years. When was it when you ``started''? 2013?
>>433 Cudder gives us 7 years of entertainment for free, and you have the gall to judge her? For shame.
Name:
Cudder!cXCudderUE2020-12-01 4:21
Adding a PNG decoder increased the size to 48.5K, but that's not counting the almost 100K of zlib DLL that it now depends on... I could probably shrink the latter to a few K by rewriting it myself, but at this rate I don't think I'll make it in 64K, without rewriting even more in Asm first.
to fit an ACID2-compliant browser into 64kb, you must first create the universe
Name:
Anonymous2020-12-05 4:49
>>437 there is not point making a 64kb browser, every desktop has at least 128mb of RAM, so minimum would be 64MB. (Unless in some exotic cache-as-ram runtime case that is meant to fit in CPU cache or microcontroller memory.)
Name:
Anonymous2020-12-05 9:45
>>438 on a micro it would probably just be a text editor without edit capabilities
Name:
Cudder!cXCudderUE2020-12-06 6:02
>>437,438 Binary size, not total memory consumption --- it will try to use all your RAM if you really want it to, e.g. by opening very large pages, but initial tests already suggest it will use far less than existing browsers.
An immediate crash! 0xc0000094 (divide by zero exception.)
Two sites, neither of them webapps nor anywhere near as complex as most of what's out there, on which it fails horribly.
It also takes around 14MB of RAM just to show a blank page (mine currently takes around 3MB.)
If I can pass Acid2 -- or even attempt to show something -- in what I would consider an incredibly bloated 1MB, I will already be ahead of that one. But I am still aiming for 64K.
Currently looking into the details of CSS layout and rendering, so that I can show something better than >>421 (but at least it doesn't crash.)
Name:
Cudder!cXCudderUE2021-03-30 2:46
Acid2 pass in 64k may seem unrealistic if the binary is already close to 50k for >>421, but that's because it contains a lot of other things which aren't technically needed for Acid2 - JPG and GIF decoding, for example (but PNG is needed.)
If I strip it down to pass Acid2 in 64k, and perhaps even pack the binary (but not do something obviously cheating like a prerendered page whenever it detects that URL), does that still qualify? Is it merely a "creative interpretation of the rules", as the demoscene would say...?
Name:
Anonymous2021-03-30 4:12
maybe if u used rust
Name:
Anonymous2021-03-30 7:49
Have you thought about recruiting rms for your browser project? He has the experience and similar ideals.
Name:
Anonymous2021-03-30 7:50
Show your code cudder.
Name:
Anonymous2021-03-30 9:56
>>449 Here is his code (leaked by Nigerian hackers): org 100h mov dx,hello_world mov ah,9 int 21h mov ah,4Ch int 21h
I'll admit I've been writing a web browser myself too, in C. I've gotten not much more than the HTML tokenizer done, because it's a time-killing thing. If only there were 64KB web browser competitions...
>>456 One of the two other girls who contributed to Anonix OS had a car accident in Osaka, Japan. Cudder was requested to send nudes and subsequently nuked REchan and also ragequitted from the MhMRSATORI tripcode. The source code of the anonymously-developped by Cudder, Haruhi and the 3rd namefag girl whose name I forgot utilities is lost forever. Anonix OS had unbloated and anonymous clones of true, false, cat, echo, tail, head, wc (this one was approx. 40% complete)
1 Name: Cudder !MhMRSATORI!!L0f5nl0+ : 2008-05-10 06:41 ID:apPW4NZm This thread was merged from the former /code/ board. You can view the archive here.
Since 4chan's /prog/ has become little more than meme spamming, I decided I'd try here.
Me and a group of anons are working on a POSIX-compliant OS, which will be developed anonymously and be public domain. Currently we've started on replacing GNU's Coreutils with Anoncoreutils, and have around 1/3 of the utilities finished. This is both an experiment in anonymous software development and an attempt to eliminate the bloat that GNU's programs tend to have.
Anyone is welcome to join in with this, as long as they don't leave a name and don't mind writing code for the public domain.
I can't find the first thread related to "anon coreutils" but a repo still exists https://repo.or.cz/4chanprog.git/commit/7e86bccb1387e5e53855b96ab6d61458c3fcd33c coreutils/README [new file with mode: 0644] blob coreutils/cat.c [new file with mode: 0644] blob coreutils/echo.c [new file with mode: 0644] blob coreutils/false.c [new file with mode: 0644] blob coreutils/pwd.c [new file with mode: 0644] blob coreutils/sync.c [new file with mode: 0644] blob coreutils/true.c [new file with mode: 0644] blob coreutils/tty.c [new file with mode: 0644] blob coreutils/whoami.c [new file with mode: 0644] blob coreutils/yes.c [new file with mode: 0644] blob
Name:
Cudder!cXCudderUE2021-03-31 13:45
>>455 So have I... if only I had more time to work on it instead of IRL stuff. Thanks for finding that thread, it confirms that the web has NOT gotten better in a decade, and if anything, much worse! If you can find the rest of the threads it would make a good read for the newfags. I remember making some predictions in subsequent ones.
If you can find the rest of the threads it would make a good read for the newfags. I remember making some predictions in subsequent ones.
Yes, that was more or less the purpose. We seem to have an influx of Discord kids, who, for some reasons, are overly enthusiastic about textboards. I thought we could scare them away welcome those with a genuine interest.
One of the two other girls who contributed to Anonix OS had a car accident in Osaka, Japan. Cudder was requested to send nudes and subsequently nuked REchan and also ragequitted from the MhMRSATORI tripcode.
3 tranner attention whores working on the same project what an accomplishment
Name:
Anonymous2021-04-01 23:05
>>464 Now that Free Software is dead, Anonix is our only hope.
Firefox has indeed gotten worse, with Mozilla recently taken over by SJWs, and continues to deepthroat Google while the latter's propaganda campaign is indoctrinating more innocent developers by brainwashing them into believing that Chrome's monopoly and Chrome-only sites is good; so much that they were even able to force Microsoft to surrender.
Fuck the "modern web". Fuck this "progress" and "move the web forward" bullshit.
Instead of begging for more money, Mozilla needs to fire all its designers, retarded "diversity and inclusion" SJWs, and all the other people doing useless shit. Everyone except the hardcore developers need to fuck off. Revert all the user-hostile changes, remove the "telemetry" spyware/adware, and turn Firefox back into a completely neutral browser that obeys no one but the user. Mozilla needs to debloat itself.
...but we know that's never going to happen, so every time those fucktards make things worse, I'm motivated to go work on my browser a little more. It's currently around 50KB and can display text and images. Acid2 pass in 64K might be very difficult, and in 1MB is definitely possible, but whatever the size ends up to be, it will be a saner browser than the insanity that the web has become.