Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2021-07-25
17:59
ADD support for MakeMyDay: InterfaceKit: - enable the last BView.DrawBitmapAsync() variant that was missing ; That's it, given the previous improvements, that was the last missing piece as far as MMD is concerned ; next I'll work on Storage Kit so that MMD can actually create and edit files (playlists) for AutoCast ; too bad I'm busy IRL these days or I'd make faster progress on this... Leaf check-in: 6b11d11a2d user: ttcoder tags: trunk
2021-07-08
14:59
FIX buffer overflow regression ; ADD support for Lightning : GeCanvas: - fix an off-by-one when setting clientFrame, introduced in previous commit -- in some apps (e.g. Lightning) that draw to the very edge of their canvas, the off-by-one would result in writing outside the canvas/framebuffer ; unlike in Haiku, in Genode this kind of overflow is detected right away, yay for Genode ! ; StorageKit: - enable 3 BFilePanel stubs, used by Lightning ; Libroot: - enable kill_thread() stub, for Lightning ; check-in: 35957a7dc2 user: ttcoder tags: trunk
2021-07-06
16:40
IMPROVE painting of gradients/shades ; ADD support for ArmyKnifeTTS : Enable gradients thanks to Genode's shaded-polygon : - FillRect(gradient) now works : BButtons no longer look "flat", same for BMenuBar, we look even closer to genuine Haiku Control Look now ; - also make provisions for painting client-side (!) window decorations, might come in handy soon ; Jamrules can now be used by external app builds : - parametrize to allow out-of-tree building (when $TOP is not equal to HoG's top folder) ; - in jamrules-qemu, make auto location of binaries more robust/deterministic, otherwise it might fail and produce mysteriously non-functioning programs if the search path includes several, incompatible variants of a binary (e.g. a libc.abi and a libc.lib, masked under the same leafname) ; - plus, in jamrules-qemu-hog, add remainder of my WIP window-manager attempt (dormant for now) ; Headers : - move some headers to public-access for use by apps ; Libroot : - enable stubs for BFS's indexing functions ; - also don't use exit() as it crashes for some reason ; Kits : - enable StrokePolygon/FillPolygon() ; - enable a couple more methods (stubs) in FilePanel.h ; check-in: e616ca26b7 user: ttcoder tags: trunk
2021-07-05
11:03
fossil-add Haiku R1/b1 verbatim: BListView, BPolygon & friends -- those are the ones needed to build ArmyKnifeTTS for HoG. check-in: fa1ff8328d user: ttcoder tags: trunk
2021-06-25
16:36
BWindow: FIX painting regression, FIX input-evens window coords: - Painting: trigger a BWindow repaint (through "dirtyRect") whenever Show() is called out of hiding, not just from initial Ctor ; indeed BMenu re-uses the same window to display successive menus with Hide()/Show(), which gave us trouble in e.g. Mandelbrot's pull down menus ; - Input events: move more (most) of the action from the Genode sigh to the pthread ; - That allows us to resume calling BWindow.MoveTo() etc directly, as we were doing before, which fixes the mouse coordinates bug in HAS_MICRO_WINMANAGER mode ; - Didn't re-test window_layout & wm, but I assume they are still affected by the bug ; I'll use my micro-wm for a while, but will need to attend to WMs sooner or later and find a more general bug-fix ; TESTS: - oddly, Mandelbrot seems to draw 15 or 20 times faster (in qemu) than before, not sure of the reason or of the commit when that changed ; maybe it's after switching back to "beta1" (instead of haiku-beta2) Mandelbrot code in my local workspace ? Anyway, good to have ; check-in: 68b23231dc user: ttcoder tags: trunk
2021-06-24
19:27
FIX build issues on Linux, IMPROVE tests: - Jamrules and jam/*: configure toolchain and lib-gcc and stdcxx for gcc8, so that HoG gets easily compiled for "sculpt-21.03" out of the box (will update to gcc10 once SculptOS gets past 21.05) ; Oddly, one of the three libgcc references could be simply commented out, instead of updated ; Suppress warnings that appear in gcc8 re. deprecated register keyword ; Comment out a #define in SupportKit that clashes with BSD libc, seems quite good enough ; Remove qemu parameter re. physical disk, a left-over from my old experiments on BFS, oops ; Move some stray "#" chars out of the way since they confuse some variants of Jam and make it produce corrupt XML config files ; - Tests: use correct VFS syntax for Ram FS in support of unit tests, and use it to test B_CREATE_FILE ; check-in: 1940e233b1 user: ttcoder tags: trunk
2021-06-23
13:57
More Linux build fixes, some related to Linux's FTJam vs. Haiku's jam, some related to nasty overlooks coming from me: - top-level Jamfile: detect when Jam does not implement JAM_TARGETS (e.g. FTJam), tweak the settings we can, and verbosely advise the user on setting what we cannot set ourselves (i.e. don't use "jam t1", use "jam hog-test.run" instead) - rem out "SubInclude bfs-on-genode" in case it still causes trouble after that change, since we don't implement it (yet) for recent Genode anyway ; - Jamrules: add a configuration variable "VersionLibGCC" : I had overlooked a couple hardcoded paths to GCC6.3.0's libgcc, oops ; make it default to 8.3.0 ; - Jamrules: adjusted "-std=gnu++17" (instead of ++11), otherwise we can't compile repos/base/include/timer/timeout.h (didn't see that because that file is among those I had to "patch" to build Genode with GCC6) ; - Jamrules: seems GCC6 and GCC10 use different stdcxx include paths, so added the one needed by GCC10 side by side with the old one ; Careful if you have local changes, Fossil will probably trigger a 3-way merge when you "fossil up", might make sense to start off fresh with "fossil clone" instead of pulling changes. @Norman : if we end up doing another iteration, let's maybe agree on a default value to the "GenodeRepos" variable that is convenient for you, so that you don't need to adjust that variable when you "fossil clone" the repo... You've been through enough hassle already :-) check-in: 80ccef2fea user: ttcoder tags: trunk
2021-06-22
19:18
Also rem out unused "nit_focus" for good measure (has the previous commit made it to chiselapp BTW ?) check-in: f7be40efb9 user: ttcoder tags: trunk
19:10
jamrules-qemu-hog: rem out the "nitpicker.config" ROM component, as it crashes the build process in some cases (at least FT-Jam on Ubuntu) and prevents others from replicating my build. Seems to not matter anyway, I can still run "jam t1" successfully with this commit applied. check-in: f11cffc0ef user: ttcoder tags: trunk
2021-06-14
19:57
Enable Mandelbrot and Clock; jam feels a little... imperfect, at times. check-in: 0ff682ea2b user: ttcoder tags: trunk, release
19:46
Fix build (misplaced antislash, and misconfigured rem-out). check-in: 0fcb0e6c82 user: ttcoder tags: trunk
19:26
Window Manager: - early attempt, remed out as it's unsuccesful for now (the BWindow does not appear on screen, it only does so if I re-attach it to "nitpicker" instead of "wm", will investigate) ; Fix build: turns out there were problems all this time that I was not aware of, due to my in-situ builds; now that I tried a "from scratch" build I became aware of these: - the "t1" build was missing the defaultfont-tff ; - one of the haiku.lib.so paths was hardcoded to my local FS, oops ; Will reach out soon. check-in: 39021db97d user: ttcoder tags: trunk
10:47
Fix-up support for Genode 20.02 and up: - implement Haiku threads based on POSIX pthreads instead of using Genode::Thread directly, otherwise we get trouble from Haiku code as soon as it uses libc stuff (even very indirectly) such as errno, or as soon as a a thread attempts to locate "self" ; this removes the need to patch Genode : we now run on "stock" Genode ; _WindowNitpickerPriv : stop using Haiku BLocker (which relies on Haiku's find_thread/self) in the Genode signal handler, use Genode::Mutex instead ; a thread that is Genode-only can not (any more) rely on find_thread() wizardry and such. - micro-window-manager: change window geometry with Nitpicker directly, instead of calling Haiku code, for the same reason as above ; although micro-WM is being phased out anyway ; - misc clean-ups - USB HID: try to use "bios hand-off", though seems to make no difference on my T410 TODO/FIXME: class BWindow has a copy of the (nitpicker) geometry, which previously was kept in sync by the micro-WM until now ; need a new way to keep it in sync, so that mouse interaction continues to work correctly ; I'm going to (at last, after 2+ years) add a proper WM to my test scenarios to investigate check-in: 0afd71063f user: ttcoder tags: trunk
2021-06-10
16:00
Genode 21.05 support: - Jamrules: the toolchain now lives at /usr/local/..../21.05 (not 19.05 any more) ; - contrib: new jpeg and stdcxx libs so adjust "contrib" folder paths (also one change in Jamrules, for stdcxx headers). I'm now all caught up with Genode's latest and greatest. Will commit my "pthread" fix soon, and then resume talks. TESTING: demos, AutoCast, all seems fine in qemu and bare metal ; my old T410 still only has ps/2 mouse input though, maybe a regression in the USB driver ? or maybe using "BIOS handover" would help ? check-in: 55b1abfa99 user: ttcoder tags: trunk, new-genode-rev
2021-06-08
20:03
Genode 21.02 support: - seems "core-nova.o" is now named "core-nova.a" ; - re-enabled event_filter -- does not restore xray mode etc but should restore full mouse support ; - fixed routing mishap in config of platform_drv which was tolerated until now, but would now make it fail ; Off-repo notes: - updated terminal_log stuff for AC (connect directly to nitpicker, no longer use gui_fb) ; - regression of sorts: when set for an initial size of 800x600, the terminal 1) gets to full-screen size, on both qemu in bare metal (mildly annoying) and 2) gets in front of of the AC window (only on bare metal, not qemu), making it inaccessible ; both issues will be solved once I use a proper WindowManager probably ? - gcc6 adventures: gcc couldn't find the "this" pointer in a lambda inside platform_drv, so had to create a local var with a copy of "this" and have it captured by the lambda ; easy peasy once I understood the situation ; check-in: de16e88551 user: ttcoder tags: trunk, new-genode-rev
2021-06-07
15:31
Genode 20.11 support: - the audio driver is now named "pci_audio_drv" (instead of "audio_drv") ; - add support for USB-OHCI, might help with my T410 among others ; (or maybe the problem is due to the T410 using ps2 primarily, at the exclusion of USB, due to event_filter being remed out ?) ; - also did some heavy work dealing with pthreads and the like, but will commit only later check-in: c2093165a4 user: ttcoder tags: trunk, new-genode-rev
2021-06-03
19:29
"FIX": mouse input works again (USB for sure, tested bare-metal) : remed out event_filter, and added focus="click" nitpicker domain policy ; BUG: still no "xray" mode, still no focus indication in status bar ; but I can limp along to further Genode upgrades at least ; fossil-add Haiku R1/b1 verbatim: tracker/FilePanel.cpp (for AC) check-in: 431e53fc23 user: ttcoder tags: trunk
2021-06-02
19:08
Genode 20.08 support: - gui: apply new "Gui::" namespace in C++, tweak run files and so on ; the Genode release notes are of great help here ; - libroot and kinda-kernel: use Mutex instead of Lock ; - stdcxx: dodged a new update ; took (silly-)me a while to figure out I have to revert not only contrib/ but also repos/libports/stdcxx stuff! ; - grub2: got updated, so refactor my run files to handle the change cleanly ; - libc: git messed up bad (after doig "git checkout.."), took me a while to realize that the tons of errors I was seeing were due to the awful mess if made of the source tree ; apparently it got confused because the commit entailed moving files around ; had to start off clean with a "git clone" instead, sigh, par for the course with git ; BUG/REGRESSION: mouse/keyboard input via USB does not work ([init -> event_filter] Warning: no policy defined for label 'usb_drv -> ') ; only ps/2 input works; I must have missed (and messed) something, will look into it. check-in: d5036882ed user: ttcoder tags: trunk, new-genode-rev
2021-05-31
14:29
Genode 20.05 support: - Kinda-kernel: class Genode::Semaphore is now a NonCopyable, so tweak code to no longer use copy ctor/operator= (i.e. use std::map on pointers to structures, not directly on structure instances) ; - Jamrules: link against "ldso_so_support.lib.a" (new name, instead of "ldso-startup.lib.a") ; - Nitpicker: node type "configfile" is deprecated/obsoleted in 20.05, replace with config "ROM" instead ; (otherwise we get errors like "[init -> nitpicker] Warning: no policy defined for label 'global_keys_handler -> input'" ) ; TESTED up until now on qemu and real hardware. check-in: 885b477103 user: ttcoder tags: trunk, new-genode-rev
2021-05-28
19:39
Genode 20.02 support: The pthread/libc "warning" from 19.11 has turned into a crash of Haiku apps. I'll rewrite my code to use pthreads later on, but for now a stop-gap is a one-line "patch" of Genode. Added an assertion in start-up code, to check for the presence of the patch, make sure that pthread_self() does not return NULL indeed. The patch means "errno" is not set correctly, but we don't depend on it yet in the current scenarios. TESTS: seeing no regression with updated HDA driver, but no progression on AMD system either -- probably needs some tweaking, will look into it soon. check-in: f962414507 user: ttcoder tags: trunk, new-genode-rev
17:09
Genode 19.11 support: Initially got the "rom error" at runtime again, so adusted my jam files some more, to be a closer match to Genode's build system (i.e. generalize the "abi" stuff, similar to how we link against "libc.abi.so" instead of "lib.lib.so", and seemingly crucially, we now "cd" to the folder so that the linker can be provided with the very minimal lib filenames). Applications work as usual, except that at runtime I'm getting messages like this one a lot with the libc update: "[init -> Clock] Error: pthread_self() called from alien thread named 'main BApplication thread'..". Seems to cause no harm though (update: trouble came later, in 20.02). Likely related to this: https://github.com/genodelabs/genode/commit/2d55ac7174d0385649a6fa4d9bda2ab4d4cbdd74 -- "Note, any call to libc code from a non-pthread (beside the first entrypoint) is not supported." check-in: b5c37e7227 user: ttcoder tags: trunk, new-genode-rev
2021-05-24
16:08
Genode 19.08 support: - it's still possible to compile Genode with gcc6, with an additional tweak: need to rem out "Hex_range.." in libports/src/lib/libc/task.cc ; - libc raises a link/relocation error (relocation R_X86_64_PC32 against symbol `__libc_sigprocmask' can not be used) : need to edit contrib/libc-9252999ee23cfb811e707887ef05bf1283a41597/src/lib/libc/lib/libc/amd64/gen/sigsetjmp.S and apply this patch, which is similar to Genode's "cdefs-no-hidden.patch": - delete call __libc_sigprocmask - add call PIC_PLT(CNAME(_sigprocmask)) TESTED from t1 to t7 test levels, and AutoCast run scenario. check-in: 2737f3ffd0 user: ttcoder tags: trunk, new-genode-rev
09:06
Genode 19.02 and 19.05 support (might as well squash both in one commit): 19.02: changes timer driver's build location, but that has little to no bearing on jamfiles or on the wiki ; 19.05: adapt jamfiles for renaming of VESA FrameBuffer driver: fb_drv -> vesa_fb_drv ; adapt to new version of libav and zlib ; interestingly, 19.05 is the rev that switches from Gcc6 to Gcc8, but it's possible to keep compiling with Gcc6, at least this very version, so long as one keeps using the previous stdcxx (using a symlink hack), by passing an empty string to Session_label ctor (include/base/session_label.h, base/trace/types.h, etc), by remming out -Wno-error=implicit-fallthrough (gcc6 does not know that switch, unlike gcc8), and by disabling some "fatal" warnings concerning fallthrough (-Wno-attributes) ; added the latter to Jamrules as it's just the one harmless line, but as to the rest of it, I won't pollute the wiki with (more extensive) Haiku-only hacks only I have to use ; check-in: 5aeb4d01bc user: ttcoder tags: trunk, new-genode-rev
2021-05-22
15:28
Genode 18.11 : we'll consider this commit as the reference Genode 18.11 one, before upgrading in the next few days ; Libroot-alternate: enable build ; this implements a number of 'syscalls', which no longer need to be stubbed out, so adjust stub list (and make it subject to "layering") ; NodeRef.h seems to be CR-LF in the haiku source tree, adjust to unix line feeds ; add thread-safety guards in critical places to protect access to shared (static) vars, since we'll use this "alternate" libroot as an actual libroot in a live, multi-threaded OS ; Build jamfiles: factor out "contrib" package version numbers (and depot versions) to an easy-to-maintain auxiliary Jamrules include ; will come in handy when upgrading to Genode 19.x ; link against "ABI" of libc, as linking directly against the "LIB.so" will no longer work in 19.05 ; remove a stray call to "strip" (the host's toolchain, not the Genode toolchain !) that's been there for months, piggy-backing on top of genode-x86-objcopy ... seems it was causing no harm, but still ; add an undocumented "layer zero", to deal with particularly difficult build situations where even linking against libc is undesirable ; add BMediaFile in layer 7 ; InterfaceKit: fix initial painting of BWindow, which would remain previously black in some cases ; MediaKit: add jamfile (but not cpp's for now) ; check-in: 7e2c0234c7 user: ttcoder tags: trunk, new-genode-rev
2021-05-20
07:52
LIBROOT.so: fossil-add Haiku R1/b1 verbatim: most of Haiku's "build" libroot, i.e. the alternate variant of their 'glue' library, used when cross building Haiku tools on a foreign platform like Linux and used for accessing file by "entry_refs" (which don't exist on Linux and BSD, where files are accessed by path or by file descriptor only) : the bookkeeping done by fs.cpp on entry_refs and file descriptors and file paths seems to be exactly what we need in Genode/libc/freebsd, and works well in my (still limited) testing ; libroot-build also provides some compatibility for extended attributes, but I'll get to that way down the road, now now ; POSIX: fossil-add *non* verbatim (modified) copies of a subset of Haiku R1/b1 posix headers ; they're meant to override/supplement libc ones, or (importantly) provide haiku-specific requirements like INT8_MAX etc ; not quite sure what I'm doing here yet, but this folder has been that way for months without causing trouble so dang it -- let's commit "as is" for now, in a folder clearly marked as "temporary/override" and we'll revise later as necessary ; With all this, replicating HoG builds should now be possible for anyone cloning this repository and following build instructions ; I now need to upgrade the code to use Genode's latest and greatest ; check-in: 0a472daca7 user: ttcoder tags: trunk
2021-05-17
19:50
InterfaceKit: "fix" transparency in AC, with a hack in BBox ; fix excessive flickering by moving Invalidate() calls around ; Jam-build-system: lay some groundwork for cleanly building against Genode 19.x (instead of 18.11 currently); fix binary stripping; move specialized headers (jpeg, texture etc) from global scope to local scope ; implement creation for "grub.cfg" file (looks like for a couple years I was unknowingly just using a copy-pasted-by-hand file instead of a build-system-generated one) ; Layer 7: almost finalized now (add missing bits from App Kit, Mail Kit etc), only missing libroot now ; Deleted: old "mandelbrot" app skeleton dir, since apps are located in misc-apps now ; check-in: a5e75a36f9 user: ttcoder tags: trunk
2021-05-15
14:30
Layer 7: StorageKit: more "porting" for AC (NodeMonitor, BQuery) ; CanvasGe: - DrawString() now handles strings that are not null-terminated but length-specified, as used by BTextView ; this fixes the awful looking about boxes and text fields ; - DrawBitmap() now clips (chops) width and height correctly ; this fixes clobbering of BDragger in Clock ; Build Jamfiles: fix audio output ; the mixer was missing, and turns out it was also a case of bad configuration of "report_rom": consolidate both report_roms into one, and make sure they report ACPI correctly... AC plays audio now, like it used to in my private branch, yay ; Optimize disk space some more, using symlinks instead of redundant file copies ; check-in: cd641f15c2 user: ttcoder tags: trunk
2021-05-12
13:40
Layer 7 porting effort (features, big and small, needed by A.C.) : - InterfaceKit: activate BOptionPopUp, BSplitView, BStatusBar, gradients and others needed by AC -- they didn't give me any trouble ; however, stub out BPicture for now -- implementing AC's Pie Menu will probably be better done with Genode's true transparency rather than my hacks anyway ; - Locale Kit: stub out much of BUnicodeChar ; not sure where "unicode/uchar.h" can be found, maybe it's in the packages downloaded during the Haiku build process, and not in the Haiku source tree itself ? ; - Net Kit: enable BUrl ; rem out SSL and in_addr stuff for now ; - Text-encoding kit: rem out iconv lib dependancy (needed by convert_encoding()) for now ; - Storage Kit: enable BVolumeRoster, BQuery.... ; stub out BFilePanel for now -- we're nowhere near porting Tracker yet ; - Support Kit: implement swap_float() with an expedient but portable 2-liner ; - App-priv: deps of BServer, used by AC ; - Interface-priv: stub out BWindowStack, no SAT feature in NitPicker ; - libroot : add debugger_assert() impl ; add more stubs for things that can wait -- query support will have to comer sooner or later though ; - tests : we don't pass even basic Storage Kit tests (since libroot support is stubbed out), will tackle that next, needed by AC. check-in: a611367d16 user: ttcoder tags: trunk
2021-05-11
17:16
Dang, a mistake was bound to occur some day -- THIS is the "original verbatim Haiku R1/beta1" state of WindowStack.cpp... check-in: ad5b2d44ef user: ttcoder tags: trunk
17:12
fossil-add Haiku R1/b1 verbatim: more AC dependancies (various kits and headers) ; still missing : Media Kit cpp's. check-in: d0bd77f7c4 user: ttcoder tags: trunk
2021-05-03
19:43
fossil-add Haiku R1/b1 verbatim: about a third of the dependancies of AutoCast, within the network, mail and textencoding kits. check-in: 5dc2d90f69 user: ttcoder tags: trunk
2021-04-30
16:54
LEAK FIX in kinda-kernel: fix leak of Genode::Thread object (which leaks heap and a few capabilities) ; when a thread completes on its own, it now marks itself as "zombie", and is cleaned up shortly afterwards. OPTIM in Interface Kit: make painting/Invalidate much faster (less wasteful) ; maintain a "dirty rect" for the window, set it in Invalidate(), clear it after painting, and make sure painting occurs only within said rect's bounds; Canvas.SetOriginAndClipping() now takes two distinct parameters, as the view clipping/dirty rect might be separated from the view origin ; the work-around in Clock is now to call Invalidate(). TESTED on desktop, looks good. Sending an ISO to Dane tonight, but will continue committing this week's past changes, over the next few days. check-in: 86f65ae5f7 user: ttcoder tags: trunk, release
2021-04-22
15:59
fossil-add Haiku R1/b1 verbatim: RosterPrivate.cpp Also, temporarily remove Vera.ttf from the ISO image, until we fix issues ; rise memory quota to 32 MB since 20 MB might not be enough for Mandelbrot when it's used for a while. check-in: 877386b6c0 user: ttcoder tags: trunk
2021-04-20
09:55
BFont: add support for TrueType font by linking against ttf_font.lib.a, which allows to draw text with full-fledged Vera.ttf instead of trivial-fonts ; remed out for now, as this seems instable (e.g. when painting Mandelbrot menus). BApplication: call InitBeRoster(), so that we don't crash on be_roster calls ; normally this is called by launch_daemon instead, but we don't have a launch daemon in HoG ; this fixes the crash-on-quit bug (as tested with "jam t6") and I think this is also the reason why Pulse "mini-mode" works fine now. kinda-kernel: actually use the port-closing and get-port-info code introduced in the previous commit ; tweak wait_for_thread() so that it makes sure the waited-on thread is actually running (this is a Be'ism apparently, other OS'es require you to start the thread by hand ?). build/integration: add status_bar to image ; add Vera.ttf to image ; add usb_drv to image ; enable USB simulation in qemu ; TODO : need to clean all that up and make it conditional on compile-time flags and stuff. sys-libroot: tighten the screws on stubs ; on those few that remain, make them all deterministic. Pulse: patch it to allow it to run even without a file-system ; it previously might (or might not) run correctly, because the FS layer was non-deterministic ; now that everything returns B_ERROR, Pulse deterministically fails to display the window correctly, unless patched. check-in: 563d0edbac user: ttcoder tags: trunk
2021-04-14
15:54
InterfaceKit: move the BView.GetMouse() back-end from BWindow to BApplication, where it can be accessed globally : all windows/views need to share the same mouse position data, to work-around Genode's privacy enforcement, as some (admittedly cheesy) InterfaceKit functions need to have a global view of the pointer, wherever it is ; especially BMenu.Track(). Mandelbrot: found the cause of the crash -- BView does send B_VIEW_RESIZED to itself, and receives it correctly, but too late, hence FrameResized() gets called too late to instantiate the bitmap, Pulse() is called first for some reason, and crashes on NULL bitmap ; I'll look into hacking BMessageRunner/Pulse to behave like Haiku later, but for now add a one-line test to work-around the NULL crash. Jam-build: include Mandelbrot, now that it works 99% ; remove "-1" priority modifier for input_filter and set it back to 0, otherwise it would sometimes result in a mouse pointer lock-up ; especially visible with CPU-hungry Mandelbrot. kinda_kernel: implement port closing (important on looper shutdown, to allow the flow of messages to dry up and the looper to quit cleanly/at-all) and port deletion (no more leaking resources/caps) ; some tentative "zombie thread" handling, but it seems I was wrong to think Genode lacked handling of that case : waiting on a dead/finished thread actually works as expected I think ; still need to figure out deletion of my own ThreadWithFunc structure though. sys-libroot: add a proper (deterministic) stub for _kern_cpu_enabled(), otherwise it might return random values and Pulse's CPU buttons would flicker on and off. TESTS: tested on bare metal -- Clock, Pulse and Mandelbrot are satisfying, but check "mini-mode" in Pulse and rendering races in Mandelbrot. check-in: 2b47b49b0a user: ttcoder tags: trunk
2021-04-08
11:08
BBitmap/BWindow/Canvas: implement the draw-inside-an-offscreen-BBitmap code paths -- had to change the BWindow private API a bit, but since we're aiming at source compatibility (API, not ABI) that should have no impact. misc-apps/clock: Clock unfortunately uses out-of-band drawing, so not much choice at this stage except to patch it with an UpdateIfNeeded() call ; also patch for missing bitmap, though rsrc bitmaps should be implemented later on ; build jamfiles: enable RTC ; Clock now shows "ticking" needles ; Kinda-kernel: early clean-ups and improvements, more to come. check-in: e10879462b user: ttcoder tags: trunk
2021-04-01
18:11
BFont: implement by accessing a global font, moved from Canvas to BApplication, making font accessors "good enough" to properly display Pulse, its pop-up menus, its settings window etc with correct horiz and vert text centering ; BCatalog.GetString(): fix the returned label (this fixes the display of BColorControl red/green/blue labels) ; layers test: extend with "kernel" testing (threads) and a bit of InterfaceKit testing (BWindow...) ; check-in: aef5bf8576 user: ttcoder tags: trunk
2021-03-31
18:18
Layer 1: odds and ends build fixes ; fix linking of "jam t1" build (wrongly composed layers) ; add notes for "stage 9" far future, for if/when I get around to finalizing kits. check-in: 591949a0c2 user: ttcoder tags: trunk
2021-03-30
18:17
AppKit and InterfaceKit: supposedly the last (?) commit for a bit -- mostly porting, with a couple bugfixes: - BMessage: sever the dependancy on KMessage, and simplify some troublesome optimizations ; - BMessageRunner: add SetInterval() and SetCount() implementation ; - BWindow: FIX resource leak (leaked capabilities on BWindow destruction) ; check-in: b333ea01d7 user: ttcoder tags: trunk
10:40
Layer 6+: almost there ; - finish off build tweaks and source tweaks, for all kits and libs except for App and Interface kits. - Add target for test-level six ("jam t6") to master Jamfile. - Add target "hog-demos.run" to master Jamfile, which allows to build and run Pulse etc in qemu. - Fix "jam clean", which was not cleaning up everything in every layer. check-in: 3fc48b35de user: ttcoder tags: trunk
2021-03-26
11:46
Build system clean-ups and completion: - rename run scenario from "tts-demos" to "hog-demos" (although loosely associated to TTS, this project has its own nickname, so let's use it) ; - make audio components optional, so that non-audio-using builds can be smaller/faster ; - make sure the "config" file is always up-to-date, for the bootable image ; - enable some libroot stubs so that e.g. the StorageKit can build ; check-in: 7c1d475698 user: ttcoder tags: trunk
10:41
fossil-add Haiku R1/b1 verbatim: a couple files from Haiku's stubbing-out and "bootstrapping" sources, will be put to good use for our own stubbing. check-in: 18f3aabadb user: ttcoder tags: trunk
2021-03-25
14:09
Build basics: make the bare minimum changes needed to build "jam t1" test scenario: - solve clash with BSD's struct sockaddr_storage ; - solve clash between Errors.h and BSD's errno.h ; - sever dependancy on KMessage ; - enable syscalls, but only the minimum we need in t1 scenario. check-in: f15cc695a2 user: ttcoder tags: trunk
11:45
fossil-add Haiku R1/b1 verbatim: build headers, and odds and ends in libroot and libicon. check-in: cd48fcef2a user: ttcoder tags: trunk
2021-03-22
17:30
ApplicationKit: prune deps we don't want/don't have yet, in app (sans BMessage, which I'll clean up later) and in app-private: - BApplication: enable RUN_WITHOUT_APP_SERVER etc pre existing defines: add the .Env() genode env accessor, key to our porting effort; still TODO: Resources etc. - BClipboard: enable RUN_WITHOUT_REGISTRAR define. - BRoster: not much we can preserve at all, without the actual roster 'daemon'. - Also in app-private: - comment out port link to app_server, which we don't use. - comment out commo to launch_daemon, which we don't use. - comment out MessageAdapter.cpp's BeOS R5 compatibility (we don't care about that) and Kmessage stuff (those are used for commo to registrar etc, which we don't have). - stub out BRoster.BPrivate.SendTo(), saving us a good deal of upstream tweaks (ok to stub since we don't have a roster ATM). Jamrules: use correct header files layout; use HaikuBuildCompatibility.h; prepare to clean up. check-in: 737256c6f3 user: ttcoder tags: trunk
2021-03-18
17:39
InterfaceKit: port it to use Genode's nitpicker instead of Haiku's app_server: - BBitmap: use a malloc()ed buffer (leverage pre-existing code, mostly) - ColorConv and InterfaceDefs: hardcode values instead of relying on remote values - BFont: some prepping for using local (instead of server-side) font metrics, but stubbed out for now. - BMenu: hardcode menu look&feel preferences instead of relying on system preferences. - BMenuField: small tweak for FreeBSD libc's strdup(). - BScreen: hardcode screen dimensions for now, since they're hardcoded in the .run file as well ; stub-out/hardcode the rest just enough to keep BColorControl etc happy. - BScrollBar: small tweak for FreeBSD libc's isinf(), and hardcode scroll arrows looks instead of relying on existing system preferences. - BView: painting is done by CanvasGenode instead of app_server ; no need to maintain a copy of our state in a "shadow" view server-side, since it's just us, client-side, now ; carefully delimitate methods which are not implemented yet, for future reference. - BWindow: geometry changes are routed to nitpicker geometry instead of app_server ; event messaging tweak : we don't use the view "token" identifier mechanism, which requires a bit of cooperating tweaks in BWindow so as to find view by their coordinates instead. Add _WindowNitpickerPriv.cpp, which sort-of replaces Haiku's input_server (just getting started on that). This makes the I.Kit good enough to display the Pulse demo app, open the right-click menu, open the Settings window etc. check-in: 3077daf47e user: ttcoder tags: trunk
2021-03-16
18:39
fossil-add Haiku R1/b1 verbatim: the last (?) bit of Interface Kit private code, and an oddball : the "Icon" library (move IconUtils.cpp to its proper place). check-in: b200ff3a82 user: ttcoder tags: trunk
2021-03-15
09:27
fossil-add Haiku R1/b1 verbatim: the BView and BWindow biggies (plus headers etc). check-in: 5ed4072ffb user: ttcoder tags: trunk
2021-03-08
17:31
fossil-add Haiku R1/b1 verbatim: miscellaneous missing headers in locale/support kits; add stubbing for libroot.so, in a temp subfolder since this will get overhauled in a later phase. check-in: 78717d01d2 user: ttcoder tags: trunk
2021-03-03
17:50
fossil-add Haiku R1/b1 verbatim: miscellaneous kit and kit-private headers. check-in: c2913cf6c4 user: ttcoder tags: trunk