• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp4382
r3wp44224
total:48606

results window for this page: [start: 47201 end: 47300]

world-name: r3wp

Group: !REBOL2 Releases ... Discuss 2.x releases [web-public]
Pekr:
9-May-2011
Oldes - according to his mendoradio blog, he still is http://mendoradio.wordpress.com/
 .... noone knows though, when and if ever his new linux related 
job ends, and what does it mean for the REBOL future ...
Robert:
9-May-2011
Legacy code. Our products are R2 based and I want to use the same 
extensions. At the moment I have to handle code differences on the 
C side which I would like to avoid.
Kaj:
9-May-2011
What you would be developing is already in R3, so It's a lot simpler 
to just interface R2 and R3. Probably the most straightforward option 
for that is 0MQ
BrianH:
9-May-2011
To integrate the extension interface into R2 would be a huge task, 
and I'm not quite sure how to get around the lack of extendable objects 
(to build the module system on, since extensions are integrated with 
the module system). Adding the handle! type would be easy; adding 
the command! type would be a bit harder.
BrianH:
9-May-2011
It would be rather difficult to fake the command! type if you are 
doing the library method, but you could use a similar method to that 
used to fake the closure! type. I am not sure how much you could 
replicate the value marshalling, and callbacks would likely be impossible.
Robert:
10-May-2011
To be more concrete: I mean a lib interface that uses the INIT, CALL, 
QUIT structure on the C side. Uses the access to parameters via frames 
and same return concept. And callbacks like done in R3.
Group: Red ... Red language group [web-public]
BrianH:
20-Apr-2011
And then back to a handle! if it's going to be passed back to Red 
code.
Dockimbel:
20-Apr-2011
No mistake, that is a correct way to see the separation between Red 
and Red/System.
BrianH:
20-Apr-2011
Cool. That will allow us to reuse some of the the reasoning about 
code that has been made about those situations in other languages, 
and tweak the model to learn from their lessons.
BrianH:
20-Apr-2011
I was thinking about struct parameters to functions. If C doesn't 
allow struct parameters and return values, only struct references 
or pointers, then Red should follow that model when declaring functions 
with the cdecl calling convention, and similar restrictions for stdcall, 
fastcall, etc. Then when we need to support other calling conventions 
that do support passing actual structs as parameters, we can just 
add to the list (pascal or Delphi, for instance).
Dockimbel:
20-Apr-2011
BTW, I was thinking these last days that I maybe should allocate 
a week before starting the work on Red's compiler, to implement an 
experimental JVM bytecode emitter (and a .class file format). The 
reason for that is to have a 2nd emitter (in addition to IA32) that 
is addressing a very different architecture. This should help make 
a cleaner abstraction layer for upcoming emitters (especially those 
not written by me).
BrianH:
20-Apr-2011
A good calling convention to add would be JNI, for Java and Dalvik 
code. We would have to reverse-engineer the behavior of the C macros 
and types that implement this in the JDK and NDK.
BrianH:
20-Apr-2011
Never heard of JNA. Java and Dalvik both use JNI.
Kaj:
20-Apr-2011
I tested the new section headers on Syllable Desktop. We're a step 
further, but it doesn't work yet. It doesn't complain about them 
missing anymore, but about read-only and write sections overlapping, 
which our loader doesn't support, if I remember correctly
Dockimbel:
21-Apr-2011
Kaj: thanks for the report. I thought we were cleanly separating 
RO and RW sections in two different LOAD segments...maybe the flags 
are not correctly set in sections (or in section headers). I'll give 
it a look this weekend if Andreas has not the time to fix it before.
Geomol:
21-Apr-2011
Another function is the math EXP function. It just raises the number 
e to some power (the argument). A language like C (and probably most 
others languages) has this function (in the math library though). 
Probably to make code faster, but it can easily be defined as a REBOL 
function, right?
Maxim:
21-Apr-2011
I just woudn't want it to take over the topical discussions related 
to actual Red implementation and use.
Geomol:
21-Apr-2011
With e defined, the hyperbolic cos, sin, tan, etc. are easy (REBOL 
doesn't have these), and maybe also normal cos, sin, tan!? At least 
for complex numbers, but not so sure about reals. Maybe a better 
mathematician can tell us that? Ladislav?
BrianH:
21-Apr-2011
For now in R3 there are some restrictions about the kind of functions 
you can make an operator from - number of arguments and such. It 
is planned to eventually relax one of the restrictions, and allow 
function!, closure! and command! functions to be used. However, even 
in Red there will likely need to be a fixed format to the arguments 
of such a function: 2 args with no refinements, the first arg corresponding 
to the left side and the second arg corresponding to the right.
Geomol:
21-Apr-2011
Yeah, operators with only 2 arguments sounds like a good idea. More 
and it fastly become too complex leading to confusion.
Maxim:
21-Apr-2011
brian, can we already build the FROM as an op in R3?  I've tried 
using the to-op and I can never get it to work.
Dockimbel:
21-Apr-2011
Exactly, safer and cheaper to do with a compiler.
Andreas:
21-Apr-2011
If C doesn't allow struct parameters and return values, only struct 
references or pointers

C allows struct values as parameters and return value.
BrianH:
21-Apr-2011
Are there size limits to these parameters and return values?
Andreas:
21-Apr-2011
i.e. if your struct fits in two machine words, some (x86) compilers 
use eax and edx to return it
BrianH:
21-Apr-2011
Would that behavior be standardized for a particular calling convention 
and ABI? For instance, that seems like the kind of thing that would 
have been standardized by stdcall or fastcall, but maybe not for 
cdecl or pascal.
Andreas:
21-Apr-2011
Kaj: "I tested the new section headers on Syllable Desktop.

memmap_instance() RO overlap RW (08048000 + 00001000 -> 08048000)"


besides the entry point address being a problem, this could also 
be due to segment alignment, which we basically ignore, at the moment. 
could you try changing "page-size: 4096" to "page-size: 1" and see 
where that gets us?
BrianH:
21-Apr-2011
Judging by the tables, it looks like passing and returning structs 
in C is better done in internal code than in exported functions. 
There are too many exceptions and fallbacks.
Kaj:
23-Apr-2011
The difference may be between a variable and a constant
Dockimbel:
23-Apr-2011
This test code compiles and works OK.
shadwolf:
2-May-2011
I'm a hudge militant of both the typed variable way (easy to interface 
C libraries) and the untype variable ( code more readable less maintenance 
etc...) This paradoxe tends to push me to imagine a world where the 
software will know what I need what ever the real sturcture behind 
is lets call it predictable type variable. How we do that ? I don't 
know but it seems fun enough to spend some brain cells  thinking 
of that. the idea is realy that interfacing external c/c++ java what 
ever library and maping it to the language innher variable and code 
will be absolutly transparent. (something like the .NET librabry 
browser but easier... Or more easyly we can have both system cohabiting 
side by side on the language schemes
shadwolf:
2-May-2011
though in rebol not having type for vars and () for function arg 
submition, make difficult to identify var content  distinguish var 
from function ... Maybe then  a syntaxique item like th e $ in php 
for vars or the @ in ruby for tables would be an interesting point... 
Sorry I try to think about rebol syntaxe structure like someone seing 
it for the first time
BrianH:
2-May-2011
Shad, typed variables with type inference handles the readability/maintenance 
problem pretty well, which is why several statically typed languages 
have been retrofiting type inference into them recently. Fortunately, 
Red is planned around that from the start.


Your "predictable type variable" proposal (I don't know the standard 
term either) sounds useful. Many languages do this through reflection 
facilities, but that kind of thing requires dynamically typed variables 
at least as an option if you are going to use the reflection facilities 
of the language you are interfacing with - this is necessary for 
C++ at least because there isn't a shared standard for encoding that 
information in a static way. It would be more useful for integrating 
with .NET or CORBA objects, since direct field access is prohibited 
anyways for those so there's no extra overhead in the field access 
itself, just in the runtime discovery, and ahead-of-time static compilation 
has shared rules that work on a binary standard.
onetom:
8-May-2011
i was thinking about syllable server. what has to be ported on it 
to arm? if u ubuntu runs on this thing, then the kernel and c compiler 
shouldnt be an issue
Kaj:
8-May-2011
We've had a pattern of people who came to our mailing list shouting 
enthusiastically that they had found out that the "GNU C compiler" 
would compile to PowerPC or something, that they would compile Syllable 
to it over the weekend and report afterwards
Kaj:
8-May-2011
And if you don't know all the parts intimately, they can easily pose 
a big problem to a particular developer
Kaj:
8-May-2011
It can easily take me half a year to create a next version of Syllable 
Server, and that's on the same architecture
Kaj:
10-May-2011
I have updated the 0MQ binding to the latest Red version, and moved 
it to a Fossil repository:
Dockimbel:
10-May-2011
From sources: "libzmq.dll" cdecl [  ; stdcall for Windows? => should 
be cdecl, stdcall is used in Windows DLL (and rarely by C libs).
Kaj:
10-May-2011
I found the same info that Windows system libraries use stdcall, 
but that MSVC defaults to cdecl. I had been compiling the binding 
with stdcall, and both work. I standardised on cdecl and retained 
the comment for the moment being
BrianH:
19-May-2011
I mean, don't use the word 'handle! as an alias because it will likely 
be a built-in datatype in Red, and in all Red/System functions and 
datatypes exported to Red.
BrianH:
19-May-2011
Keep in mind that there is no bounds-checking for Red/System's pointer 
type, and Red/System has typecasting (rather than conversion). Neither 
of those would be allowed in Red itself because of typesafety issues. 
Red/System will be like the unsafe code of C#.
Kaj:
19-May-2011
That would be just a little code, and it's obvious that you have 
to develop your programs to stay in sync with a language that's in 
alpha status
BrianH:
19-May-2011
Yup. But it's also good to warn them of planned developments once 
they're definitely planned, and this one is pretty well established.
BrianH:
19-May-2011
Basically, Red's handle! type would be the same as R3's handle! type. 
Opaque value that is pointer sized, but can't be used as a pointer 
without typecasting, and no arithmetic possible. No conversions to 
other datatypes either in typesafe code.
Kaj:
19-May-2011
And since it isn't defined in the runtime now, I have to write it 
myself until that time
BrianH:
19-May-2011
The main thing is that it needs to be defined as *non-dereferenceable* 
and *no pointer arithmetic allowed*, so if Red/System's equivalent 
of the void pointer is so restricted, that will do. If dereferencing 
or pointer arithmetic is allowed on Red/System's void pointer type, 
that needs to be fixed asap.
BrianH:
19-May-2011
In a strongly typed language, which even Red/System is, dereferencing 
a pointer means getting a value back that is of a known type; pointer 
arithmetic means adding in increments of the size of that type. A 
void pointer references nothing, and that nothing has no size. You 
must be required to typecast to another pointer type explicitly if 
you want to dereference the pointer, or to know how much to increment 
or decrement it.
BrianH:
19-May-2011
The difference between Red and Red/System is that such typecasts 
are possible in Red/System.
BrianH:
19-May-2011
Right, there need to be pointers to other types. And support for 
more types, for that matter.
BrianH:
19-May-2011
It is not currently planned *by Doc* to have Red/System be a complete 
language, since he only needs it to access a few system libraries 
and implement the Red runtime. He's said that others are welcome 
to contribute the necessary changes to make Red/System a more complete 
language.
BrianH:
19-May-2011
If you want to use Red/System as-is to do more advanced stuff than 
that, then go ahead and break the rules. Or better yet, add the features 
you're missing.
Kaj:
19-May-2011
If and when that happens, I'll update my programs to be compliant, 
as I'm doing now
Kaj:
19-May-2011
You wanted to know if the appointed error locations are correct. 
That seems to be alright, and the error for a struct is nicely descriptive, 
but an error for a function definition is rather unspecific:
Kaj:
19-May-2011
Oh wait. I have to use a block for #define, and then it works. But 
not ALIAS
Kaj:
19-May-2011
And the error output for a function starts at the offending parameter, 
so that's actually pretty good, but it's not obvious
Dockimbel:
20-May-2011
I just pushed a new commit that reverts back some of the changes 
I did for aliased types yesterday, and fixes the compiler errors 
reported by Kaj.
Dockimbel:
20-May-2011
So, #define is the way to go to rename existing types and ALIAS is 
reserved for struct! only (it allows to circular references that 
couldn't be done using macros).
shadwolf:
20-May-2011
I know it zas made for Illumination software creator and was a good 
enightenment for it
Dockimbel:
21-May-2011
Kaj: I pushed a few fixes and changes on ALIAS support, it now behaves 
strictly as described in the specification. For the 0MQ binding, 
you need to replace [struct! message!] occurences with [message!] 
to make it compilable with the new version.
Kaj:
21-May-2011
Processed your changes, and indeed it builds again
Kaj:
22-May-2011
In the spec in 4.5.5, shouldn't the child structs gift/first and 
gift/second be created individually (and assigned to the struct pointers 
in gift) before their members can be assigned?
Kaj:
22-May-2011
It would also be good to make it clear that the integer! pointed 
to by p needs to be separately allocated (presumably by foobar and 
GetPointer)
Dockimbel:
23-May-2011
4.5.5: yes, you're right, the example is missing gift/first and gift/second 
proper initialization.
Kaj:
23-May-2011
Not that I'm testing Server on 486, and the utility is dubious. But 
Red will be suitable for embedded systems, so there may be a good 
niche in 486 systems-on-a-chip
BrianH:
23-May-2011
Weirdly enough, if the ! was gone from that keyword for the typed 
pointers it wouldn't trip me up because it would look like the subsequent 
block is part of an expression. Then the pointer! word would refer 
to an untyped pointer (void pointer) on its own with no block needed, 
though I would prefer handle! instead for R3 compatibility, and to 
make it more visually distinct from pointer (without the !).
Dockimbel:
23-May-2011
Well, it is a bit late now as Red/System implementation is reaching 
its end. I am trying to stick as close as possible to the REBOL syntax 
we are used to, if you have better propositions for the syntax, I 
am ready examine them, but I would like to finish on Red/System and 
start working on upper layers, unless you want me to polish Red/System 
for the next months and start working on Red 6 months later than 
I planned?
Dockimbel:
23-May-2011
I would like also to remind you that Red/System will be re-implemented 
entirely in Red at some point, so we'll have a second chance to fix 
design and implementation issues/limitations if necessary.
BrianH:
23-May-2011
The pointer! [...] syntax does make sense as a shortcut for struct! 
[value [...]] in function specs - that type equivalence was the important 
part of the earlier argument, not syntax issues. The only place that 
the syntax looks weird is in AS calls, where otherwise expression 
rules would apply. I'll look over the specs later this evening and 
see if there's anything really weird-looking.
BrianH:
23-May-2011
No, I mean that pointer! [integer!] would be exactly the same type 
as struct! [value [integer!]] - type equivalence between pointer! 
and struct!. This would make the pointer! type a syntactic sugar 
shortcut for a subset of the struct! type. That is the semantic portion 
of what you wanted me to write down for you in a google groups post 
so you could refer to it when you were implementing that suggestion. 
There were also syntactic issues, but those don't matter as much.
BrianH:
23-May-2011
I've been busy lately so I haven't read the latest couple spec drafts. 
Must catch up and comment, quick before you finalize things.
Dockimbel:
23-May-2011
I will push new specification changes and fixes tonight. I have added 
a type casting matrix for all possible type combinations. I am currently 
  implementing the missing cases.
BrianH:
23-May-2011
Do you make a distinction between implicit and explicit type casting? 
Does Red/System have any implicit type casting at all yet?
Dockimbel:
23-May-2011
Yes, it does an implicit type casting for math and bitwise operations 
on the second argument.
Kaj:
24-May-2011
So far I have bound 25 functions and written two higher level wrappers
Kaj:
24-May-2011
I know, but this is a solid solution, and there are 26 more functions 
:-)
Kaj:
24-May-2011
I've bound all memory management functions, most of the string processing 
functions and a few system interfacing functions
PeterWood:
24-May-2011
Looks good and will also act as a good example.
Dockimbel:
25-May-2011
Kaj, thanks for the contribution. I have planned to wrap some of 
the memory manipulation functions too as soon as I finish the work 
on aliasing and type casting.
Dockimbel:
27-May-2011
I thought about implementing PIC support first and testing it using 
Syllable's executables.
Dockimbel:
27-May-2011
BTW, I tried installing Syllable on VMWare 7 and it failed to recognize 
the disk controller (I tried every possible disk modes and Syllable 
boot mode). I might have not picked the right image to install...I'm 
retrying right now with this one: http://downloads.syllable.org/Linux/i686/systems/Server/0.1/SyllableServer-0.1.i686.VM.7z
Andreas:
27-May-2011
hm, kaj, could you try setting
base-address:  -2147483648
and see if that generates binaries which work?
Kaj:
27-May-2011
You'r mixing up Desktop and Server. 0.6.6 is Desktop, X11 is Server, 
which is Linux
Kaj:
27-May-2011
If you want to run Desktop, 0.6.6 indeed has a ready VMware image. 
On the other hand, the live CD you have has some enhancements. Such 
as R3 and the cURL binding :-)
Kaj:
27-May-2011
Desktop can only run ORCA, Boron and now R3. That's why I've never 
been able to use REBOL in the past decade
Kaj:
27-May-2011
Server has R2/Core, Boron and ORCA onboard
Dockimbel:
27-May-2011
Ok, so I need to compile Red/System scripts elsewhere and copy them 
in Syllable.
Kaj:
27-May-2011
I've compiled the 0MQ binding, and that isn't ported to Desktop yet
Kaj:
27-May-2011
I've compiled empty and hello now
Kaj:
27-May-2011
Kaj: 
I tested the new section headers on Syllable Desktop.

memmap_instance() RO overlap RW (08048000 + 00001000 -> 08048000)"


besides the entry point address being a problem, this could also 
be due to segment alignment, which we basically ignore, at the moment. 
could you try changing "page-size: 4096" to "page-size: 1" and see 
where that gets us?"
Andreas:
27-May-2011
and change back page-size to 4096 before that
Kaj:
27-May-2011
I've taken over Andreas' changes, corrected the runtime syscall, 
and uploaded new empty, hello, reply-server and request-client
Kaj:
27-May-2011
GDb and strace are treated in here:
Kaj:
27-May-2011
You'll still need prolog and epilog syscalls, and I think Doc wants 
to minimise libc usage
Andreas:
27-May-2011
requires libc.so.6, calls puts and exit
Kaj:
28-May-2011
Implemented block i/o and status handling
Kaj:
28-May-2011
Implemented low level byte and line i/o
Dockimbel:
29-May-2011
The article is very well written and it is the best introduction 
to Red I have seen so far.
Kaj:
29-May-2011
Nah, yours are better. :-) I'm just placing it in a context for Syllable 
and OSNews readers
Dockimbel:
29-May-2011
Implementation constraint for + and - to support pointer/struct/c-string 
arithmetic without having to explicitly cast the 2nd argument. So 
to avoid having a different rule for * , / and //, I chosed to let 
the implicit casting occur on all math operators. But as the implicit 
casting is reducing the safety of expressions, I might make it more 
strict than it is currently.
47201 / 4860612345...471472[473] 474475...483484485486487