r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Red] Red language group

Kaj
6-Sep-2011
[3171]
Compiling /resources/Red/tests/empty.reds ...

*** Compiler Internal Error: Script Error : Cannot use path on none! 
value 
*** Where: build-debug-lines 
*** Near:  [records: job/debug-info/lines/records 
files: job/debug-info/lines/files 
rec-size:
]
Dockimbel
6-Sep-2011
[3172x3]
Strange...I ran the whole tests suite, as usual, without any issue 
before committing.
Simple scripts are compiling OK for Linux too.
Testing from Linux, the tests are not passing.
Andreas
6-Sep-2011
[3175x2]
hmm, nope. seems there's a bug in my debug fix
Fix pushed. Sorry for the mess.
Kaj
6-Sep-2011
[3177]
No problem, thanks
Dockimbel
6-Sep-2011
[3178]
Thanks Andreas.
Kaj
7-Sep-2011
[3179]
Can't test the new struct detection due to a new bug
Dockimbel
7-Sep-2011
[3180x2]
It will be very hard to fix if there's no way for me to reproduce 
the issue.
The code part where the compiler script breaks is not related to 
function return values, but only to function arguments code generation.
Kaj
7-Sep-2011
[3182]
It's a Heisenbug, so I'll check in the broken code
Dockimbel
7-Sep-2011
[3183x2]
I have posted debugging instructions in the ticket comments.
It might be caused by a uncaught wrong definition in your imports, 
that is messing up the imported function arguments parsing code.
Kaj
7-Sep-2011
[3185x3]
It's in Fossil now
I didn't change the imports, only the type definition
Got closer, will change the bug description
GrahamC
7-Sep-2011
[3188]
If it's heisenberg, that means it still might work some of the time?
Kaj
7-Sep-2011
[3189]
Yes, when you're not using it :-)
Dockimbel
7-Sep-2011
[3190]
Wave function collapsed, cat saved, bug fixed.
Kaj
7-Sep-2011
[3191x7]
Eh, the cat survived?
Added Hello World examples to the GTK repository
Here's the simplest:
Red/System [ ]

#include %GTK.reds

gtk-begin
gtk-view window label "Hello, Red/System GTK+ world!"
Here is how that is customarily written in other bindings in other 
languages:
Red/System [ ]

#include %GTK.reds

argc-reference: declare integer-reference!
argv-reference: declare handle-reference!
argc-reference/value: system/args-count
argv-reference/value: as-handle system/args-list

_gtk-begin argc-reference argv-reference

_window: gtk-new-window gtk-window-top-level
_label: as gtk-widget! 0

either as-logic _window [
	_label: gtk-new-label "Good riddens!"

	either as-logic _label [
		gtk-append-container  as gtk-container! _window  _label
	][
		print "Failed to create label.^/"
	]


 g-connect-signal  as-handle _window  "destroy"  as-integer :gtk-quit 
  none
	gtk-show-all _window
	gtk-do-events
][
	print "Failed to create window.^/"
]
I call it Goodbye Cruel World
Dockimbel
7-Sep-2011
[3198x2]
Very nice!
Cat: I chosed the optimistic option.
Kaj
7-Sep-2011
[3200]
:-)
Dockimbel
7-Sep-2011
[3201]
I hope you'll make a nice web page for your GTK binding once finished. 
It also deserves some docs for the dialect API.
Kaj
7-Sep-2011
[3202]
I'm not sure. People are not really supposed to use this binding, 
but the abstract cross-toolkit dialect you will make in Red
Dockimbel
7-Sep-2011
[3203]
Could 'gtk-begin be called in %GTK.reds directly?
Kaj
7-Sep-2011
[3204x2]
You mean without the callback wrapper?
Or you want to remove it from the dialect?
Dockimbel
7-Sep-2011
[3206]
I mean, instead of having to call it from every user script, it could 
be called as last expression in %GTK.reds source file directly?
Kaj
7-Sep-2011
[3207x2]
Probably. I'll feel more certain about it later on
Conversely, I'll probably move gtk-do-events out of gtk-view for 
flexibility
Dockimbel
7-Sep-2011
[3209x2]
People are not really supposed to use this binding

 It's a very nice binding that could motivate some C coders from Rebol 
 community (or outside) to take a closer look at Red/System and start 
 hacking with it. It could be a good way to attract new users.
Actually, it's the most sophisticated binding we have so far in Red/System.
Kaj
7-Sep-2011
[3211x2]
Yes, until the Red dialect is there, or when you really want all 
GTK features. But mostly, I need to be able to make GUIs as soon 
as possible myself
The new alias detection breaks the binding
Dockimbel
7-Sep-2011
[3213x2]
You mean it makes it crash?
Need to go to sleep now, will look into that tomorrow morning.
Oldes
8-Sep-2011
[3215x2]
just testing for a while... having:
	MagickGetImageWidth: "MagickGetImageWidth" [
		;{Returns the image width.}
		*wand     [wand!]
		return:  [integer!]
	]

When I do:
	width: MagickGetImageWidth *wand
	print ["image width: " width " " MagickGetImageWidth *wand]
I get:
	image width: 78 0000004E
I was expection:
	image width: 78 78
What do you think?
(but that's a detail... I'm still waiting for the decimal support)
Dockimbel
8-Sep-2011
[3217x3]
Curious bug, I will look into it.
BTW, you can use PRINT-WIDE instead to insert white spaces automatically.
Oldes: I can't reproduce the issue, I tried with the following test 
code:

	#import [
		"msvcrt.dll" cdecl [
			abs: "abs" [
				n 	[integer!]
				return: [integer!]
			]
		]
	]

	width: abs -78
	print ["image width: " width " " abs -78]

I get:
    image width: 78 78
Oldes
8-Sep-2011
[3220]
You are right, the main difference is, that I was using stdcall while 
you are using cdecl, which works as expected.