Hobby-hacking Eric


wxhaskell components and news

So, I made this little diagram showing the basic components of wxhaskell. It might be not entirely correct, but I hope it will be useful for anybody who wants to help out.

Also, as you might have noticed, wxhaskell is now on hackage as an experimental pre-release. Let me know if you have any trouble building it, or getting it to run sample applications. There's still a few painful bits, (1) you still have to use wxWidgets 2.6 and not the newer 2.8 [we're working on it] (2) that it assumes your wxWidgets is compiled with --enable-mediactrl (this should be relatively easy for us to fix and (3) for Linux, wxcore 0.10.2 requires that you configure wxhaskell --with-opengl (the darcs version fixes this) and (4) for Windows... well I don't know; shelarcy can build it just fine using Visual Studio, I think and the darcs version of cabal should now be happier with our Cabal files.

In other news, we're now much more disciplined about using the wiki to note problems installing wxhaskell and to propose solutions. We're also now paying closer attention to the bug tracker (triaging them), and have made it much easier for users to submit bug demonstrators (see our bugs/ directory). I hope these new habits will make us more responsive.

So we're not really ready for an official release, but we're getting closer. I'm hoping we get there sooner rather than later. I want to see more people playing with neat tools like Phooey and Autoforms, both of which are on hackage.


Mike said...


This is not working on my mac (10.4.11); I can't seem to get any version of wxwidgets to compile fully. The ./configure step works o.k. and it starts compiling just fine, but then it reaches this step and blows up.

g++ -dynamiclib -single_module -headerpad_max_install_names -o lib/libwx_macu_core- coredll_event.o coredll_fs_mem.o coredll_msgout.o coredll_utilscmn.o coredll_utilsunx.o coredll_utils.o coredll_uma.o coredll_gsockosx.o coredll_hid.o coredll_utilsexc_cf.o coredll_accel.o coredll_aga.o coredll_app.o coredll_bitmap.o coredll_bmpbuttn.o coredll_brush.o coredll_button.o coredll_checkbox.o coredll_checklst.o coredll_choice.o coredll_clipbrd.o coredll_colordlg.o coredll_colour.o coredll_combobox.o coredll_control.o coredll_cursor.o coredll_data.o coredll_dataobj.o coredll_dc.o coredll_dccg.o coredll_dcclient.o coredll_dcmemory.o coredll_dcprint.o coredll_dcscreen.o coredll_dialog.o coredll_dirdlg.o coredll_display.o coredll_dnd.o coredll_filedlg.o coredll_font.o coredll_fontdlg.o coredll_fontenum.o coredll_fontutil.o coredll_frame.o coredll_gauge.o coredll_gdiobj.o coredll_icon.o coredll_imaglist.o coredll_listbox.o coredll_mdi.o coredll_menu.o coredll_menuitem.o coredll_metafile.o coredll_minifram.o coredll_msgdlg.o coredll_notebmac.o coredll_palette.o coredll_pen.o coredll_pnghand.o coredll_printdlg.o coredll_printmac.o coredll_radiobox.o coredll_radiobut.o coredll_region.o coredll_renderer.o coredll_scrolbar.o coredll_settings.o coredll_slider.o coredll_spinbutt.o coredll_spinctrl.o coredll_statbmp.o coredll_statbox.o coredll_statbrma.o coredll_statlmac.o coredll_stattext.o coredll_tabctrl.o coredll_textctrl.o coredll_timer.o coredll_tglbtn.o coredll_toolbar.o coredll_tooltip.o coredll_toplevel.o coredll_window.o coredll_caret.o coredll_fdrepdlg.o coredll_fontdlgg.o coredll_listctrl.o coredll_prntdlgg.o coredll_statusbr.o coredll_tabg.o coredll_snglinst.o coredll_webkit.o coredll_fontdlgosx.o coredll_colordlgosx.o coredll_accesscmn.o coredll_appcmn.o coredll_artprov.o coredll_artstd.o coredll_bmpbase.o coredll_bookctrl.o coredll_choiccmn.o coredll_clipcmn.o coredll_cmdproc.o coredll_cmndata.o coredll_containr.o coredll_cshelp.o coredll_ctrlcmn.o coredll_ctrlsub.o coredll_datacmn.o coredll_dcbase.o coredll_dlgcmn.o coredll_dndcmn.o coredll_dobjcmn.o coredll_docmdi.o coredll_docview.o coredll_dpycmn.o coredll_dseldlg.o coredll_effects.o coredll_fddlgcmn.o coredll_fldlgcmn.o coredll_fontcmn.o coredll_fontmap.o coredll_framecmn.o coredll_gaugecmn.o coredll_gbsizer.o coredll_gdicmn.o coredll_geometry.o coredll_gifdecod.o coredll_helpbase.o coredll_iconbndl.o coredll_imagall.o coredll_imagbmp.o coredll_image.o coredll_imagfill.o coredll_imaggif.o coredll_imagiff.o coredll_imagjpeg.o coredll_imagpcx.o coredll_imagpng.o coredll_imagpnm.o coredll_imagtiff.o coredll_imagxpm.o coredll_layout.o coredll_lboxcmn.o coredll_matrix.o coredll_menucmn.o coredll_nbkbase.o coredll_paper.o coredll_popupcmn.o coredll_prntbase.o coredll_quantize.o coredll_radiocmn.o coredll_rendcmn.o coredll_rgncmn.o coredll_settcmn.o coredll_sizer.o coredll_statbar.o coredll_stockitem.o coredll_tbarbase.o coredll_textcmn.o coredll_timercmn.o coredll_toplvcmn.o coredll_treebase.o coredll_valgen.o coredll_validate.o coredll_valtext.o coredll_wincmn.o coredll_xpmdecod.o coredll_busyinfo.o coredll_choicdgg.o coredll_choicbkg.o coredll_dcpsg.o coredll_dirctrlg.o coredll_dragimgg.o coredll_listbkg.o coredll_logg.o coredll_numdlgg.o coredll_panelg.o coredll_progdlgg.o coredll_printps.o coredll_renderg.o coredll_scrlwing.o coredll_selstore.o coredll_spinctlg.o coredll_splitter.o coredll_textdlgg.o coredll_tipwin.o coredll_treectlg.o coredll_vlbox.o coredll_vscroll.o -Llib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System -Llib -install_name /usr/local/lib/libwx_macu_core-2.6.0.dylib -compatibility_version 4.0 -current_version 4.0 -lz -lpthread -liconv -lwxtiff-2.6 -lwxjpeg-2.6 -lwxpng-2.6 -lwxregexu-2.6 -lwxexpat-2.6 -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System -lz -lpthread -liconv -framework WebKit -lwx_base_carbonu-2.6
ld: /System/Library/Frameworks/WebKit.framework/WebKit load command 20 unknown cmd field
/usr/bin/libtool: internal link edit command failed
make: *** [lib/libwx_macu_core-] Error 1

I tried compiling the 2.8 version and got the same problem and the "ports" installation bottoms out in much the same way. Does anybody have any clue what's going on?

kowey said...

Hi Mike, unfortunately, I don't know why wxWidgets would run into such compilation issues (something to take up with them!). For what's it's worth, I used this particular set of configure options:

./configure --disable-monolithic --enable-display --enable-unicode --with-opengl --with-mac --without-odbc --enable-mediactrl

You might also try making sure your version of XCode is up to date (random superstition). Good luck! (and if this helps at all, do update the wiki)

Mike said...

Hi Kowey

Wow, lightning quick response. I do have a little idea. Could it be because there is already a pre-installed version of wxwidgets on 10.4.11? The wxwidgets site implies that that has been a problem in the past, but I'd understood from your Haskell.org post that you'd done this with 10.4.11.

kowey said...

Haha; I had _just_ come online when you posted.

I doubt that is the issue (as I myself am on 10.4.11). Not sure otherwise.

By the way, are you on PowerPC or Intel? I guess it shouldn't make too much of a difference at this stage.

If you're feeling hardy and courageous, I'd try looking at the wxWidgets mailing lists, or maybe asking for help. Surely they've come across this.

kowey said...

By the way, I'm using XCode 2.5 with

Component versions
Xcode IDE: 799.0
Xcode Core: 798.0
ToolSupport: 794.0

Mike said...

Hi Kowey

I'll snoop the wxwidgets site. It may be Xcode though. I'm running 2.2.1 with 656.0, 660.0, and 651.0 on an Intel (macbook).

kowey said...

Just a quick comment for anybody who is looking at this diagram: the darcs repository for wxhaskell now lives in http://code.haskell.org/wxhaskell