Timeline

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

50 most recent check-ins

2022-07-21
17:58
clean-up config, tracing, add todo's: Configuration: - config XML: tweak some report_rom etc configs, to restore audio/mixer/etc function ; - jam: break rule AddHaikuLibs... out of rule AddInteractiveComponents, since some lightweight scenarios only need the libs but not the rest ; - jam: move vesa_fb_drv to rule AddInteractiveComponents where it belongs, for the same reason ; - jam: use those changes to make hog-bench.run as lean as possible ; Benchmarks: - added benchmarks for normalize() in preparation for its optimization (sourced from upstream), which should be spectacular ; Leaf check-in: f41fec1ef6 user: ttcoder tags: trunk
2022-07-18
12:14
FIX window "black canvas" refresh, ADD screen resolution handling: - BWindow: stability FIX (?): removed a lock in GetDecorations(), seems deadlocks are gone now ; - BWindow: fix initial "black canvas until clicked" and "wrong initial geometry" on some windows, eg deskbar calendar, file panel, AK settings, etc (refactor code into _Adopt() and such) ; - BWindow: fix some windows appearing before their Show() method is called (e.g. file panel) ; - BWindow: fix/finish SetSizeLimits() ; - BScreen: add resolution retrieval from nitpicker, we no longer hardcode the resolution to 1024x768, since tests are starting to use (higher) native resolutions now ; Qemu TESTS: we pass: jam t8 ; jam hog-demos ; jam deskbar ; BARE METAL: we pass "jam tts-distro" on: M73 (needs specific VESA resolution) ; F2A55 (VESA same, and still no USB) ; 430 (still no USB) ; 530 (everything works) ; R61 ; check-in: 94844f66c7 user: ttcoder tags: trunk
2022-07-14
16:24
kern_shutdown() implemented, with ACPICA, invokable via newly-enabled Deskbar menu: - hai-kernel-emul: implement _kern_shutdown() by feeding a "reset" to a report_rom, which forwards it to ACPICA ; - registrar: add one-liner _kern_shutdown() call (will enable full-blown fShutdownProcess later) ; - Deskbar: enabled roster.ShutDown() call to registrar ; - Deskbar unit test: added ACPICA/registrar/etc config (enabled by Deskbar_FULL_TEST variable ) ; - Deskbar unit test: fixed main menu (was empty for lack of /system/data/deskbar/menu_entries directory) ; TESTS: one may now launch "jam hog-deskbar.emu8", open the deskbar menu, click "Shutdown", and reboot ; BARE METAL TESTS: shutdown-reset works on M73/F2A55/530/430 ; check-in: f64dfe324a user: ttcoder tags: trunk
2022-07-08
17:12
Improve config (decorations, logging, USB-HID): Improve config file to allow for simultaneous use of Haiku and Genode window decorations: - Haiku apps talk to Nitpicker directly ; - Genode apps talk to Decorator and WM, which then handles nitpicker ; - hog-demos.run: demonstrate the above by invoking Nano3D, with Genode decorations, side by side with Haiku demos using their own window decorations, yay ; Logging: - re-route some logging to terminal (when and if available), that comes in handy when testing e.g. USB-HID on bare-metal ; USB-HID: - increase ram and cap quotas where needed ; - disable all except EHCI ; Misc: - increase qemu memory to accomodate TTS distro scenarios ; BARE METAL TESTING: tested (especially) jam tts-distro.run, on T4x0 laptops and M73, USB-HID looks good now with just EHCI enabled ; check-in: 6acf9ca48c user: ttcoder tags: trunk
07:57
Tweaks for Tracker/Deskbar/desktop: - BMenu: disable menu 'triggers' (BeOS-style label underscores), in line with modern Haiku ; - BDateTimeFormat: implement date as used in detailed folder listings ; - BStringFormat: implement phrase e.g. "2 items" as used in folder footer ; - BStatable: enable GetPermissions(), using FreeBSD libc's ALLPERMS mask ; - Tracker find-panel: fix small issue in upstream, saves us an stderr warning about "resize mode/flags swapped" ; - dev_for_path(): restore upstream reliance on stat(), now that stat() sets the correct device in all cases (even for top level "/boot" path) ; check-in: 320cc91566 user: ttcoder tags: trunk
2022-06-27
17:11
Stability fixes, leaked threads/caps fixes: Fix cap leaks, and Fix bunch of locking issues, that show up in "jam t8" even with a simple test case like (new BLooper)->Run() ; Threads: implement join() and call it from thread dtor, so that we no longer leak pthreads (one capability is leaked for each thread that is not join()ed) ; make sure to not hold the lock whilst calling pthread_join(), otherwise we might deadlock ! ; that stuff is more finisky than I thought... Hoping to get it all more or less right soon ; Threads: re-organize to no longer have Haiku code running in Genode threads, particularly the "main ep" (re. pthread_self() returning non-nil, without talking of an "alien thread"); thus find_thread(NULL) is no longer broken, and likewise for BLocker which was hurting as it relies heavily on it; that fixes a bunch of errors and tripped Asserts I was getting since working on complex scenarios like Tracker : among others, had "Looper must be locked", "looperlist is not locked; proceed at great risk", "Unlocking BLocker with sem .. from wrong thread", and so on; ("View method requires owner and doesn't have one." also occured, for some reason); BMessageRunner: make the haiku code run in a "haiku" thread and not in the Genode sig-handler ; with that last bit done, we can now enable the "cannot find (p)thread" warning and not get flooded by it ; BENCHMARK: add a "basic-bench.cpp" file to exhibit that it takes several ms to do some fs operations, at least in Qemu, will need to keep an eye on that ; TESTS: jam t8 passes ; jam hog-tracker looks good, no longer leaks much ro at all ; in jam hog-demos, Pulse leaks thread/caps, requests caps after circa 9 "About-box-from-popup", but seems to no longer deadlock/lock-up now ; testing on bare metal soon ; check-in: 91124b6732 user: ttcoder tags: trunk
2022-06-23
19:32
Diagram: as suggested, add a pikchr diagram that "stacks up" Haiku components side by side with haiku-on-genode components for comparison ; also clean-up the project presentation and folder layout. check-in: 0beda65754 user: ttcoder tags: trunk
2022-06-16
18:39
Add window Decorations and client-side WM, Fix Canvas primitives : - (re-)enable client-side window manager, and beef it up, it should serve us well in the short term ; - add bare-bones client-side window decorations, they make us look good enough for making screenshots and (in tandem with CS WM) for basic window manipulations (moving, closing, pull to front, send to back) ; - fix a small off-by-one in Haiku's tab-height code ; - fix canvas.StrokeLine(), which was missing the last pixel in some cases (both in my algorithm and in Genode's :-) ; - Tracker: add a few (missed) dependancies ; TESTS: we pass the following tests in QEMU, though with stability issues when moving windows around or invoking popup->About in Pulse ; we tend to lock-up in pthread join(), and the old issue re. "haiku code called from Genode sigh" problem is more problematic now, but I hope to address it soon : jam hog-demos.emu6 jam hog-tracker.emu8 jam tts-prod check-in: 4057559dba user: ttcoder tags: trunk
2022-06-07
10:39
Tracker and Deskbar: enable their build, make their port "good enough" to be limping along ; - add Deskbar dependancies (CalendarView, etc) ; - work-around an as-yet-not-understood display bug in Deskbar (TimeView's clock is offset up for some reason) ; - add Tracker dependancies (ToolBar, DriverSettings, do_mime_update(), debug.c, parsedate.cpp, etc) ; - configure NitPicker with a rule to make Tracker's (e.g. Background) windows appear _behind_ other apps, including Deskbar's ; - work-around compat issues (no dynamic mounting, dev_t is 64bit instead of 32bit, use GetNextEntry() instead of GetNextDirents(), make notes about raw stat() calls) ; - resources are not yet implemented, so disable their asserts ; Also fix-up the broken markdown code for the indexer Diagram ; TESTS: jam tts-prod.emu8 shows Deskbar and Tracker, sans icons nor bitmaps and with occasional tripped ASSERTs related to handler/looper rel ; however, one can Get-Info, navigate folders, open the Find (query) panel, move/trash/delete item, and so on, yay ; would look better if yellow tabs decorations were implemented though ; check-in: 689c576b66 user: ttcoder tags: trunk
2022-06-02
16:50
libroot/FS fixes for Tracker's sake, and misc clean-up: FIX handling of node_ref etc in fs.cpp: - apply (hopefully) thoroughly a new Fixup_Stat() func work-around for the issue in Genode stat() "at device boundary" edge case (/boot having a different device ID than its contents, which breaks Storage Kit, node_ref, and Tracker); - fix a normalization issue (introduced long ago by my buggy optimization) (Tracker choked on it) ; - improve MT thread safety (use re-entrant readdir()) ; - improve test harness for QUICK selective testing (allow to run just some of the tests, life saver when debugging) ; - improve test harness with lots of node_ref (and related) STORAGE tests ; - improve test harness to test for LEAKS (only caps leaks for now, not memory leaks) -- this is actually part of the next upcoming commit, which will fix a thread-related leak ; - improve test for CanvasGenode (a future commit will fix line drawing) ; - improve test harness to test BFilePanel, now that libtracker works ; - add some 'pikchr' diagrams in several places as I'm falling in love with that stuff ; - clean-up misc (broker, indexer) ; TESTS: we pass: jam t8, jam hog-broker, jam hog-demos, jam deskbar (without leaks when opening menus !) ; check-in: 20b70fb141 user: ttcoder tags: trunk
2022-05-14
14:23
Broker FIX'es for robustness and flexibility: Fix server-side and client-side Broker code to make sure that write_port() calls do not get their payloads mixed up even if called concurrently from multiple threads (that regression occured recently since port writing is no longer atomic after we've split the unique RPC call in two halves to handle unlimited-length payloads) ; we now accumulate the whole payload before sending, and have one distinct payload buffer for each thread that calls us ; port writing should be robust for applications now : apps like Deskbar and Tracker can now access the Registrar port without stepping on each others toes and Broker going haywire ; Improve client-side BApplication and libroot: remove the compile-time RUN_WITHOUT_REGISTRAR define, make BApp and libroot flexible enough to handle both "with broker/registrar" and "broker-less" scenarios at runtime : when we are broker-less, report about it with a message but don't cancel app initialization ; this allows us to run hog-demos.run and tts-prod.run from the same build of HoG ; TESTS: we pass jam hog-broker.emu6 ; jam hog-demos.emu6 ; jam t8 ; jam tts-prod.emu8 ; check-in: a77dd29ffc user: ttcoder tags: trunk
2022-04-29
13:19
Registrar and AppKit: build upon the new "Broker" component to make Registrar run: BRoster: enable _InitMessenger() call, which I had commented out ; Registrar: disable most of it except the Roster part, so that it builds and runs in HoG ; That allows Deskbar, Tracker etc to register at launch, and Deskbar can access the list of (registered) running apps and list "Tracker" in its tray ; BApplication needs some more work to be commit-ready (still retains a hack re. Team() handling), will work on a clean fix for the underlying problem ; TESTS: we pass "jam tts-prod.emu8" (with the yet-uncommited hack) ; check-in: a2a13e07cc user: ttcoder tags: trunk
2022-04-25
18:19
Broker: make it work well enough to register an app in the registrar/roster (which will be commited soon) and to use a BMessenger targetted to an app signature: add client-side usage of RPC calls in Broker (class Remote also has some early non-RPC prototype code, deprecated even before this commit) ; improve server build (do not link against haiku.lib.so, we only need libc.so) ; improve server-side discovery of pipes (no longer hardcoded, so one needs only edit the run/config file to add new pipes now -- however I had to change the pipe directory layout, due to some readdir() issues) ; fix read_port_etc() so that it returns -1 (and not 0) on no-message-waiting condition -- the discrepancy was just very noticeable before, but became a deal breaker with the more advanced state of testing these days ; fix read_port_etc() to return the byte count instead of B_OK on success, for the same reason (that bug became a deal breaker with newer apps and tests) ; TESTS: we pass "jam hog-broker.emu6", "jam t8", "jam tts-prod.emu8" (though the latter sometimes shows a race condition, probably in writeport_*) ; check-in: 276daebcc3 user: ttcoder tags: trunk
2022-04-18
12:08
Locale Kit: sever the dependancy on overly complex ICU library ; we can now build this kit stand-alone, leveraging simple calls to strftime() etc ; this helps with building Tracker, and Deskbar's clock and calendar display seconds and days, hardcoded to English locale (good enough for our needs). check-in: af2965b4e0 user: ttcoder tags: trunk
2022-04-11
16:21
fossil-add Haiku R1/b1 verbatim: Registrar (only the subset of files needed for its "Roster" feature) ; will need only a few tweaks to work with Broker (added this past week). check-in: fdb6fca486 user: ttcoder tags: trunk
2022-04-10
16:20
fossil-add Broker: a Genode server that allows write_port() to work across components; includes some remed out early code, since abandoned; tested to work with Registrar and a simple test client (still have to commit the corresponding changes in libroot, client-side) check-in: 35ad585fdc user: ttcoder tags: trunk
2022-04-09
14:45
hog-services (fossil-renamed from hai-services): flush some minor clean-ups, to make way for upcoming fossil-add of "Broker" component. check-in: 75bb0b018e user: ttcoder tags: trunk
2022-03-07
17:37
fossil-add & Porting work: enable code needed to compile Deskbar/Tracker, tweak Deskbar/Tracker itself Part 1: - dev_t is 64bit on BSD, and must remain that way, so change all FindInt32's into FindInt64's ; and adapt "PRI"nt macros as well (oddly, they are duplicated in both HaikuCompat.h and StorageDefs.h) ; also need to change inodes, which are unsigned now in HoG ; - get rid of "stat_beos", we'll use plain "stat" everywhere, even in BFilePanel ; - clean-up Jamfiles ; - more to come in Part 2 ; check-in: 44f5e4ff29 user: ttcoder tags: trunk
2022-03-01
16:53
fossil-add Haiku R1/b1 verbatim (mostly): Deskbar and Tracker dependancies: interface/locale/shared/storage/support/translation kits ; Note : MergedDirectory is the instance from upstream/libroot-build, instead of from upstream/src, for compatibility reasons. check-in: cb2796c1de user: ttcoder tags: trunk
2022-02-25
16:09
fossil-add Haiku R1/b1 verbatim: kits/tracker (this clobbers/resets the premature Jamfile) check-in: 75c51db51a user: ttcoder tags: trunk
15:36
fossil-add Haiku R1/b1 verbatim: apps/deskbar check-in: aa745a4275 user: ttcoder tags: trunk
2022-02-11
20:24
Jamfile improvements, VFS 'pure' server: - now that the (still out-of-tree) NTFS driver seems to be free of libc dependancies, it may run in a 'pure' server, so change indexer/hog-people.run scenario to take advantage of that ; - the .run scenarios can now be specified with extensions such as "foo.emu6" or "foo.iso6", where "emu" automatically optimizes the build for Qemu, "iso", creates a full image, and "6" can be in the 1-9 range to define the build-level (how much of haiku-lib to create) ; - this is much cleaner than having to hardcode each new run scenario in the top jamfile ; however "jam t1" etc remain unchanged (some hardcoded rules are provided for convenience, no need to specify "hog-test.emu6") ; - clean-up and separate jam "rules" and jam "executions" (e.g. if the hog-demo scenario is defined in jamrules, some stuff might be unavailable yet at that early stage !), plus various other clean-ups, plus removed mentions of a potential libc readlink() bug, since the bug was actually in my NTFS driver code ; TESTS: - t1-t7: seems A-OK ; - ak.run: ok ; - lightning.run: ok ; - mmd.run (which will become "mmd.emu7" soon): would almost run.... except that the elusive "cannot find vfs_indexer.lib.so target" problem prevents it ; - cc6.run (AutoCast): builds and runs, yay ; check-in: 799db1f1d9 user: ttcoder tags: trunk
2022-02-01
17:00
Indexer/BQuery improvement: Import the public domain short & sweet "MatchUTF8 v1.4" pattern matcher from AGMS (thanks Alex !!). TESTS: we can now effortlessly match case insensitive queries (from e.g. Lightning) like e.g. "[pP][iI][nN][kK]*[fF][lL][oO][yY][dD]". This takes us much/most of the way to having full query parsing support (will return to it later, when time comes to focus on Lightning). check-in: 6ab6775dcc user: ttcoder tags: trunk
2022-01-27
10:43
SymLink FIXES: fix handling of symbolic links, in indexer and libroot-build, so that MMD works ; - handle EPERM, which is returned when symlinks are not supported by an FS ; - added implementation of openlink() in Indexer, but that was far from enough : - needed some extensive changes, including subclassing Genode vfs-handles (seems the trouble ran deeper than symlinks and was related to deep folder hierarchy handling in fact) ; - took me some time to figure out I needed to override queue_read() as well ; Plus: - BVolume & friends : dev_for_path() should not crash if passed a NULL path ; - Qemu optim: use ps/2 input, much faster than USB in Qemu ; TESTS: - beef up symlink and deep-folders testing ; - we now pass all jam-t7 tests, including SymLink related ones ; except the readlink() return-code test, but that seems to be a Genode libc issue (will file a ticket) ; TTS MakeMyDay was in need of all this, and now generates ProgramLog playlists ; check-in: d7bbc0062c user: ttcoder tags: trunk
2022-01-20
13:54
InterfaceKit, BWindow: fix routing of keyboard events ; (needed a particular BMessenger "token", input-server/app_server style) ; TESTS: this seems to work well, e.g. typing attributes in MakeMyDay. check-in: 8c5e3ff531 user: ttcoder tags: trunk
2022-01-17
17:27
Indexer: Bring it (close) to production grade, with the vfs_indexer.so component doing its job maintaining the index and answering queries, and BQuery and friends collecting results as needed. TODO: just need to save/load the index to disk (it's only in memory for now) for persistency ; TODO: the query predicate parser only handles one clause for now, extend it to support multi-clause predicates ; TESTING: we pass simple tests (at "jam t7" level for now, might change to t8 later) which use two ways of setting the predicate, test for findable and non-findable cases, etc. check-in: 816ddd6ecd user: ttcoder tags: trunk
2022-01-08
17:15
Indexer: this new component will allow us to support BQuery ; first steps: the 'skeleton' is mostly complete, already can snoop on attribute creation/change/deletion ; will implement storage and querying next. check-in: 388b73909b user: ttcoder tags: trunk
2021-12-29
11:21
StorageKit: XAttr support: take advantage of Genode's xattr support (ticket 4346) and Genode's VFS plug-in for NTFS (currently "vfs_fuse.lib.so" but will be renamed to "vfs_fuse-ntfs.lib.so") being introduced in ticket genode-world:193, augmented with my patch for NTFS-native xattr support... And use those to (finally) get attribute read/write support in HoG :-) Details: - unearthed some important Haiku FIXME's, e.g. two instances of upstream code allocating 10+ KB on the stack (!) ; - fs_attr_extattr.h will host the Genode ioctl opcodes, until the ticket is resolved and a proper home is found for them ; - function _kern_open_attr_dir() had mismatching header and implementation signatures, had to fix that for the code to link ; maybe upstream does not see that problem because they don't need to resolve that symbol at link time, or use the (generic) stub ? ; - add (back) handling of AHCI block device/image in Qemu ; - augment "jam t6" test level with vfs_fuse.lib.so and an NTFS test image ; TESTS: we pass all attribute tests in Qemu, yay. Next up, an attribute indexer to support BQuery (and will have to bring BFS r/o support up to date too). check-in: a0455de065 user: ttcoder tags: trunk
2021-10-29
13:06
Genode 21.08 support: - Use new LibC foldername/hash in jam files ; - Modify USB-HID usage in jam files (the monolithic all-in-one usb_drv has been retired, must now package and refer to 2 distinct components, "usb_host_drv" and "usb_hid_drv") ; - TESTING: the past few weeks I had succeeded in getting USB mouse/kbd to work on my T410 (probably with the "bios handover" flag?), will test to check for regression when going from 21.05 to 21.08, looks good so far; QEMU testing is conclusive check-in: d33a06ff8d user: ttcoder tags: new-genode-rev, trunk
2021-10-15
12:28
Build fixes: 1) all builds that rely on BDirectory (spurious 'debug' variable ref) ; 2) jam-t6 build (was not linking against BVolumeRoster) check-in: 948af80a94 user: ttcoder tags: trunk
2021-08-21
19:43
StorageKit : ADD BVolume support, FIX BDirectory etc support : HaikuBuildCompatibility.h : override FreeBSD libc's definition of dev_t (which is unsigned), make it signed ; this FIXES directory etc handling since Haiku code repeatedly checks for negative values as error reporting, and would go haywire if always positive ; BDirectory : FIX iterating over children : my initial take for filling out the inode number was incorrect (was the child's ino_t instead of parent/dir's ino_t) ; BEntry : _SetTo() no longer enforces its "traverse" parameter for now, and breaks out before calling _kern_open_parent_dir() ; this quick FIX/work-around allows create_directory() to work ; will look for a root cause later -- might be a defect in my code, but it's also possible that the original "libroot-build" code is incomplete, since it's not meant for production but only for compile-time tools ; libroot/stubs : FIX index stubs whose return value was crashing MMD ; also ADD actual (non stubbed) implementation for dev_for_path(), next_dev() and fs_stat_dev() in fs_info.c ; for now they just hardcode one "/boot" partition, which allows BVolume stuff to work ; libroot/build : fs.cpp : FIX/bridge handling of errno -- Haiku expects errno to be negative, whereas FreeBSD's libc uses positive values ; didn't re-use the upstream libroot-build tech (misc.cpp etc), seems too complex and far-reaching ; layered-tests : add lots of StorageKit testing ; only one fails at the moment ; TESTS : MakeMyDay now gets to the last (but huge) step before completing playlists, i.e. it calls BQuery ; still lots of work ahead of me, to make indexed queries actually work ; check-in: eab6a4ed11 user: ttcoder tags: trunk
16:20
fossil-add Haiku R1/b1 verbatim: libroot/fs_info.c -- for MMD and BVolume. check-in: be8bcd4340 user: ttcoder tags: trunk
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... 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: release, trunk
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: new-genode-rev, trunk
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: new-genode-rev, trunk
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: new-genode-rev, trunk
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: new-genode-rev, trunk