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

World: r3wp

[!REBOL3]

BrianH
12-Oct-2010
[5269]
There are other methods of debugging at runtime if you have the source. 
Heck, even good old print statement debugging would work.
Steeve
12-Oct-2010
[5270x2]
it could be simulated with a special mezz. A function which executes 
an indirect DO on one code block instead of building a function.
So that the code block could still be inspected by a debuging tool.
Maxim
12-Oct-2010
[5272]
hum... maybe a way to build a context when building a function, with 
the index of each member of the body block mapped out to its original 
source.
Steeve
12-Oct-2010
[5273]
yep it should work
Maxim
12-Oct-2010
[5274]
then the debugger could inspect the context instead.
BrianH
12-Oct-2010
[5275]
Right, and that kind of thing works now. But allowing a debugger 
to get past the protections just isn't going to happen. We don't 
have a way to know at runtime which person needs to be asked for 
permission to break past a protection like that. Since it certainly 
isn't the user.
Steeve
12-Oct-2010
[5276]
you will just have to furnish mezzs to replace the standard, func, 
funco and funct
Maxim
12-Oct-2010
[5277]
we could be able to do this by switching to a "debug" version of 
the various func creating mezz
BrianH
12-Oct-2010
[5278]
Yes, and replace those functions before the system is protected to 
support the reset.
Maxim
12-Oct-2010
[5279x2]
we could even make those functions able to trigger events based on 
"break points"  then listen on those events in a normal event loop.
so the debugger actually adds a line of code where the break should 
happen... then rebuilds the body block it executes when its called.
BrianH
12-Oct-2010
[5281]
They could even be trace events.
Maxim
12-Oct-2010
[5282]
since the external function isn't replaced, its transparent .
Gregg
12-Oct-2010
[5283]
Pekr - "if we can't have full fledged debugger, then we are crap 
:-)"

Agreed, though maybe not complete crap.


Brian - "Heck, even good old print statement debugging would work."

Agreed, to an extent.

Brian - "They could even be trace events."


Ahhh, joy. What can we learn from DTrace, and what should modern 
debugging look like? I have, at times, ached for the ability to step-trace 
and set break and watch points in REBOL. At the same time, I don't 
want to be myopic and focus on how we debugged in the past.


What are the best ways to debug the things we're supposed to build 
with REBOL? And can we hope for mechanisms to let us debug things 
outside what RT says REBOL is targeted at?
Maxim
12-Oct-2010
[5284]
using replacement function builders we could, in theory, completely 
control how execution occurs.  this would be at some speed cost and 
possibly not 100% transparent.


but setting break points and real-time value watching is definitely 
in the realms of possibility.
BrianH
12-Oct-2010
[5285x2]
I just don't want to preclude the use of R3 in the biggest industry: 
content delivery and presentation.
Or for that matter, any secure client systems. Most cryptographic 
security is based on secrets. If we can't keep secrets, we can't 
be used for those purposes.
Kaj
12-Oct-2010
[5287]
Other secure systems are debuggable
BrianH
12-Oct-2010
[5288]
As is R3, just using different methods. You might notice that DTrace 
doesn't allow you to read the iTunes process on OSX.
Kaj
12-Oct-2010
[5289]
Not everyone is on the board of Disney
BrianH
12-Oct-2010
[5290x2]
Secure systems can be debuggable. But security comes first.
Especially when there are other methods for debugging that don't 
require breaking security.
ChristianE
13-Oct-2010
[5292x2]
Are all the "^M"s below because of datatypes not implemented yet 
or is this a bug? I'd expected READ/STRING to not only TO STRING!, 
but to DELINE the data read.

>> sql: read/string clipboard://
== {create table scans (^M
               id     serial primary key,^M
               date   date not null,^M
               time   time(3) not null,^M
               job    integer not null, ^M
               branch integer, ^M
               ean    char(13) not null,^M
               box    integer^M
          )}
IIRC, READ at one point only returned the data read as a binary stream, 
forcing you to DELINE TO STRING! READ ... because of the transition 
to UTF-8, but /STRING was added back later. Found nothing in the 
change log, though.
Rebolek
13-Oct-2010
[5294]
How can I remove key form map! ?
Henrik
13-Oct-2010
[5295]
set it to none
Rebolek
13-Oct-2010
[5296]
Hm, it's easier than I though :) Thanks
Pekr
13-Oct-2010
[5297]
Any comment onto R3 now displaying security dialog each time it starts? 
Do we have some non-standard exe being generated by hostkit? This 
symptome is not happening with A99 IIRC ...
BrianH
13-Oct-2010
[5298]
The clipboard:// type returns a string without line ending conversion, 
at the moment. It hasn't been updated since before the /string refinement 
was added. It's a platform-specific bug.
Sunanda
14-Oct-2010
[5299]
I've got this unexpected R3 behaviour (it's the core of the LDS issue 
mentioned in [Testing and Tools]

    f: func [] [error? try [return 1] return 2]
    f
    == 2   ;; r3 does this....despite no error
    == 1   ;; r2 does this...as expected

Any ideas, thanks!
Ladislav
14-Oct-2010
[5300x3]
Yes, this is CC #771
Carl intents to correct it, but it will not be in A108
Now you have to circumvent it, at the cost of having longer code. 
I suppose, that the not simplified code is more like:


f: func [] [error? try [do-something return 1] return 2], which can 
be transformed to:

f: func [] [return either error? try [do-something] [1] [2]]
Sunanda
14-Oct-2010
[5303]
Thanks...Glad to know there are work-arounds.
Ladislav
14-Oct-2010
[5304]
Sure, this is not that hard to circumvent, but it comes at the cost 
of needing to "reorganize" the code
Sunanda
14-Oct-2010
[5305]
Does R3 somewhere have the equivalent of
   READ/CUSTOM .... [POST...]
yet?
I'd like to read a URL as a POST rather than a GET.
GrahamC
14-Oct-2010
[5306]
Yes it does
Henrik
15-Oct-2010
[5307]
looks like Carl will not only be attending Amiwest, but exhibiting 
as well.
Sunanda
15-Oct-2010
[5308]
Thanks Graham....Now, can I have a clue what the equivalent is!?
Pekr
15-Oct-2010
[5309]
Henrik - what is he going to exhibit? R3 on Amiga? Or R3 in general?
Henrik
15-Oct-2010
[5310]
Don't know. He is just listed as an exhibitor. Maybe he'll bring 
wine. :-)
Maxim
15-Oct-2010
[5311]
I think he'll try to peddle is "rare" Amiga items...   ;-)
GrahamC
15-Oct-2010
[5312]
result: write http://yourhost.com/cgi-bin/myscript.cgi{Posted data}

See http://www.rebol.net/wiki/Scheme:_HTTP
Sunanda
15-Oct-2010
[5313]
Thanks Graham.
Initially, that sounds lllogical -- doing a write to read a URL.

But I guess it makes sense -- as POST is supposed to cause an update 
action of some sort at the server end.
GrahamC
15-Oct-2010
[5314x2]
I'm not sure of the logic .. I would think that 'write should be 
used for non idempotent actions but that's not how it is done.
Anyway, 'read is a straight 'GET and write allows custom headers
Kaj
15-Oct-2010
[5316]
I always thought HTTP GET is incredibly anti-intuitive when used 
to send form data. Mapping write to POST feels a lot more logical
GrahamC
15-Oct-2010
[5317x2]
I haven't looked to see how it handles PUT, and DELETE with parameters
now whether PUT can stream a file off the filesystem